We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 10691
    • 36 Posts
    Voor mijn forum heb ik een php-script gemaakt dat alle woorden in een bericht bekijkt en bij aangegeven begrippen een definitie-tag met uitleg er omheen zet. Dat is onderstaande code:
    <?php
    $begrip = array(
       'hamon' => 'Golfpatroon in het staal van het snijvlak dat zichtbaar wordt na polijsting',
       'kassaki' => 'punt',
       'PC pk' => 'Practical katana van Paul Chen',
       'saya' => 'schede',  
       'tsuba' => 'Scheidt handvat van blad en voorkomt dat de hand langs het blad glijdt',
    );
    $message = preg_replace( 
        '/(?<=[>\s(?]|^)(' 
            . implode( 
                '|', 
                array_map( 
                    create_function( 
                        '$s', 
                        'return preg_quote($s, "/");' 
                    ), 
                    array_keys( 
                        $begrip 
                    ) 
                ) 
            ) 
            . ')(?=[\s.,<)?]|$)/ie', 
        '\'<dfn title="\' . htmlspecialchars(\$begrip[ucfirst(strtolower(\'$0\'))]) . \'">$0</dfn>\'', 
        $message 
    );
    ?>
    

    Kort gezegd komt het erop neer dat als er "saya" in een bericht staat, dit in HTML wordt vervangen door
    <dfn title="Schede">saya</dfn>
    (noot terzijde: de array is natuurlijk veel langer maar voor de duidelijkheid ingekort)

    Dit zou ik graag ook voor artikelen buiten het forum willen toepassen. De boel zal dan wellicht een tikkie verbouwd moeten worden ($message bestaat waarschijnlijk niet in MODx) maar dat zal vast wel kunnen. Vraag is echter: "Hoe"? Ik ben een enorme newbie op MODx-gebied. Voor zover ik heb begrepen kan je zulke trucs uithalen met een snippet o.i.d., maar kan iemand me de weg wijzen?
      • 18985
      • 29 Posts
      Je moet je code in een snipped zetten en die op de gewenste pagina aanroepen. Hoe dat precies in zijn werk gaat kan ik je niet goed uitleggen.

      Ik hoop dat het duidelijk genoeg is, anders stel ik voor dat je even op een pro wacht die het je haarfijn kan uitleggen.
        • 10691
        • 36 Posts
        "Gewoon in een snippet zetten". Hoe dat gaat snap ik, maar dan moet er nog ergens bepaald zijn wat de string is van de inhoud neem ik aan. Immers, de preg_replace moet iets hebben om in te zoeken. Dat gaat in bovenstaande code zo:
        $message = preg_replace(zoeken naar..., vervangen door..., in string $message)

        Wat hier $message is moet dus vervangen worden door de string van de inhoud van een pagina van MODx.
          • 25483
          • 741 Posts
          Een snippet gaat niet werken, je moet een plugin maken... je wil namelijk je content vervangen en niet iets toevoegen.

          Hoe het verder in zijn werk gaat weet ik niet (ik heb nog nooit een plugin gemaakt), kijk anders eens of je wat kan vinden op wiki.modxcms.com?
            with regards,

            Ronald Lokers
            'Front-end developer' @ h2o Media

            • 10691
            • 36 Posts
            Ah, ik zie het. Maar op de wiki (en in de documentation) vind ik niet veel over plugins. Wel wat voorbeelden, maar geen guide van hoe je een plugin moet maken. Enige hulp zou welkom zijn...
              • 7455
              • 2,204 Posts
              ik heb een simpele zoek en vervang plugin gemaakt:

              die je misschien als basis kan gebruiken
              http://modxcms.com/tooltipXWordReplace-1396.html

              groetjes

              er is een nieuwe versie van die werkt met tooltipx


              Dimmy
                follow me on twitter: @dimmy01