HILFE - Grafiken ins Layout einfügen

  • Hallo,
    ich bin Plone-Neuling und habe ein riesen Problem!
    Ich suche schon seit Tagen und finde keine Lösung:
    Ich habe eine Seite im standard Plone Layout - nun möchte ich, wenn man sich in einem Ordner, z.b. 'Mitarbeiter', befindet, dass in der Navigationsleiste, die einem zeigt wo man ist, ein Bild angezeigt wird was man mit Mitarbeiter assoziiert.
    Unterordner sollen davon erben und das Bild auch anzeigen.

    Also das Menü soll mit Bildern untermalt werden.
    Wo finde ich tutorials, welche templates muss ich dazu verändern?
    Wie füge ich für ordner quasi Logos ein?

    BITTE HELFT MIR!!

  • Kannst du dazu mal ne keline Skizze anhängen, dass man sich dies besser vorstellen kann?

    "Carpe Diem" powered by positiv Feelings

  • aber klar:

    also mein plone sieht ja total standard aus. aber wenn ich jetzt zum beispiel auf den testordner links klicke, dann soll da wo der rote rand ist ein bild erscheinen. den roten rahmen hab ich übrigens nur mit fotoshop gemacht ;-). :oops:
    und alle unterordner von test sollen das selbe bild dort anzeigen.

    und wenn ich auf einen anderen ordner klicke soll da natürlich ein anderes bild gezeigt werden... aber ich komme wie gesagt nicht klar:
    muss ich bei den stylesheets ansetzen oder bei den templates?

    muss ich ein ganz neues skin machen oder das skin nach custom kopieren und dann erst verändern?

    natürlich kann das bild höher sein und das hauptfenster "runterdrücken"!

    ich danke dir schonmal für deine antwort...

  • Im Moment kann man die Plone-Version noch vernachlässigen, aber du solltest trotzdem schreiben womit du arbeitest.

    Prinzipiell würde ich es so machen:
    1.) das main_template in den eigenen Skin oder /custom klonen
    2.) zwischen dem DIV #content und dem DIV #region-content fügt man ein eigenes (TAL/METAL-)Script ein (z.B. findPortraits) Dieses Script ist dann am besten eine Methode einer BrowserView. Als Ergebnis würde ein eigenes DIV #person_portrait mit dem Bild eingefügt.
    3.) findPortrait sucht dann im aktuellen Ordner nach einem ATImage mit der ID 'person_portrait'. Findet es dies nicht, so sucht es 1 Ebene höher usw. bis es beim Plonesite Root angekommen ist
    4.) jenachdem ob ein Bild gefunden wurde, wird dies nun in einer der Skalierungen (z.B. mini) ausgegeben. Anderenfalls gibt das Script nichts aus.

    So würde ich es prinzipiell angehen. Daraus ergeben sich dann einige Möglichkeiten, so dass du 1 Bild je Personenordner haben kannst, aber du kannst auch bestimmen, dass bei bestimmten Ordnern innerhalb deines Personenordners ein anderes Bild erscheinen soll, denn du kannst in diesem tieferliegendem Ordner ja wieder ein neues person_portrait einfügen.

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Guter Ansatz Torty,

    aber man kann es auch ohne anfassen des main_templates machen, bei Plone 3.x wäre der weg über viewlest statt übers main_template zu empfehlen.

    Bei Plone hast du ab Plone 2.5 glaube ich einen Div-Bereich above_content_title

    wenn man in der ploneCustom.css jetzt einträgt:

    Code
    above_content_title {
        height: xx em; // Höhe der bilder
        background-image: url(folder_logo.jpg);
        background-repeat: no-repeat; ...
    }


    dann kann man durch ablegen eines Bilder mit dem Namen: folder_logi.jpg in jedem Ordener genau dieses Bild als Standart anzeigen lassen, durch die accuistion Chain nimmt er immer das zuletzt gefundene oder das der übergeordneten Ordner.

    Gruss Alexander

    PS: mal sehen was noch für Ideen kommen.

    Die beste Informationsquelle sind Leute, die versprochen haben, nichts weiterzuerzählen.

    Marcel Mart
    frz. Schriftsteller

  • hey ich danke euch für diese tollen ansätze... ich kanns gar nicht erwarten nachher nach haus zu kommen und da rumzuspielen...
    ist halt nicht einfach sich in dieses plone reinzufinden, da es sehr komplex ist... aber nach und nach wird das schon

    ... aber macht ruhig weiter mit den kreativen ideen, find ich toll :)

  • hmmm...
    also ich würde es gerne mit above_content_title {...} machen.
    nur funktioniert das leider nicht.
    änderungan an z.b. body{...} oder .portletHeader{...} gehen soweit ohne probleme.

    Wo finde ich also eine Liste mit allen bereichen, die ich im ploneCustom.css ändern kann. Ich gehe mal davon aus dass es nur anders benannt sein muss.

  • also ich hab jetzt folgendes gefunden, nachdem ich die css files studiert habe:

    #viewlet-above-content{

    }

    setze ich hier nun die height auf 20px und mache background-color: red; dann sieht das schonmal gut aus. also ich habe einen roten balken über dem titel. aber die sache mit dem background-color funktioniert nicht.
    wie soll ich ihm sagen dass er in dem aktuellen ordner mit suchen anfangen soll?

    (ich hab einfach ein image im zmi hochgeladen, in den ordner test)

    wie gehts also weiter?

  • Ploneseite mit /@@manage-viewlets dann sieht man zumindest alle Viewlets, die meist ein direktes Mapping des Names in ein css-id haben.
    Ansonsten den Firebug nutzen.

    Code
    #viewlet-above-content{ 
        height: xx em; // Höhe der bilder
        background-image: url(folder_logo.jpg);
        background-repeat: no-repeat; ...
    }

    Durch die Accuistion Chain sucht der ausgehend von dem Ordner nach einem Attribut oder Objekt mit genau diesem Namen das Portal hierarchisch ab. Also der Name des in: background-image: url(folder_logo.jpg) Gespeicherten Objekts. es funktioniert wenn du halt ein Bild was als ID folder_logo.jpg hat in dem Ordner hast.

    Gruss Pumukel

    Die beste Informationsquelle sind Leute, die versprochen haben, nichts weiterzuerzählen.

    Marcel Mart
    frz. Schriftsteller

  • Anmerkung:

    Zitat

    height: xx em; // Höhe der bilder


    Ich denke hier wären px besser, da das Bild bei font-size Erhöhungen ja nicht mitskaliert. Wenn das Bild halt 150 Pixel hoch ist, sollte er dort auch 150px eintragen.

    Sonst gefällt mir die CSS-Idee auch sehr gut :)

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Zitat von Pumukel


    es funktioniert wenn du halt ein Bild was als ID folder_logo.jpg hat in dem Ordner hast.
    Gruss Pumukel

    leider eben nicht.
    er findet das bild erst in der obersten Ebene, also im ploneObjekt. Ich kann mir das auch nicht erklären.
    Wenn ich im main_template einfach nach dem above_conten div eine img src anlege dann zeigt er das bild an wenn es im test-ordner liegt. diese lösung finde ich aber nicht elegant. es sollte schon mit css im costomPlone gehen.

    wie gesagt der code dort wäre:

    #viewlet-above-content{
    height:50px;
    background-image:url(folder_logo.jpg);
    }

    er fügt das aber nicht ein wenn das folder_logo.jpg im test-ordner liegt.
    liegt es aber im plone-root findet er es.

  • Entschuldigung, mein Fehler,

    da das customPlone.css ja gegen eine URL-Base definiert wird kann es so natürlich nicht gehen. du müsstest mit dem dtml-variablen in der customPlone.css.dtml (sie ist ja zum glück dtml) in dem background-image: url(&dtml-context_url;/folder_logo.jpg) den Pfad zum aktuellen ordner einsetzen.

    Vorsicht &dtml-portal_url; ist nicht standardmässig definiert glaube ich. einfach mal was vergleichbarer suchen, ergooglen.

    Gruss Pumukel.

    Die beste Informationsquelle sind Leute, die versprochen haben, nichts weiterzuerzählen.

    Marcel Mart
    frz. Schriftsteller

  • Hinweis am Rande:
    Du kannst auch sowas definieren myCSS.css.py. Das kann die Möglichkeiten erhöhen ...

    "Carpe Diem" powered by positiv Feelings

  • hmmm,
    is das ploneCustom.css nich schon eine DTML-Routine?
    Jedenfalls finde ich keine &dtml-konstante die die richtige url enthält.
    &dtml-absolute_url bringt das gleiche wie &dtml-portal_url und &dtml-URL bringt gar nichts... wo finde ich eine auflistung im internet aller url-konstanten. das zope-book bringt mich irgendwie auch nicht weiter