Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Direktes aufrufen eines Templates per Link

  1. #1
    Neu an Board
    Registriert seit
    10.11.2003
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo!

    Ich hab folgende Vorstellung und frage mich, ob es möglich ist, dies in Mambo zu realisieren:

    Szenario 1)
    Der User kommt auf eine Willkommensseite (Vorschaltseite), diese ist eine gewöhnliche HTML Seite mit 3 Links. Alle 3 Links führen zur Startseite von Mambo, welches in einem Unterverzeichnis installiert ist. Jeder Link ruft natürlich die index.php von Mambo auf, aber mit jeweils einem Argument, dass ein bestimmtes Template aufruft. (In Mambo sind natürlich ebefalls 3 Design-Templates). Lässt sich ein Parameter an die URL anhängen, um der index.php mitzuteilen, in welchem Layout sie die Seite darstellen soll? Efekt also ähnlich wie der Template Choser, nur aber mit drei statischen Links von einer Vorschaltseite.

    Szenario 2)
    Hier sind event. Komponentenentwickler gefragt: Gibt es eine Möglichkeit, Zeitgesteuert (z.B. nach Uhrzeit) dem User unterschiedliche Tempaltes zu zeigen? Z.B.: vormittags ein "Vormittags-Template", ab 12 Uhr ein "Nachmittags-Tempalte", abends dann ein dunkles "Nacht-Template"?! Event. könnte dies auch über obigen Weg realisiert werden, wenn eine Vorschaltseite existiert, die per Javascript je nach Uhrzeit auf die index.php mit einem bestimmten Parameter (falls das eben geht) weiter leitet.

    Hinweise wären sehr willkommen!
    Grüße an Alle,

    Stephan

  2. #2
    Hat hier eine Zweitwohnung
    Registriert seit
    01.01.1970
    Beiträge
    1.696
    Bedankte sich
    0
    Erhielt 7 Danksagungen
    in 7 Beiträgen

    Standard

    Hi,

    Zum ersten Punkte denke ich, dass das was du suchst, bzw. wie ich es verstanden habe, völlig überflüssig ist, wenn man sowieso Template Choser hat!?
    Wenn du aber gedacht hast, bei jedem Linkklick in der Menü ein neues Template aufzurufen, dann sollst du vorerst ruhig weiter schlafen! Es gibt irgend eine Lösung in diese Richtung in ww.mamboserver.com (english). Da kannst du mal nachschauen!

    Das zweite, Zeitgesteuert...!? :arrow:
    Am einfachsten wäre, man kauft eine gute Uhr und stellt den Wecker genau auf die erwünschten Zeiten ein!

    Es gibt die sog. Cronjobs, die jedoch bei jedem Hosting-Level erlaubt/unterstützt werden. Suche bei Google nach "cronjobs" für mehr Infos... oder auch bei putretec.de bei Hilfe gibt es eine kleine Einführung.!
    Ciao

  3. #3
    Neu an Board
    Registriert seit
    10.11.2003
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo!

    All dies ist auch mir bekannt, z.B. Cronjobs etc. - Ich will auch nicht erreichen, dass das Tempalte bei jedem Klick sich ändert. Vielleicht sollte ich etwas anders beschreiben was ich vorhabe, ganz besonders auf das uhrzeitgesteuerte Verhalten:

    Betritt man die Webseite vormittags, dann ist sie in einem hellen "Morgen"-Thema gehalten. Gegen Nachmittag dann erscheint sie in einem "Afternoon"-Thema und am Abend in einem eleganten "Nightlife"-Look. Solche Gags kann man an sich recht einfach mit ein paar Zeilen Javascript oder auch PHP erreichen - bei statischen Webseiten zum Beispiel werden dann eben je nach Uhrzeit andere URLs aufgerufen (ich will damit nicht mich oder irgendjemanden Wecken, sondern einfach je nach Tageszeit wie gesagt einen anderen Look erzielen - ich denke dass das nicht sonderlich ausergewöhnlich ist, gibt eine Webseite von irgend einem alkoholischen Gesöff, da sieht man je nach Tageszeit eine Bar, mal leer mit Stühlen oben, mal ein paar Leute tagsüber, mal in der Nacht mit vielen Leuten...

    Um dies zu erzielen müsste man eben nur wissen, wie und ob man per Argument in der URL das Tempate wechseln kann oder ob man hier etwas komplexer werden muss (bisher hatte ich noch keine große Lust "Template Chooser" aufzuschrauben...).

    Grüße, Stephan

  4. #4
    Neu an Board
    Registriert seit
    10.11.2003
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hi Ho!

    Ich kann meine Frage jetzt selbst beantworten, darum hier als Anregung für denjenigen, der sowas ähnliches auch machen möchte:

    Bei der Analyse, wie Template Chooser arbeitet, ist mir aufgefallen, dass hier per POST mos_change_template mit dem Templatenamen als Variable übergeben wird. Ich habe daraufhin das Formular von Template Chooser auf ein neues HTML-Dokument gelegt und damit herumexperimentiert. Per GET war es nicht möglich, das Template zu ändern, die URL sah dann so aus:
    .../index.php?mos_change_template=TEMPLATENAME.
    Somit brauche ich also gar nicht weiter herumprobieren, ob ich per Link das Template ändern kann, weil die Variable gePOSTet werden muss.

    Nun kann man mit Hilfe von etwas JavaScript es schaffen, dass ein Formular mittels Link übertragen wird. Dazu hat man das Formular wie gewohnt und anstelle des Submit-Buttons setzt man
    [code:1:f47d84eddb]<a href=javascript&#58;document.FORMNAME.submit&#40;& #41;;>TEXT</a>[/code:1:f47d84eddb]
    Dabei muss FORMNAME mit dem Namen des Formulars übereinstimmen.

    Als nächsten Schirtt bin ich herangegangen, und habe etwas PHP-Code geschrieben, der mir je nach Uhrzeit ein anderes Output gibt. Ich hatte ja ursprünglich vor, die User einer Webseite auf einer Vorschaltseite zu begrüßen (und hier z.B. auch einen Link zum Downloaden von Flash sowie event. auch noch einen Flashcheck etc. zu haben), und dann den Linke "Enter", um die eigentliche Seite zu betreten. Diese dann ist natürlich unser Mambo. Die Vorschaltseite sitzt bei mir in der Web-Root, als index.php, Mambo ist dann komplett in einem Unterverzeichnis installiert, welches ich hier zur Veranschaulichung "MOS_ROOT" genannt habe.

    Der Quellcode der Vorschaltseite (natürlich ohne jegliche Bilder sondern hier nur die Funktion zur Veranschaulichung) lautet:

    [code:1:f47d84eddb]
    <html>
    <head>
    <title>WEBSITE_TITLE</title>
    <meta ***********="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>

    <form action="/MOS_ROOT/" name='template1' method="post">
    <input type="hidden" name="mos_change_template" value="TEMPLATE_1" >
    </form>

    <form action="/MOS_ROOT/" name='template2' method="post">
    <input type="hidden" name="mos_change_template" value="TEMPLATE_2" >
    </form>

    <form action="/MOS_ROOT/" name='template3' method="post">
    <input type="hidden" name="mos_change_template" value="TEMPLATE_3" >
    </form>

    <?php
    $theDate = date&#40;"H"&#41;;
    if&#40;$theDate < 12&#41;
    echo "Good morning! <a herf=javascript&#58;document.template1.submit&#40; &#41;;>Enter our site</a>";
    else if&#40;$theDate < 18&#41;
    echo "Good afternoon! <a href=javascript&#58;document.template2.submit&#40; &#41;;>Enter our site</a>";
    else
    echo "Good evening! <a href=javascript&#58;document.template3.submit&#40; &#41;;>Enter our site</a>";
    >

    </body>
    </html>
    [/code:1:f47d84eddb]

    Ihr seht also gleich im Body drei Formulare, alle unsichtbar gemacht, die unterschiedliche Namen tragen, damit sie dann per JavaScript-Link aufrufbar werden.

    Danach kommt der PHP-Code, der mir die aktuelle Stundenzahl in die Variable "date" schreibt ("H" steht für Hours). Danach eine if-els-Schleife, welches je nach Uhrzeit einen unterschiedlichen Gruß sowie unterschiedlichen Link ausspuckt.

    Mit diesem Gerüst denke ich kann man nun alle möglichen Arten von möglichen Spielereien machen, die eine automatische Template-Wahl erfordern...

    Schöne Grüße,

    Stephan

  5. #5
    Neu an Board
    Registriert seit
    12.05.2004
    Beiträge
    1
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Danke Gateone!

    Hatte auch dei gleiche Idee. Deine vorlage hat mir bei meinem Problem sehr geholfen so musste ich mir die PHP-Seite vom Template Chooser nicht durch arbeiten. Bei mir soll es einfach nur eine wechsel im Template nach bereichen werden und nicht nach Uhrzeit. Nochmal vielen Danke.

  6. #6
    Neu an Board
    Registriert seit
    10.11.2003
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hi!

    Kleine gute Nachricht am Rande: offensichtlich klappt es ab der letzten Stable Version von 4.5 jetzt doch, per URL das Template zu wechseln. Das ging wohl zum Zeitpunkt, als ich das schrieb, noch nicht so ganz.

    So kann man jetzt wirklich den Wert mos_change_template=TEMPLATENAME mit in der URL übergeben.

    Ich habe das gerade für ein größeres Projekt realisiert, die a) eine normale Homepage hat und b) zwei spezielle Sub-Homepages (eine ist eine Version für Pressemeldungen des Unternehmens, in angepasstem und schnellen Design, die zweite sind sozusagen Microsite-Satelliten, die von der eigentlichen Homepage in einem dritten Layout aus erscheinen. Alle drei Layouts sind Templates - per http://www.domain.com/index.php?mos_...eterFolgenHier
    wird dann das jeweilige Template umgeschaltet. Wobei dann ganz nett ist, dass alle Folgeseiten weiterhin das neu geschaltete Template beibehalten, bis wieder irgendwann per mos_change_template in der URL auf ein anderes geschaltet wird.

    Stephan

  7. #7
    Neu an Board
    Registriert seit
    10.11.2003
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    By the way,

    Zeitgesteuerte Templates gehen auch ohne Link aus einer Vorschaltseite. Ich habe mal eine Seite gemacht, die hat 5 farblich unterschiedliche Templates. Jede Stunde war eine neue Farbe / ein neues Layout zu sehen. die Farben waren Hellblau ("Cyan"), Rot, Grün, Blau und Gelb. Dazu muss im Template-Chooser selbst ein wenig editiert werden.

    Öffne MOSROOT/classes/mambo.php

    Hier folgende Zeile finden:

    [code:1:cf4e84909a]$this->_template = $cur_template;[/code:1:cf4e84909a]

    Diese eine Zeile ersetzen durch:

    [code:1:cf4e84909a]
    /**
    * old template chosser&#58;
    * $this->_template = $cur_template;
    **/

    // New Time Based Template Chooser
    $thetime = date&#40;"H"&#41;;
    if&#40;$thetime == 1&#41;&#123;
    $this->_template = cyan;
    &#125; else if&#40;$thetime == 2&#41; &#123;
    $this->_template = red;
    &#125; else if&#40;$thetime == 3&#41; &#123;
    $this->_template = green;
    &#125; else if&#40;$thetime == 4&#41; &#123;
    $this->_template = blue;
    &#125; else if&#40;$thetime == 5&#41; &#123;
    $this->_template = yellow;
    &#125; else if&#40;$thetime == 6&#41; &#123;
    $this->_template = cyan;
    &#125; else if&#40;$thetime == 7&#41; &#123;
    $this->_template = red;
    &#125; else if&#40;$thetime == 8&#41; &#123;
    $this->_template = green;
    &#125; else if&#40;$thetime == 9&#41; &#123;
    $this->_template = blue;
    &#125; else if&#40;$thetime == 10&#41; &#123;
    $this->_template = yellow;
    &#125; else if&#40;$thetime == 11&#41; &#123;
    $this->_template = cyan;
    &#125; else if&#40;$thetime == 12&#41; &#123;
    $this->_template = red;
    &#125; else if&#40;$thetime == 13&#41; &#123;
    $this->_template = green;
    &#125; else if&#40;$thetime == 14&#41; &#123;
    $this->_template = blue;
    &#125; else if&#40;$thetime == 15&#41; &#123;
    $this->_template = yellow;
    &#125; else if&#40;$thetime == 16&#41; &#123;
    $this->_template = cyan;
    &#125; else if&#40;$thetime == 17&#41; &#123;
    $this->_template = red;
    &#125; else if&#40;$thetime == 18&#41; &#123;
    $this->_template = green;
    &#125; else if&#40;$thetime == 19&#41; &#123;
    $this->_template = blue;
    &#125; else if&#40;$thetime == 20&#41; &#123;
    $this->_template = yellow;
    &#125; else if&#40;$thetime == 21&#41; &#123;
    $this->_template = cyan;
    &#125; else if&#40;$thetime == 22&#41; &#123;
    $this->_template = red;
    &#125; else if&#40;$thetime == 23&#41; &#123;
    $this->_template = green;
    &#125; else &#123;
    $this->_template = blue;
    &#125;
    //End time based template chooser
    [/code:1:cf4e84909a]

    Das schaltet dann jede Stunde ein neues Template. Hier kannst Du natürlich mit der Datei-Funktion beliebige Zeitangaben abfragen und diese über $thetime == XXX als Kondition setzen.

    Vorsicht: mit dieser Methode funktioniert dann allerdings der Template-Chooser nicht mehr, da immer ein definiertes Template vorhanden ist!

    Stephan

  8. #8
    Kommt häufiger vorbei
    Registriert seit
    06.11.2004
    Ort
    NRW
    Alter
    60
    Beiträge
    421
    Bedankte sich
    0
    1 Danksagung in 1 Beitrag

    Standard

    Hallo Stephan

    falls das Thema noch aktuell ist...

    auf www.24bit.biz gibt es einen zeitgesteuerten Template Switcher als Komponente.
    Allerdings ist diese Kostenpflichtig (10 Euro)

    Gruss Ralf

  9. #9
    Neu an Board
    Registriert seit
    05.03.2005
    Beiträge
    85
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Kann mir das einer nochmal genauer erklären, ich schaffe es nicht ...

    Ich möchte den Template Chooser auch so umändern das man ein Template per click ändern kann und nicht per aussuchen + button press

  10. #10
    Neu an Board
    Registriert seit
    23.10.2006
    Beiträge
    6
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    bei joomla 1.0.11 kann man die templates ganz einfach per link switchen. man muss dazu nur ein link auf seiner seite haben. im tamplate manager menue dann ein häckchen auf das temlate und dann auf assign und den link auswählen. ich denke dadurch erhält man immer mehr möglichkeiten....

Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. Bestimmtes Template per Link aufrufen
    Von Stefan im Forum Tipps, Tricks und Kurzanleitungen
    Antworten: 4
    Letzter Beitrag: 14.01.2006, 12:48
  2. Seiten nicht im Menü zeigen aber per Link aufrufen
    Von schukyboy im Forum Allgemeine Fragen zu Mambo 4.5.0
    Antworten: 0
    Letzter Beitrag: 05.03.2004, 21:44

Berechtigungen

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