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: Zusätzlicher Text in der main_content.html aus dem Content Manager

    MoHo

    • Fördermitglied
    • Beiträge: 118
    Wenn ich das so richtig sehe, wird im Template in der main_content.html mit der Zeile:
    Code: PHP  [Auswählen]
    <div>{$text}</div>
    die Content Seite "Index" ausgegeben.
    Danach folgen dann die neuen Produkte und Ankündigungen.
    Jetzt würde ich gerne danach einen weiteren Text aus einer Content Seite einfügen.
    Wie macht man das am geschicktesten?

    Vielen Dank
    Heiko

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

    hedon02

    • Viel Schreiber
    • Beiträge: 618
     :-P wie geschickt das ist, kommt immer auf den spezifischen Fall an, aber Du könntest es z.B. folgendermassen machen:

    "includes/modules/default.php":

    Suche:
    Code: PHP  [Auswählen]
    /**
      * default content page
      *
      */

    } else {

      $shop_content_data = $main->getContentData(5);

      $default_smarty->assign('title', $shop_content_data['content_heading']);

      include (DIR_WS_INCLUDES.FILENAME_CENTER_MODULES);

      $default_smarty->assign('text', str_replace('{$greeting}', xtc_customer_greeting(), $shop_content_data['content_text']));
      $default_smarty->assign('language', $_SESSION['language']);
     

    und verändere entsprechend:

    Code: PHP  [Auswählen]
    /**
      * default content page
      *
      */

    } else {
      // eigene Codeänderung - Hinzufügen weiterer Contentseiten für main_content
      $shop_content_data = $main->getContentData(5);
      $shop_content_data_2 = $main->getContentData(9);

      $default_smarty->assign('title', $shop_content_data['content_heading']);
      $default_smarty->assign('title_2', $shop_content_data_2['content_heading']);

      include (DIR_WS_INCLUDES.FILENAME_CENTER_MODULES);

      $default_smarty->assign('text', str_replace('{$greeting}', xtc_customer_greeting(), $shop_content_data['content_text']));
      $default_smarty->assign('text_2', $shop_content_data_2['content_text']);
      $default_smarty->assign('language', $_SESSION['language']);

    Hast dann z.B. hier das Widerrufsrecht in der main_content zur Verfügung ({$title_2} + {$text_2}) :-D

    Grüsse

    MoHo

    • Fördermitglied
    • Beiträge: 118
    Danke, klappt perfekt!

    Ich habe dann noch in der main_content.html einen Umbruch <br clear="both" /> eingefügt, da der untere Text sonst die new Products, die ich als 3 Spalten Layout habe, umfließen würde, wenn die Zeile nicht aufgefüllt ist.

    menthol

    • Frisch an Board
    • Beiträge: 63
    • Geschlecht:
    Nabend,

    coole Idee die schnell und einfach funktioniert. Ist das dann aber nicht bezüglich duplicant content schädlich? Immerhin wird der Text aus ner bestehenden Seite 1 zu 1 kopiert.

    Fakrae

    • Viel Schreiber
    • Beiträge: 997
    Du musst eben darauf achten, dass der Content den du kopierst NICHT auch über die normalen Links erreichbar ist

    menthol

    • Frisch an Board
    • Beiträge: 63
    • Geschlecht:
    ja gut, dies lässt sich ja über den contentmanager abschalten (in box sichtbar)...Wirklich ne geile Idee.
    Wir haben jetzt so unsere Startseite komplett neu organisiert. Irgendwelche SEO relevanten Texte sind auf der Startseite immer ganz oben gewesen. Das sieht nicht nur unschön aus, gleichzeitig veschreckt man User durch zuviel Text.
    Jetzt haben wir das schön aufgeteilt in einen Slider oben, aktuelle Produkte in der Mitte, und SEO Texte aus dem Contentmanager unter diesen Produkten. Das macht die Sache echt flexibel, und die Absprungquote und Verweildauer haben sich in beiden Fällen positiv entwickelt. Danke für die Frage und die Lösung!

    Bastel-Dirk

    • Neu im Forum
    • Beiträge: 20
    Hallo...

    ist es aber auch möglich einen Text aus dem Contentmanager (Beispiel: index_2)
    in einer Box einzufügen/darzustellen....???

    Danke

    awids

    • Experte
    • Beiträge: 3.782
    • Geschlecht:
    In Modified 2.0 lässt sich der zweite Content auf der Startseite schönerweise auch updatesicher einbinden.

    Hierzu legt man sich eine PHP-Datei (z. B.: 2nd_content.php) mit folgendem Inhalt an:
    Code: PHP  [Auswählen]
    <?php
    // Zweiter Content auf Startseite
      $shop_content_data_2 = $main->getContentData(99, '', '', false); // ersetze die coID 99 mit der coID des gewuenschten Contents
      $default_smarty->assign('title_2', $shop_content_data_2['content_heading']);
      $default_smarty->assign('text_2', $shop_content_data_2['content_text']);

    und läd diese nach: /includes/extra/default/center_modules/

    In der main_content.html des jeweiligen Templates hat man nun wie oben beschrieben ganz normal die Platzhalter {$title_2} (Überschrift) und {$text_2} (Content/Text) zur Verfügung stehen. :-)

    awids

    • Experte
    • Beiträge: 3.782
    • Geschlecht:
    Darstellung von Content aus dem Content-Manager in einer Box (tpl_modified):

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    1. Die Box 'Miscellaneous' nutzen oder diese kopieren, um eine neue Box anzulegen.
    2. Die Datei /templates/tpl_modified/source/boxes/miscellaneous.php öffnen:

    Suche:
    Code: PHP  [Auswählen]
    // set cache id
    $cache_id = md5($_SESSION['language'].$_SESSION['customers_status']['customers_status_id'].(isset($coPath) ? $coPath : '0'));
     
    Danach einfügen:
    Code: PHP  [Auswählen]
    // Content aus dem Content-Manager in Box
    $shop_content_data_2 = $main->getContentData(99, '', '', false); // ersetze die coID 99 mit der coID des gewuenschten Contents
    $box_smarty->assign('box_title_1', $shop_content_data_2['content_heading']); // Die Endziffer '1'  (auch in nächster Zeile) bei weiteren Boxen höher setzen
    $box_smarty->assign('box_text_1', $shop_content_data_2['content_text']);
     

    3. Die Datei /templates/tpl_modified/boxes/miscellaneous.html (oder ihre Kopie) öffnen:

    Suche:
    Code: XML  [Auswählen]
    <div class="box3">
      <div class="box3_header">{#heading_miscellaneous#}</div>
      <div class="box3_line"></div>
      <p><img src="{$tpl_path}img/img_footer_payment.jpg" alt="" /></p>

      <p class="box3_sub" style="font-size:10px; line-height:12px;color:#999;">{#text_miscellaneous#}</p>
    </div>
     
    Davon ausgehend, das nur der Content-Inhalt mitsamt Überschrift angezeigt werden soll - ersetze mit:
    Code: XML  [Auswählen]
    <div class="box3">
      <div class="box3_header">{$box_title_1}</div>
      <div class="box3_line"></div>
      <p>{$box_text_1}</p>
    </div>

    4. Die Box entsprechend ihrer Bezeichnung ins Template einbinden und im Content-Manager mit Text befüllen.

    ****************************************
    Fertige Zusatzbox
    ****************************************

    1. Anhängtes ZIP entpacken,

    2. die coID des Dokuments aus dem Content Manager in die Datei 'miscellaneous_cm.php' aus /source/boxes/ eintragen und folgende Dateien erweitern:

    /index.html
    An geeigneter Stelle einfügen
    Code: XML  [Auswählen]
    {$box_MISCELLANEOUS2}

    /source/boxes.php
    Suche:
    Code: PHP  [Auswählen]
      require_once(DIR_FS_BOXES . 'miscellaneous.php');
    Füge danach ein:
    Code: PHP  [Auswählen]
      require_once(DIR_FS_BOXES . 'miscellaneous_cm.php');
    ,

    3. alle (4) Dateien ins Template laden &
    2. im Contentmanager bearbeiten.

    hendrik

    • Experte
    • Beiträge: 2.038
    Noch einfacher ist es man schreibt ein Smarty-Plugin. Dann kann man Content(manager)-Inhalte komfortabel an beliebigen Stellen im Template einfügen. Und spart sich die ganzen Hacks. Datei xx, Programmstelle yy, Codeeinfügung zz.

    gruß
    hen

    awids

    • Experte
    • Beiträge: 3.782
    • Geschlecht:
    Natürlich wäre das einfacher (wenn man so bewandert in Smarty wäre :hust: ). :-) Aber irgendwas müssen die stillen "Abgreifer" ja auch noch selbst tun.  :lol: Wenn man sich wirklich nur eine Box anlegen will und die Möglichkeit an anderen Stellen gar nicht braucht, geht diese Lösung doch auch.
               
    anything