Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Zufallsinhalt in Box

    AlexB1995

    • Neu im Forum
    • Beiträge: 42
    Zufallsinhalt in Box
    am: 01. Oktober 2011, 18:43:02
    Hallo,
    ich möchte für meinen neuen Shop eine Box, in der bei jedem Aufruf ein anderer (zufälliger) Inhalt ist.
    Der Inhalt soll aus Bildern, Text und links bestehen.
    Die Box hab ich schon. ;)
    Jemand eine Idee wie man sowas umsetzen kann?
    Danke :)


    Linkback: https://www.modified-shop.org/forum/index.php?topic=15736.0

    Olinew

    • Gast
    Re: Zufallsinhalt in Box
    Antwort #1 am: 01. Oktober 2011, 21:20:06
    Vielleicht so:

    Code: PHP  [Auswählen]
    $text_zufall[1]='Text1';
    $text_zufall[2]='Text2';
    $text_zufall[3]='Text3';
    $text_zufall[4]='<img src= .... oder was weiß ich ...';
    $zufall_key = rand(1,4);
    echo $text_zufall[$zufall_key];

    Grüße!
    Oli

    AlexB1995

    • Neu im Forum
    • Beiträge: 42
    Re: Zufallsinhalt in Box
    Antwort #2 am: 02. Oktober 2011, 00:28:47
    Schonmal sehr gut. :)
    Aber wie bekomm ich da jetzt html rein.  :oops:

    Code: PHP  [Auswählen]
    <?php
        $text_zufall[1]='Text1';
        $text_zufall[2]='Text2';
        $text_zufall[3]='<html>
    <div id="1">
       <div id="2" class="TextObject">
        <p style="text-align: center; margin-bottom: 0px;"><span style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 12px;">TEST TEXT<br></span><a href="LINK"><u><span style="font-size: 13px;">text2</span></u></a></p>
       </div>
       <div id="3" class="TextObject">
        <p style="text-align: center; margin-bottom: 0px;"><span style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 12px;">test text 4</span></p>
       </div>
       <div id="Bild94LYR"><img id="Bild94" height="141" width="100" src="BILD"></div>
    </div>
    </html>'
    ;
        $text_zufall[4]='<div id="5">
       <div id="TEXT6" class="TextObject">
        <p style="text-align: center; margin-bottom: 0px;"><span style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 12px;">blabla<br></span><a href="noch ein link"><u><span style="font-size: 13px;">noch ein text</span></u></a></p>
       </div>
       <div id="noch ein div" class="TextObject">
        <p style="text-align: center; margin-bottom: 0px;"><span style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 12px;">text</span></p>
       </div>
       <div id="Bild94LYR"><img id="Bild94" height="141" width="100" src="bild" border="0" alt="123" title="123"></div>
      </div>'
    ;
        $zufall_key = rand(1,4);
        echo $text_zufall[$zufall_key];
            ?>

    da kommt dann nur der "quelltext" raus. Als ob man "echo" vornedran gesetzt hätte.

    Sieht dann so aus:

    Code: PHP  [Auswählen]
    TEST TEXT
    text2

    test text 4
    '; $text_zufall[4]='

    blabla
    noch ein text

    text
    123
    '; $zufall_key = rand(1,4); echo $text_zufall[$zufall_key]; ?>

    Wo steckt der Fehler? :)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Zufallsinhalt in Box
    Antwort #3 am: 02. Oktober 2011, 00:49:55
    [...]
    Code: PHP  [Auswählen]
    ...
        $zufall_key = rand(1,4);
        echo $text_zufall[$zufall_key];
            ?>

    da kommt dann nur der "quelltext" raus. Als ob man "echo" vornedran gesetzt hätte.
    [...]

    Wunder mich nicht... vielleicht siehst du es jetzt selbst. ;-)

    Grüße

    Torsten

    Olinew

    • Gast
    Re: Zufallsinhalt in Box
    Antwort #4 am: 02. Oktober 2011, 00:51:47
    Der Text in $text_zufall[X] muß aber auch immer in einer einzigen Zeile stehen ... Auch verstehe ich nicht, warum Du <html> und </html> verwendest.
    Probiere mal mit kleineren Codefetzen.

    Gruß
    Oli

    EDIT: Also ich hab's gerade mal getestet und eine separate Datei mit den Texten etc. erstellt und dann zur Ausgabe includiert. Bei mir funktioniert es.

    AlexB1995

    • Neu im Forum
    • Beiträge: 42
    Re: Zufallsinhalt in Box
    Antwort #5 am: 02. Oktober 2011, 01:06:09
    [...]
    Code: PHP  [Auswählen]
    ...
        $zufall_key = rand(1,4);
        echo $text_zufall[$zufall_key];
            ?>

    da kommt dann nur der "quelltext" raus. Als ob man "echo" vornedran gesetzt hätte.
    [...]

    Wunder mich nicht... vielleicht siehst du es jetzt selbst. ;-)

    Grüße

    Torsten

    Nein ich glaube ich sehe es nicht selbst... :( Leider hab ich auch so gut wie 0 ahnung von php :D

    Der Text in $text_zufall[X] muß aber auch immer in einer einzigen Zeile stehen ... Auch verstehe ich nicht, warum Du <html> und </html> verwendest.
    Probiere mal mit kleineren Codefetzen.
    [...]

    Bedeutet soviel wie ich kann keine "komplexen" html codes benutzen? :(

    Danke euch :)

    hendrik

    • Experte
    • Beiträge: 2.038
    Re: Zufallsinhalt in Box
    Antwort #6 am: 02. Oktober 2011, 08:00:32
    [...] eine Box, in der bei jedem Aufruf ein anderer (zufälliger) Inhalt ist.
    [...]

    Nimm dir das Tutorial in der Wiki vor, hast du vielleicht schon. Wenn du die Beispielbox erfolgreich installiert hast ist fast fertig.

    bexample.php, Abschnitt:

    Code: PHP  [Auswählen]
      // Generierung Inhalt beginn ------
      $box_content = .....Zufallstext....
      // Generierung Inhalt Ende ------

    Darin platzierst du den Codeschnipsel den man dir schon vorgegeben hat.

    Code: PHP  [Auswählen]
        $text_zufall[1]='Text1';
        $text_zufall[2]='Text2';
        $text_zufall[3]='Text3';
        $text_zufall[4]='<img src= .... oder was weiß ich ...';
        $zufall_key = rand(1,4);
        $box_content = $text_zufall[$zufall_key];

    Gruß
    Hen

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Re: Zufallsinhalt in Box
    Antwort #7 am: 02. Oktober 2011, 09:17:56
    Hier eine kleine Anleitung (Voraussetzung/Basis Tutorial: Erstellung Box)

    Variante 1

    source/boxes/bexample.php

    Code: PHP  [Auswählen]
      // Generierung Inhalt beginn ------
      $box_content = 'Inhalt provisorisch';
      // Generierung Inhalt Ende ------

    ersetzen mit

    Code: PHP  [Auswählen]
      $i = 0;
      $path = DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/random/';
      $handle = opendir ($path);
      while ($file = readdir ($handle)) {
        if(substr($file,-3)=='htm'||substr($file,-4)=='html') {
          $files[] = $path.$file;
              $i++;
        }
      }
      closedir($handle);
      $random = rand(0, $i);
      $box_content = include($files[$random]);

    Dann kann im Templateverzeichnis ein Order mit dem Namen "random" erstellt werden.
    In diesem können dann .html Dateien liegen von denen zufällig irgend eine gewählt wird.

      Mehrsprachig:

    Code: PHP  [Auswählen]
      $path = include(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/random/');

    ersetzen mit

    Code: PHP  [Auswählen]
      $path = include(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/random/'.$_SESSION['language']./');

    Hierbei müssen dann zwei Unterordner im "random"-Verzeichnis erstellt werden "german" und "english".

    Variante 2


    Noch viel cooler wäre das ganze direkt über den Content-Manager...

    source/boxes/bexample.php

    Code: PHP  [Auswählen]
      // Generierung Inhalt beginn ------
      $box_content = 'Inhalt provisorisch';
      // Generierung Inhalt Ende -----

    ersetzen mit

    Code: PHP  [Auswählen]
      $box_content_query = xtc_db_query("SELECT content_heading, content_text, content_file
                                           FROM "
    .TABLE_CONTENT_MANAGER."
                                          WHERE content_title LIKE 'box_%' "
    .$group_check."
                                            AND languages_id='"
    .(int) $_SESSION['languages_id']."'");
      for ($i=0; $data = xtc_db_fetch_array($box_content_query); $i++) {
        $content_array[] = $data;
      }
      $random = rand(0, $i);
      $content = $content_array[$random];
      if ($content['content_file'] != '') {
        ob_start();
        include (DIR_FS_CATALOG.'media/content/'.$content['content_file']);
        $box_content = ob_get_contents();
        ob_end_clean();
      } else {
        $box_content = $content['content_text'];
      }
    $smarty->assign('BOX_HEADING', $content['content_heading']);

    Dann kann im Content-Manager der Text über einen neuen Inhalt mit dem Titel: box_IRGENDETWAS bearbeitet werden.

    Damit dadurch die Box-Überschrift auch veränderbar ist, folgendes.

    box_bexample.html

    Code: XML  [Auswählen]
    {#heading_bexample#}

    ersetzen mit

    Code: XML  [Auswählen]
    {$BOX_HEADING}

    Die Sprachvariablen aus Tutorial: Erstellung Box können entfernt werden.



    Ist jetzt nicht getestet, würde mich daher über Feedback freuen.

    Gruß

    h-h-h

    [EDIT Tomcraft 03.10.2011: Fehler im Code korrigiert.]

    p3e

    • Experte
    • Beiträge: 2.425
    Re: Zufallsinhalt in Box
    Antwort #8 am: 02. Oktober 2011, 10:07:04
    Das ganze über den Contentmanager zu lösen ist mal wieder 'ne clevere Sache von h-h-h.  :good:

    AlexB1995

    • Neu im Forum
    • Beiträge: 42
    Re: Zufallsinhalt in Box
    Antwort #9 am: 02. Oktober 2011, 13:24:33
    Danke schonmal für die ganzen Antworten :)

    Die Varianten von h-h-h wären perfekt! :)

    Allerdings bekomme ich bei Variante 1 den Fehler:

    Code: PHP  [Auswählen]
    Warning: include(C:\xampp\htdocs\templates\xtc5\random) [function.include]: failed to open stream: Permission denied in C:\xampp\htdocs\templates\xtc5\source\boxes\bexample.php on line 10

    Warning: include() [function.include]: Failed opening 'C:/xampp/htdocs/templates/xtc5/random/' for inclusion (include_path='.;\xampp\php\PEAR') in C:\xampp\htdocs\templates\xtc5\source\boxes\bexample.php on line 10

    Warning: readdir() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\templates\xtc5\source\boxes\bexample.php on line 12

    Warning: closedir() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\templates\xtc5\source\boxes\bexample.php on line 18

    Warning: include() [function.include]: Filename cannot be empty in C:\xampp\htdocs\templates\xtc5\source\boxes\bexample.php on line 20

    Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.;\xampp\php\PEAR') in C:\xampp\htdocs\templates\xtc5\source\boxes\bexample.php on line 20

    Und bei Variante 2:

    Code: PHP  [Auswählen]
    Parse error: syntax error, unexpected '[' in C:\xampp\htdocs\templates\xtc5\source\boxes\bexample.php on line 17

    :(

    Wer sich das mal anschauen will: http://tinyurl.com/6alzhgf

    Danke euch allen :)

    Alex

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Re: Zufallsinhalt in Box
    Antwort #10 am: 02. Oktober 2011, 13:35:27
    Hallo Alex,
    in Variante 2 habe ich folgenden Fehler gemacht:

    Code: PHP  [Auswählen]
    $content = content_array[$random];

    muss heißen:

    Code: PHP  [Auswählen]
    $content = $content_array[$random];

    Und in Variante 1 erkenne ich folgendes:

    Code: PHP  [Auswählen]
    $path = include(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/random/');

    ersetzen mit:

    Code: PHP  [Auswählen]
    $path = DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/random/';

     :-I

    Mal schauen, das waren ja jetzt komische Fehler.

    Gruß

    h-h-h

    AlexB1995

    • Neu im Forum
    • Beiträge: 42
    Re: Zufallsinhalt in Box
    Antwort #11 am: 02. Oktober 2011, 13:43:56
    Perfekt Funktioniert! :)

    Noch eine Frage:

    Wie kann ich bei Variante 2 bestimmen wie viele Zufallsinhalte angezeigt werden können?

    Im Moment sind es 6 wenn ich mich nicht irre. :)

    Danke  :wohow:

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Zufallsinhalt in Box
    Antwort #12 am: 02. Oktober 2011, 13:53:17
    @AlexB1995
    Mich würde interessieren, was du dir für einen Vorteil durch ein Random-Produkt versprichst?

    Denn spontan fallen mir nur negative Sachen ein:
    - längere Ladezeit bei vielen Produkten, weil das Randomquery erst immer durchgeführt wird
    - Google erkennt automatisch generierten Inhalt und findet ihn nicht so toll
    - Kunden sind verwirrt, weil sie einen Artikel sehen, rufen die Seite nocheinmal auf und schon wird ein anderer Artikel gezeigt

    Gruß
    Ronny

    AlexB1995

    • Neu im Forum
    • Beiträge: 42
    Re: Zufallsinhalt in Box
    Antwort #13 am: 02. Oktober 2011, 14:01:38
    @Webkiste

    In dem Shop sollen Hausgemachte Lebensmittel verkauft werden. Wie z.B Eierlikör, Honig, Marmelade etc.

    In der Box erscheinen dann per Zufall eines der Produkte, mit Bild und ein kleiner Text.

    z.B.:

    Zitat
    Unser hausgemachter Eierlikör
    [ Bild ]
    Echter hausgemachter Eierlikör der nach sehr altem Rezept hergestellt wird. Wir verwenden besten Rum und Freilandeier vom eigenen Hühnerhof.
    …So muss Eierlikör schmecken!

    Den Leuten für die ich den Shop mache, ist wichtig das hervorgehoben wird dass das alles hausgemacht ist und so weiter. Da fand ich die Lösung mit der Box ganz gut. :)

    Grüße
    Alex

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Zufallsinhalt in Box
    Antwort #14 am: 02. Oktober 2011, 14:06:46
    Ok, das mag der Grund dafür sein, aber was ist mit den negativen Punkten, die ich aufgezählt habe? Wäre es nicht sinnvoller, soetwas über den Bannermanager zu lösen, zumal der Shop die Funktion mitbringt?

    Gruß
    Ronny