Ergebnis 1 bis 27 von 27

Thema: Eventliste mit Tooltip

  1. #1
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard Eventliste mit Tooltip

    Hallo zusammen,

    meine Idee ist, die Events in einer "upcoming"-Liste mit einem Tooltip zu versehen, der die Event-Details anzeigt.

    Dazu habe ich wie hier beschrieben die Tooltips eingebunden, die so weit auch funktionieren.

    Dort wird allerdings nur sehr wenig HTML eingebunden und auch keinerlei PHP.

    Mein Versuch, den Event-Link im Template "event-upcoming" mit den Event-Details zu versehen:

    PHP-Code:
    <a class="tool" rel="<h1><?php echo $this->title?></h1><p class="info"><?php echo $this->date?></p><div class="ce_text"><?php if (!$this->addBefore): ?><?php echo $this->details?><?php endif; ?><?php if ($this->addImage): ?><figure class="image_container<?php echo $this->floatClass?>"<?php if ($this->margin || $this->float): ?> style="<?php echo trim($this->margin $this->float); ?>"<?php endif; ?>><?php if ($this->href): ?><a href="<?php echo $this->href?>"<?php echo $this->attributes?> title="<?php echo $this->alt?>"><?php endif; ?><img src="<?php echo $this->src?>"<?php echo $this->imgSize?> alt="<?php echo $this->alt?>"><?php if ($this->href): ?></a><?php endif; ?><?php if ($this->caption): ?><figcaption class="caption" style="width:<?php echo $this->arrSize[0]; ?>px"><?php echo $this->caption?></figcaption><?php endif; ?></figure><?php endif; ?><?php if ($this->addBefore): ?><?php echo $this->details?><?php endif; ?></div>" href="<?php echo $this->href?>" title="<?php echo $this->title?> (<?php if ($this->day): echo $this->day?><?php endif; echo $this->date; if ($this->time): ?><?php echo $this->time; endif;?>)"<?php echo $this->target?>><?php echo $this->link?></a>
    funktioniert leider nicht. Ich vermute, dass sich die Ausgabe hier u.a. an den vielen zusätzlichen Anführungszeichen stört, steh aber ein bisschen auf dem Schlauch.

    Hat das vielleicht schonmal jemand hinbekommen?

    Danke für jede Anregung!

    Gruß Alex

  2. #2
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Vermutlich war deine Idee schon ganz richtig:

    Innerhalb des Inhalts des rel-Attributs dürfen keine doppelten Anführungszeichen mehr erscheinen:
    HTML-Code:
    <a class="tool" rel="
    <h1><?php echo $this->title; ?></h1>
    <p class='info'><?php echo $this->date; ?></p>
    <div class='ce_text'>
      <?php if (!$this->addBefore): ?><?php echo $this->details; ?><?php endif; ?>
      <?php if ($this->addImage): ?>
        <figure class='image_container<?php echo $this->floatClass; ?>'
          <?php if ($this->margin || $this->float): ?> style='<?php echo trim($this->margin . $this->float); ?>'<?php endif; ?>
        >
          <?php if ($this->href): ?><a href='<?php echo $this->href; ?>'<?php echo $this->attributes; ?> title='<?php echo $this->alt; ?>'><?php endif; ?>
          <img src='<?php echo $this->src; ?>' <?php echo $this->imgSize; ?> alt='<?php echo $this->alt; ?>'>
          <?php if ($this->href): ?></a><?php endif; ?>
          <?php if ($this->caption): ?><figcaption class='caption' style='width:<?php echo $this->arrSize[0]; ?>px'><?php echo $this->caption; ?></figcaption><?php endif; ?>
        </figure>
      <?php endif; ?>
      <?php if ($this->addBefore): ?><?php echo $this->details; ?><?php endif; ?>
    </div>" 
    href="<?php echo $this->href; ?>"
    title="<?php echo $this->title; ?> (<?php if ($this->day): echo $this->day; ?>, <?php endif; echo $this->date; if ($this->time): ?>, <?php echo $this->time; endif;?>)" <?php echo $this->target; ?>>
      <?php echo $this->link; ?>
    </a>
    BTW: wie hast du in deinem Post den Code formatiert? Ein paar Zeilenumbrüche wirken Wunder

    Es kann aber sein, dass die vielen aufgerufenen PHP-Funktionen selbst auch solche doppelten Anführungszeichen einfügen.
    Dann bleibt dir noch die Möglichkeit, erst alles in eine Variable zu schreiben, die Anführungszeichen gegen einfache auszutauschen und dann ins rel-Attribut zu schreiben.

    Gruß, folkfreund

  3. #3
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Zitat Zitat von folkfreund Beitrag anzeigen
    Vermutlich war deine Idee schon ganz richtig:

    Innerhalb des Inhalts des rel-Attributs dürfen keine doppelten Anführungszeichen mehr erscheinen:
    Das Problem ist, dass die ja auch im Beschreibungstext vorkommen könnten.

    Und an der Stelle wird dann wohl das rel-Attribut beendet.


    Zitat Zitat von folkfreund Beitrag anzeigen
    BTW: wie hast du in deinem Post den Code formatiert? Ein paar Zeilenumbrüche wirken Wunder
    Ööhm, ja, das könnte zu meiner Verwirrung beigetragen haben.

    Zitat Zitat von folkfreund Beitrag anzeigen
    Es kann aber sein, dass die vielen aufgerufenen PHP-Funktionen selbst auch solche doppelten Anführungszeichen einfügen.
    Ganz bestimmt sogar, es werden ja z.B. auch beim Bild alt- und title-Attribute oder Inline-Styles gesetzt. Vermutlich deswegen funktionierte auch meine Idee nicht, die Anführungszeichen im Template durch &quot; zu ersetzen.

    Zitat Zitat von folkfreund Beitrag anzeigen
    Dann bleibt dir noch die Möglichkeit, erst alles in eine Variable zu schreiben, die Anführungszeichen gegen einfache auszutauschen und dann ins rel-Attribut zu schreiben.
    Das musst Du mir bitte näher erklären.

    Gruß Alex

  4. #4
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Zitat Zitat von mv_alex Beitrag anzeigen
    Das musst Du mir bitte näher erklären.
    PHP-Code:
    <?php
    // Inhalt des rel-Attributes zusammensetzen
    var rel "<h1>" $this.title "</h1><p class='info'>" $this->date "</p><div class='ce_text'>";
    if (!
    $this->addBefore) {
      
    $rel .= $this->details;
    }
    if (
    $this->addImage) {
      
    $rel .= "<figure class='image_container" $this->floatClass "'";
      if (
    $this->margin || $this->float) {
        
    $rel .= " style='" trim($this->margin $this->float) . "'";
      }
      
    $rel .= ">";
      if (
    $this->href) {
        
    $rel .= "<a href='" $this->href "' " $this->attributes " title='" $this->alt "'>";
      }
      
    $rel .= "<img src='" $this.src "' " $this->imgSize " alt='" $this->alt "'>";
      if (
    $this->href) {
        
    $rel .= "</a>";
      }
      if (
    $this->caption) {
        
    $rel .= "<figcaption class='caption' style='width:" $this->arrSize[0] . "px'>" $this->caption "</figcaption>";
      }
      
    $rel .= "</figure>";
    }
    if (
    $this->addBefore) {
      
    $rel .= $this->details;
    }
    $rel .= "</div">;

    // Anfuehrungszeichen ersetzen
    $rel str_replace('"'"'"$rel);

    // Inhalt des title-Attributes zusammensetzen
    $title $this->title "(";
    if (
    $this->day) {
      
    $title .= $this->day ", ";
    }
    $title .= $this->date;
    if (
    $this->time) {
      
    $title .= ", " $this->time;
    }
    $title .= ")";

    // die eigentliche Ausgabe
    echo "<a class='tool' rel='" $rel "' href='" $this->href "' title='" $title "' " $this->target ">";
    echo 
    $this->link "</a>";
    ?>
    Ungetestet - aber das Prinzip wird hoffentlich klar

    Gruß, folkfreund

    EDIT: Kommentare und einmal fehlende Anführungszeichen ergänzt
    Geändert von folkfreund (25.11.2013 um 21:56 Uhr)

  5. #5
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Das Prinzip im Ansatz, aber die Feinheiten ...

    Wollte es mal ausprobieren, aber offenbar stört sich Contao hier an der Variable:

    Code:
    Parse error: syntax error, unexpected T_VAR in /www/htdocs/user/WEB/templates/event_upcoming_test.html5 on line 2
    Gruß Alex

  6. #6
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Sorry,

    so müsste es gehen (var wird in PHP nicht mehr gebraucht, und $ hatte ich auch vergessen )
    PHP-Code:
    <?php
    // Inhalt des rel-Attributes zusammensetzen
    $rel "<h1>" $this.title "</h1><p class='info'>" $this->date "</p><div class='ce_text'>";
    if (!
    $this->addBefore) {
    Gruß, folkfreund

  7. #7
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Irgendwie stimmt bei der Zusammensetzung noch was nicht:

    Code:
    Parse error: syntax error, unexpected ';' in /www/htdocs/user/WEB/templates/event_upcoming_test.html5 on line 28
    Nehm ich das Semikolon raus, stört ihn eine geschweifte Klammer zwei Zeilen vorab. Da bin ich mit meinem PHP am Ende.

    Gruß Alex

  8. #8
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Schau mal das hier genau an (Zeile 28):
    PHP-Code:
    $rel .= "</div">; 
    Fällt dir was auf?

    Tipp: guck mal genau auf die Anführungszeichen...

    Hier im Forum hilft sogar die Syntax-Einfärbung bei der Suche.

    folkfreund

  9. #9
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Okay, den Fehler hab jetzt sogar ich kapiert.

    Aber es wird nicht wirklich besser:

    Code:
    Recoverable error: Object of class FrontendTemplate could not be converted to string in …/templates/event_upcoming_test.html5 on line 3
    
    #0 …/templates/event_upcoming_test.html5(3): __error(4096, 'Object of class...', '/www/htdocs/use...', 3, Array)
    #1 …/system/libraries/Template.php(245): include('/www/htdocs/use...')
    #2 …/system/modules/frontend/FrontendTemplate.php(49): Template->parse()
    #3 …/system/modules/calendar_extended/ModuleEventlistExt.php(385): FrontendTemplate->parse()
    #4 …/system/modules/frontend/Module.php(140): ModuleEventlistExt->compile()
    #5 …/system/modules/calendar_extended/ModuleEventlistExt.php(128): Module->generate()
    #6 …/system/modules/frontend/ContentModule.php(72): ModuleEventlistExt->generate()
    #7 …/system/libraries/Controller.php(511): ContentModule->generate()
    #8 …/system/modules/frontend/ModuleArticle.php(194): Controller->getContentElement('442')
    #9 …/system/modules/frontend/Module.php(140): ModuleArticle->compile()
    #10 …/system/modules/frontend/ModuleArticle.php(71): Module->generate()
    #11 …/system/libraries/Controller.php(443): ModuleArticle->generate(false)
    #12 …/system/libraries/Controller.php(269): Controller->getArticle('liste_veranstal...')
    #13 …/system/modules/frontend/PageRegular.php(100): Controller->getFrontendModule('0', 'main')
    #14 …/index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
    #15 …/index.php(401): Index->run()
    #16 {main}
    
    
    Recoverable error: Object of class FrontendTemplate could not be converted to string in …/templates/event_upcoming_test.html5 on line 16
    
    #0 …/templates/event_upcoming_test.html5(16): __error(4096, 'Object of class...', '/www/htdocs/use...', 16, Array)
    #1 …/system/libraries/Template.php(245): include('/www/htdocs/use...')
    #2 …/system/modules/frontend/FrontendTemplate.php(49): Template->parse()
    #3 …/system/modules/calendar_extended/ModuleEventlistExt.php(385): FrontendTemplate->parse()
    #4 …/system/modules/frontend/Module.php(140): ModuleEventlistExt->compile()
    #5 …/system/modules/calendar_extended/ModuleEventlistExt.php(128): Module->generate()
    #6 …/system/modules/frontend/ContentModule.php(72): ModuleEventlistExt->generate()
    #7 …/system/libraries/Controller.php(511): ContentModule->generate()
    #8 …/system/modules/frontend/ModuleArticle.php(194): Controller->getContentElement('442')
    #9 …/system/modules/frontend/Module.php(140): ModuleArticle->compile()
    #10 …/system/modules/frontend/ModuleArticle.php(71): Module->generate()
    #11 …/system/libraries/Controller.php(443): ModuleArticle->generate(false)
    #12 …/system/libraries/Controller.php(269): Controller->getArticle('liste_veranstal...')
    #13 …/system/modules/frontend/PageRegular.php(100): Controller->getFrontendModule('0', 'main')
    #14 …/index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
    #15 …/index.php(401): Index->run()
    #16 {main}
    Spontan 'ne Idee, was da falsch läuft?

    Gruß Alex

  10. #10
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hi,

    ich hatte den Code einfach so runtergeschrieben, nicht getestet - sonst wären mir die Schreibfehler natürlich selbst aufgefallen...

    Die (hoffentlich letzten) Fehler waren $this.xxx anstatt richtig $this->xxx

    Hier die korrigierte Version:
    PHP-Code:
    <?php
    // Inhalt des rel-Attributes zusammensetzen
    $rel "<h1>" $this.title "</h1><p class='info'>" $this->date "</p><div class='ce_text'>";
    if (!
    $this->addBefore) {
      
    $rel .= $this->details;
    }
    if (
    $this->addImage) {
      
    $rel .= "<figure class='image_container" $this->floatClass "'";
      if (
    $this->margin || $this->float) {
        
    $rel .= " style='" trim($this->margin $this->float) . "'";
      }
      
    $rel .= ">";
      if (
    $this->href) {
        
    $rel .= "<a href='" $this->href "' " $this->attributes " title='" $this->alt "'>";
      }
      
    $rel .= "<img src='" $this->src "' " $this->imgSize " alt='" $this->alt "'>";
      if (
    $this->href) {
        
    $rel .= "</a>";
      }
      if (
    $this->caption) {
        
    $rel .= "<figcaption class='caption' style='width:" $this->arrSize[0] . "px'>" $this->caption "</figcaption>";
      }
      
    $rel .= "</figure>";
    }
    if (
    $this->addBefore) {
      
    $rel .= $this->details;
    }
    $rel .= "</div>";

    // Anfuehrungszeichen ersetzen
    $rel str_replace('"'"'"$rel);

    // Inhalt des title-Attributes zusammensetzen
    $title $this->title "(";
    if (
    $this->day) {
      
    $title .= $this->day ", ";
    }
    $title .= $this->date;
    if (
    $this->time) {
      
    $title .= ", " $this->time;
    }
    $title .= ")";

    // die eigentliche Ausgabe
    echo "<a class='tool' rel='" $rel "' href='" $this->href "' title='" $title "' " $this->target ">";
    echo 
    $this->link "</a>";
    ?>
    folkfreund

  11. #11
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Wir kommen der Sache näher!

    Ich vermute mal, in Zeile 3 muss es dann auch heißen "$this->title" - zumindest kommen dann keine Parse Errors mehr.

    Allerdings klappt das mit der Ausgabe immer noch nicht:

    HTML-Code:
    <a class='tool' rel='
    <h1>Test</h1>
    <p class='info'>02.12.2013</p>
    <div class='ce_text'>
    <figure class='image_container float_right' style='float:right;'>
    <a href='veranstaltungsansicht/events/test.html?day=20131202&amp;times=1385999160,1386007200'  data-lightbox='00c566' title=''>
    <img src='system/html/002-7581578a.jpg'  width='150' height='105' alt=''>
    </a>
    </figure>
    <p>Dies ist der Event-Text</p>
    </div>' 
    href='veranstaltungsansicht/events/test.html?day=20131202&amp;times=1385999160,1386007200' title='Test (Montag, 02.12.2013, 16:46 - 19:00)'>
    Test
    </a>
    Jetzt haben wir im Prinzip das umgekehrte Problem: Nun wird das rel-Attribut von class='info' beendet, da ebenfalls mit Apostroph angeführt.

    Und davon abgesehen, dürfte wohl im Beschreibungsfeld nun kein Apostroph vorkommen, oder?

    Gruß Alex

  12. #12
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Na also, viel besser!

    Dann versuchen wir es mal so:
    PHP-Code:
    <?php
    // Inhalt des rel-Attributes zusammensetzen
    $rel "<h1>" $this->title "</h1><p class='info'>" $this->date "</p><div class='ce_text'>";
    if (!
    $this->addBefore) {
      
    $rel .= $this->details;
    }
    if (
    $this->addImage) {
      
    $rel .= "<figure class='image_container" $this->floatClass "'";
      if (
    $this->margin || $this->float) {
        
    $rel .= " style='" trim($this->margin $this->float) . "'";
      }
      
    $rel .= ">";
      if (
    $this->href) {
        
    $rel .= "<a href='" $this->href "' " $this->attributes " title='" $this->alt "'>";
      }
      
    $rel .= "<img src='" $this->src "' " $this->imgSize " alt='" $this->alt "'>";
      if (
    $this->href) {
        
    $rel .= "</a>";
      }
      if (
    $this->caption) {
        
    $rel .= "<figcaption class='caption' style='width:" $this->arrSize[0] . "px'>" $this->caption "</figcaption>";
      }
      
    $rel .= "</figure>";
    }
    if (
    $this->addBefore) {
      
    $rel .= $this->details;
    }
    $rel .= "</div>";

    // Anfuehrungszeichen ersetzen
    $rel str_replace('"'"'"$rel);

    // Inhalt des title-Attributes zusammensetzen
    $title $this->title "(";
    if (
    $this->day) {
      
    $title .= $this->day ", ";
    }
    $title .= $this->date;
    if (
    $this->time) {
      
    $title .= ", " $this->time;
    }
    $title .= ")";

    // die eigentliche Ausgabe
    echo '<a class="tool" rel="' $rel '" href="' $this->href '" title="' $title '" ' $this->target '>';
    echo 
    $this->link '</a>';
    ?>
    Ich habe oben den Fehler korrigiert und unten die Anführungszeichen vertauscht.

    folkfreund

  13. #13
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Fast!

    Der Link scheint jetzt einigermaßen korrekt generiert zu werden:

    HTML-Code:
    <a class="tool" rel="
    <h1>Test</h1>
    <p class='info'>05.12.2013</p>
    <div class='ce_text'>
    <figure class='image_container float_right' style='float:right;'>
    <a href='veranstaltungsansicht/events/test.html?day=20131205&amp;times=1386258360,1386266400'  data-lightbox='00c566' title=''>
    <img src='system/html/002-7581578a.jpg'  width='150' height='105' alt=''>
    </a>
    </figure>
    <p>Dies ist der Event-Text</p>
    </div>
    " href="veranstaltungsansicht/events/test.html?day=20131205&amp;times=1386258360,1386266400" title="Test(Donnerstag, 05.12.2013, 16:46 - 19:00)" >Test 
    </a>
    Doch der Tooltip reagiert nicht. Zum rel-Attribut bekomme ich folgenden Fehler angezeigt:
    Bad value for attribute rel on element a: The string <h1>test is not a registered keyword or absolute URL.
    "<h1>test"?

    Gruß Alex

  14. #14
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hi Alex,

    jetzt müssen wir nochmal ganz von vorne anfangen :
    1. gibt es einen Link zu deiner Seite?
    2. die Beschreibung bei think-contao ist für eine alte Contao-Version - hast du das entsprechend angepasst?
    3. Hier wurde kürzlich eine Alternative mit JQuery besprochen:
    folkfreund

  15. #15
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Hallo folkfreund,

    2. Nun ja, ich verwende ja auch noch eine 2.11.X-Version mit mootools.
    3. Eigentlich würde ich ungern noch jquery zusätzlich einbinden, wenn es sich vermeiden lässt.

    Wobei ich jetzt einigermaßen irritiert bin, denn ursprünglich funktionierte der Tooltip testweisen auf der Seite. Jetzt plötzlich nicht mehr, und ich seh nicht so recht, warum.

    Gruß Alex
    Geändert von mv_alex (03.01.2014 um 14:56 Uhr)

  16. #16
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hallo Alex,

    danke für den Link - jetzt woll'n wir mal sehen...
    Im Seitenquelltext sehe ich:
    HTML-Code:
    <section id="main">
    <div class="inside">
    
    <div class="mod_article block" id="liste_veranstaltungen">
    
    <p>Dies ist ein <a href="#" rel="Dies ist der Testinhalt für die Toolbox!brbrbrNoch eine Zeile." title="Test Überschrift">Testlink</a> für die Toolbox</p>
    <br>
    <br>
    <br>
    <!-- indexer::stop -->
    <div class="mod_eventlistExt block">
    testtesttesttesttesttest
    Das rel-Attribut sieht mir nicht wie die Ausgabe unseres Skriptes aus...?
    Sollen da Zeilenumbrüche im rel-Attribut stehen (brbrbr)?
    Müsste der Link nicht die Klasse .tooltip haben, damit das Script greift?

    Fragen über Fragen...

    folkfreund

  17. #17
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Hi,

    dazu ein paar Antworten:

    1. Richtig, das erste sollte nur ein Testlink sein, um zu sehen, ob das Tooltip generell funktioniert. Tut es nicht.
    "Unser" rel-Attribut fängt vor der Array-Ausgabe an.
    2. Ja, sollte eigentlich <br> heißen. Ist mir ein Rätsel, warum Contao das umwandelt. Das Element ist erlaubt und funktioniert weiter unten ja auch.
    3. Stimmt, hab ich vergessen und nachgetragen. Klappt aber immer noch nicht.

    Gruß Alex

  18. #18
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Die Konsole sagt:

    ReferenceError: ExtendedSlideItMoo is not defined

    Ganz unten auf deiner Seite wird das aufgerufen. Vielleicht ist das noch ein Rest einer alten Mootools-Erweiterung?

    Gruß, folkfreund

  19. #19
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Nein, das ist kein "Rest". Auf der Startseite ist SlideItMoo im Einsatz, somit ist das Mootools-Template im Seitenlayout eingebunden.

    Gruß Alex

  20. #20
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hast du hier auch wirklich dasselbe Layout wie auf der Startseite?
    Die JS-Konsole sagt jedenfalls, dass die Klasse ExtendedSlideItMoo nicht existiert. Das Script bricht dann da ab und führt die restlichen Schritte nicht mehr aus, u.a. die Initialisierung für deinen Tooltip. Schau mal selbst, z.B. mit den Entwicklertools im Firefox.

    Wenn du nur auf der Startseite den Slider brauchst, dann könntest du ja ein anderes Layout mit weniger Skripten für die anderen Seiten anlegen.

    Gute Nacht,
    folkfreund

  21. #21
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Du hast Recht, ich konnte die Fehlermeldung reproduzieren.

    Habe also ein neues Layout ohne Slider-Script angelegt und siehe da - Tooltip funktioniert wieder. Das erklärt zwar noch nicht, wieso die Zeilenumbrüche umgewandelt werden, aber zumindest geht es jetzt definitiv in die richtige Richtung!

    Dumm ist nur, dass auf der Startseite eigentlich Kalender UND Slider erscheinen sollen ...

    Gruß Alex

  22. #22
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hallo Alex,

    es bedeutet ja auch nicht, dass die Tooltipps nicht zusammen mit dem Slider funktionieren. Lediglich in dem verwendeten Layout ist irgendwas kaputt. Kann es sein, dass du für den Slider ein zusätzliches Javascript im Headerbereich einfügen musst?

    Ich würde mir jetzt eine Kopie des funktionierenden Layouts machen und darin versuchen, den Slider zum Laufen zu bekommen. Dann kannst du das Layout der Startseite zuweisen. Bei den anderen Seiten kannst du ja ruhig ein einfacheres Layout verwenden. Das spart Ladezeiten.

    Zu den Zeilenumbrüchen:
    Der Text stammt aus dem Event, richtig? Auf einer Event-Detailseite werden die Zeilenumbrüche richtig ausgegeben?
    Wie sieht es mit anderen HTML-Tags aus?

    folkfreund

  23. #23
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Hallo folkfreund,

    habe ein bisschen rumprobiert.

    Der ExtendedSlideItMoo-Fehler stammte tatsächlich aus dem Mootools-Template des Sliders. Dieses scheint aber auch nicht mehr notwendig zu sein, denn der Slider läuft auch ohne. Also keine Probleme mehr mit Tooltip und Slider.

    Ich habe das Listen-Template noch einmal angepasst, da ich mich entschlossen hatte, doch lieber den Teaser im Tooltip anzuzeigen:
    PHP-Code:
    <?php
    // Inhalt des rel-Attributes zusammensetzen
    $rel "<strong>" $this->title "</strong><p class='info'>" $this->date "</p><div class='ce_text'>";
    if (!
    $this->addBefore) {
      
    $rel .= $this->details;
    }
    if (
    $this->addImage) {
      
    $rel .= "<figure class='image_container" $this->floatClass "'";
      if (
    $this->margin || $this->float) {
        
    $rel .= " style='" trim($this->margin $this->float) . "'";
      }
      
    $rel .= ">";
      if (
    $this->href) {
        
    $rel .= "<a href='" $this->href "' " $this->attributes " title='" $this->alt "'>";
      }
      
    $rel .= "<img src='" $this->src "' " $this->imgSize " alt='" $this->alt "'>";
      if (
    $this->href) {
        
    $rel .= "</a>";
      }
      if (
    $this->caption) {
        
    $rel .= "<figcaption class='caption' style='width:" $this->arrSize[0] . "px'>" $this->caption "</figcaption>";
      }
      
    $rel .= "</figure>";
    }
    if (
    $this->addBefore) {
      
    $rel .= "<div class='teaser'>";
      
    $rel .= $this->teaser;
      
    $rel .= "</div>";
    }
    $rel .= "</div>";

    // Anfuehrungszeichen ersetzen
    $rel str_replace('"'"'"$rel);

    // Inhalt des title-Attributes zusammensetzen
    $title $this->title " (";
    if (
    $this->day) {
      
    $title .= $this->day ", ";
    }
    $title .= $this->date;
    if (
    $this->time) {
      
    $title .= ", " $this->time;
    }
    $title .= ")";

    ?> 

    <div class="event_upcoming">

    <span class="meta_info" title="<?php echo $this->parseDate("l, j. F Y"$this->startTime); ?>">
    <span class="weekday"><?php echo $this->parseDate("l"$this->startTime); ?></span>
    <span class="day"><?php echo $this->parseDate("d"$this->startTime); ?></span>
    <span class="month"><?php echo $this->parseDate("M"$this->startTime); ?></span>
    <span class="year"><?php echo $this->parseDate("Y"$this->startTime); ?></span>
    </span>

    <div class="event layout_upcoming<?php echo $this->classUpcoming?>">
    <span class="date"><?php echo $this->date?></span>
    <div class="event_meta">
    <?php if ($this->cep_location): ?>
    <span class="cep_location"><?php echo $this->cep_location?></span>
    <?php endif; ?>
    <?php 
    if ($this->cep_participants): ?>
    <span class="cep_participants"><?php echo $this->cep_participants?></span>
    <?php endif; ?>
    <?php 
    if ($this->cep_contact): ?>
    <span class="cep_contact"><?php echo $this->cep_contact?></span>
    <?php endif; ?>
    </div>
      
    <?php echo '<a class="tooltip" rel="' $rel '" href="' $this->href '" title="' $title '" ' $this->target '>';
    echo 
    $this->link '</a>'?>

    <?php if ($this->time): ?>
    <span class="time">(<?php echo $this->time?>)</span>
    <?php endif; ?>
    </div>
    </div>
    Ist vielleicht nicht sonderlich elegant, funktioniert aber so weit (sieht man von der Platzierung des Bilds ab ...)

    Was ich nicht verstehe, ist der Teil
    PHP-Code:
    if (!$this->addBefore) {
      
    $rel .= $this->details;

    Muss ich hier auch noch etwas anpassen, bzw. was bewirkt das oder wann greift es?

    Der Link wird jetzt in etwa so generiert:

    HTML-Code:
    <a class="tooltip" rel="<strong>Test</strong><p class='info'>20.12.2013</p><div class='ce_text'><figure class='image_container float_right' style='float:right;'><a href='veranstaltungsansicht/events/test.html?day=20131220&amp;times=1387554360,1387562400'  data-lightbox='44fbc5' title=''><img src='system/html/002-7581578a.jpg'  width='150' height='105' alt=''></a></figure><div class='teaser'><p>Dies ist ein Teaser</p></div></div>" href="veranstaltungsansicht/events/test.html?day=20131220&amp;times=1387554360,1387562400" title="Test (Freitag, 20.12.2013, 16:46 - 19:00)" >Test</a>
    Das funktioniert, validiert allerdings nicht:
    Bad value for attribute rel on element a: The string <strong>test is not a registered keyword or absolute URL.
    Sollte mir das zu denken geben?

    Der Code mit den fehlerhaften Umbrüchen kam übrigens nicht aus der Liste, sondern war ein händisch eingefügtes HTML-Element.

    Gruß Alex

  24. #24
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hallo Alex,

    in dem Modul kann man irgendwo einstellen, ob das Bild vor oder hinter den Details ausgegeben wird. Du hast hinter dem Bild $this->details durch den Teaser ersetzt.
    Wenn bei dir jetzt der Teaser erscheint, dann ist offensichtlich $this->addBefore true.
    Änderst du die Einstellung im Modul, dann wird - so wie es jetzt ist - vor dem Bild nicht der Teaser sondern $this->details ausgegeben. Ich würde das gleichziehen, also auch am Anfang schreiben:
    PHP-Code:
    if (!$this->addBefore) {
      
    $rel .= "<div class='teaser'>";
      
    $rel .= $this->teaser;
      
    $rel .= "</div>";

    Dass das rel-Attribut so nicht validiert hatte ich schon befürchtet. Hab gerade mal gesucht:
    Für rel sind eigentlich nur definierte Werte zulässig
    rel in XHTML
    rel in HTML5
    Im Zusammenhang mit Javascript wird es aber wohl auch sonst 'zweckentfremdet', z.B. für Lightboxes.
    Ob sich durch die fehlende Validierung evtl. Nachteile bei der Bewertung durch Suchmaschinen ergeben, kann ich dir nicht sagen.

    Und wenn's funktioniert...

    Gruß, folkfreund

  25. #25
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hallo heidifjk,

    willkommen im Forum!
    (Hier duzen wir uns normalerweise )

    Ein erster Beitrag so weit hinten in einem Thread erstaunt mich etwas. Ich vermute, er bezieht sich auf die Anmerkungen zum rel-Attribut?

    Viel Spaß hier im Forum - es ist eine wahre Fundgrube!

    folkfreund

  26. #26
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Hallo folkfreund,

    ich vermute eher, dieser Beitrag bezog sich auf die eigene Signatur ...

    Habe das Template entsprechend angepasst. An der Darstellung des Bilds ändert sich dadurch nichts - das scheint mir eher ein CSS-Problem zu sein.

    Hatte schon überlegt, dem Tooltip ein min-height zu vergeben, aber ich kann ja nicht wissen, wie hoch die Bilder mal sein könnten.

    Gruß Alex

  27. #27
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Falls jemand Interesse hat, hier noch einmal das gesamte Template, das auch eine Variable für die Extension calendar_extended_plus enthält:

    PHP-Code:
    <?php
    // Inhalt des rel-Attributes zusammensetzen
    $rel "<div class='ce_text'>";
    if (!
    $this->addBefore) {
      
    $rel .= "<div class='teaser'>";
      
    $rel .= $this->teaser;
      
    $rel .= "</div>";
    }
    if (
    $this->addImage) {
      
    $rel .= "<figure class='image_container" $this->floatClass "'";
      if (
    $this->margin || $this->float) {
        
    $rel .= " style='" trim($this->margin $this->float) . "'";
      }
      
    $rel .= ">";
      if (
    $this->href) {
        
    $rel .= "<a href='" $this->href "' " $this->attributes " title='" $this->alt "'>";
      }
      
    $rel .= "<img src='" $this->src "' " $this->imgSize " alt='" $this->alt "'>";
      if (
    $this->href) {
        
    $rel .= "</a>";
      }
      if (
    $this->caption) {
        
    $rel .= "<figcaption class='caption' style='width:" $this->arrSize[0] . "px'>" $this->caption "</figcaption>";
      }
      
    $rel .= "</figure>";
    }
    if (
    $this->addBefore) {
      
    $rel .= "<div class='teaser'>";
      
    $rel .= $this->teaser;
      
    $rel .= "</div>";
    }
    $rel .= "</div>";

    // Anfuehrungszeichen ersetzen
    $rel str_replace('"'"'"$rel);

    // Inhalt des title-Attributes zusammensetzen
    $title $this->title "<br>" " (";
    if (
    $this->day) {
      
    $title .= $this->day ", ";
    }
    $title .= $this->date;
    if (
    $this->time) {
      
    $title .= ", " $this->time " Uhr";
    }
    $title .= ")";

    ?> 

    <div class="event_upcoming_custom">
    <div class="event layout_upcoming<?php echo $this->classUpcoming?>">
      
    <span class="meta_info" title="<?php echo $this->parseDate("l, j. F Y"$this->startTime); ?>">
    <span class="weekday"><?php echo $this->parseDate("l"$this->startTime); ?></span>
    <span class="day"><?php echo $this->parseDate("d"$this->startTime); ?></span>
    <span class="month"><?php echo $this->parseDate("M"$this->startTime); ?></span>
    <span class="year"><?php echo $this->parseDate("Y"$this->startTime); ?></span>
    </span>

    <div class="event_upcoming_list_container">
    <span class="date">Datum: <?php echo $this->date?></span>
    <div class="event_meta">
    <?php if ($this->cep_location): ?>
    <span class="cep_location">Ort: <?php echo $this->cep_location?></span>
    <?php endif; ?>
    </div>
      
    Veranstaltung: <?php echo '<a class="tooltip" rel="' $rel '" href="' $this->href '" title="' $title '" ' $this->target '>';
    echo 
    $this->link '</a>'?>

    <?php if ($this->time): ?>
    <span class="time">(<?php echo $this->time?> Uhr)</span>
    <?php endif; ?>
    </div>
    </div>
    </div>

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •