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: Alternative für |replace:"dies":"mit dem"

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Alternative für |replace:"dies":"mit dem"
    am: 27. August 2010, 19:33:39
    Guten Abend,
    ich habe in den letzten Stunden meine product_info verbessert.
    Doch jetzt habe ich eine sehr lange Zeile die bei gleicher vorgehens weise noch viel länger werden würde.

    Code: PHP  [Auswählen]
    {$PRODUCTS_DESCRIPTION|replace:"jtl-keyword":'<img src="templates/*/img/keyword.gif" alt="hier Text" title="und hier Text" height="200px" width="200px">'
     
    Den replace habe ich jetzt 5 mal hintereinander und es sollten noch 10 weiter replaces dazukommen.

    Jetzt meine Frage undzwar kann man das Ganze nicht viel sinnvoller mit einer PHP-Klasse lösen?
    Und wenn ja wie?

    Mein bisheriger Gedanke war die $product->data['products_description'] in der product_info.php vor der Smarty-Objekt Zuweisung abzufangen und zu manipulieren.

    LG h-h-h



    Linkback: https://www.modified-shop.org/forum/index.php?topic=7658.0
    Trade Republic - Provisionsfrei Aktien handeln

    mouseworx

    • Schreiberling
    • Beiträge: 254
    • Geschlecht:
    Alternative für |replace:"dies":"mit dem"
    Antwort #1 am: 27. August 2010, 21:32:25
    Hi,

    wenn du an der Core Datei product_info.php etwas ändern willst, dann geht das recht einfach:

    Code: PHP  [Auswählen]
    $search = array('wort-1','wort-2','wort-3');
    $replace = array('ersatz-1','ersatz-2','ersatz-3');

    $product->data['products_description'] = str_replace($search,$replace,$product->data['products_description']);
    Grüße
    Sebastian

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Alternative für |replace:"dies":"mit dem"
    Antwort #2 am: 27. August 2010, 22:05:28
    Ja Sebastian,
    genial vielen Dank wenn das so funktioniert und ich in die arrays auch <a href=""schreiben kann perfekt.

    Und DANKE

    LG
    h-h-h

    mouseworx

    • Schreiberling
    • Beiträge: 254
    • Geschlecht:
    Alternative für |replace:"dies":"mit dem"
    Antwort #3 am: 27. August 2010, 22:13:32
    Code: PHP  [Auswählen]
    <a href="http://www.meine-andere-seite.html" target="_blank">Link</a>
    sollte gehen - wenn du allerdings Shop intern verlinken willst und dabei die Session ID mit übergeben möchtest, dann ist das etwas schwieriger. In dem Fall musst du mit

    Code: PHP  [Auswählen]
    $link = xtc_href_link('shopseite.php', 'parameter');
    arbeiten und den $link dann ins $replace array einbauen.

    Grüße
    Sebastian

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Alternative für |replace:"dies":"mit dem"
    Antwort #4 am: 27. August 2010, 22:18:01
    Ja, entschuldige habe mich verschrieben wollte sagen <img src="", es ging mir um die Sonderzeichen.
    Doch ich habe mich gefragt ob man auch php/html dateien beim replace array importieren kann welche dann ein bisschen mehr Text/Struktur enthalten.

    Besten Dank

    h-h-h

    mouseworx

    • Schreiberling
    • Beiträge: 254
    • Geschlecht:
    Alternative für |replace:"dies":"mit dem"
    Antwort #5 am: 27. August 2010, 22:22:06
    Für den Fall dass du ganze Dateien einlesen und weiterverarbeiten willst sind die PHP Funktionen fopen() und fread() dein Freund. Die Funktionsreferenz gibt es hier aber das geht nun zu weit von deiner eigentlichen Fragestellung weg...

    Grüße
    Sebastian

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Alternative für |replace:"dies":"mit dem"
    Antwort #6 am: 04. September 2010, 12:17:34
    Das ist schon mal eine feine Sache, doch ich möchte noch einen Schritt weiter gehen.
    Und zwar soll aus der Artikel Beschreibung ein Teil ausgeschnitten werden den ich nach einem bestimmten Muster eingekreist habe. Dieser muss dann mit einem {$PRODUCTS_MERKMAL} abrufbar sein.
    Soweit so gut, doch ich weiß nicht wie ich dem replace suchstring beibringe das er mir z.B.
    bei dem Muster (m:text), den Text aus dem Bereich holt. Kurz gesagt habe ich keine Ahnung von /(&$"//$" bzw. dessen Fachausdruck und weiß somit nicht wonach ich suchen soll.

    Hiermit würde man sehr viele Möglichkeiten bekommen auch mit JTL-Wawi zusätzliche Artikelmerkmale zu setzen, welche man nachher auf verschiedenste weise nutzen kann.
    Ohne das man extra Eingabefelder benötigt, sonder dem Kunden spezielle Marker an die Hand gibt.

    Bitte sagt mir Eure Meinungen zu dieser Idee, habe noch eine sehr gute Nutzungsmöglichkeit die ich zum jetztigem Zeitpunkt noch nicht bekannt geben möchte :B :B :B

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Alternative für |replace:"dies":"mit dem"
    Antwort #7 am: 05. September 2010, 16:48:55
    Guten Tag zusammen,
    nun habe ich es geschafft mein Vision umzusetzen.
    Doch jetzt gibt es noch leichte Fehler wenn ich die Artikelbeschreibung nicht absolut exakt nach diesem Muster mache:

    Code: XML  [Auswählen]
    <p>beebb be bbe bee bbsc  sch  ssch  rrr eee iii bbbb uuuu nn  ng gg.(spezial1)EXTRAFUNKTION(spezial1)(spezial2)Besonderheit(spezial2)</p>
    product_info.php (ca. Zeile 120)

    Code: PHP  [Auswählen]
    // filter aus der Produktbeschreibung den Inhalt der Marker
    $product->data['products_extrafunktion'] = preg_replace('!.*?\(spezial1\)(.*?)\(spezial1\)!',"$1",$product->data['products_description']);
    $product->data['products_besonderheit'] = preg_replace('!.*?\(spezial2\)(.*?)\(spezial2\).*!',"$1",$product->data['products_description']);

    $info_smarty->assign('PRODUCTS_BESONDERHEIT', $product->data['products_besonderheit']);
    $info_smarty->assign('PRODUCTS_EXTRAFUNKTION', $product->data['products_extrafunktion']);

    // Produktbeschreibung von Markern samt Inhalt befreien
    $product->data['products_description'] = preg_replace('!\(spezial1\).*\(spezial1\)!',"$1",$product->data['products_description']);!
    $product->data['products_description'] = preg_replace('!\(spezial2\).*\(spezial2\)!',"$1",$product->data['products_description']);!
     
    product_info***.html

    Code: XML  [Auswählen]
    {if $PRODUCTS_BESONDERHEIT !=''}<strong>Besonderheit:</strong> <div>{$PRODUCTS_BESONDERHEIT}</div>{/if}
    {if $PRODUCTS_EXTRAFUNKTION !=''}<strong>Extrafunktion:</strong> <div>{$PRODUCTS_EXTRAFUNKTION}</div>{/if}
    Die Probleme entstehen mit Sicherheit durch die unprofessionelle preg_replace Angabe.
    Kann mir die jemand säubern bzw korrigieren?

    Gruß h-h-h

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Alternative für |replace:"dies":"mit dem"
    Antwort #8 am: 05. September 2010, 23:51:47
    meine Vision meinte ich natürlich.
    Wo ist denn der bearbeiten Button geblieben?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Alternative für |replace:"dies":"mit dem"
    Antwort #9 am: 06. September 2010, 08:26:38
    Den "Bearbeiten-Button" gibt es nur 60 Minuten nach Verfassen des Beitrages. ;-)

    Grüße

    Torsten

    6 Antworten
    5034 Aufrufe
    12. März 2018, 14:32:49 von andy.kegel
    10 Antworten
    11141 Aufrufe
    06. Juli 2011, 15:49:42 von Tomcraft
    3 Antworten
    5307 Aufrufe
    13. Mai 2011, 09:00:31 von Tomcraft
               
    anything