Hello !
I’m pretty bad with regex so if someone could check my code to say if i’m using the right functions and regex... The snippet works but maybe could work fastly and better ;-)
I’m creating a little snippet wich divide the "content field" in several parts like this :
==iLoveFlowers==
flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers
==cornFlakes==
corn flakes corn flakes corn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakescorn flakes corn flakes
my snippet’s call is
[!Content? &partie=`iLoveFowers`!]
and he print only :
flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers flowers
This is the code of the snippet
<?php
$partie = isset($partie)? $partie:0;
$contenu= $modx->documentObject['content']; //get the content of the document
preg_match_all('#==\s*([a-zA-Z0-9_-]*)\s*==#',$contenu,$matches); //find the "==titles==" and put them in a array "matches"
$decoupes=preg_replace("#==\s*[a-zA-Z0-9_-]*\s*==#", "||", $contenu); //replace the ==titles== by ||
$decoupes=explode("||", $decoupes); //now i can explode in a array to cut m content in several parts
array_shift($decoupes); // firts entry is always empty in this array, i delete it
$tab=array_combine($matches[1],$decoupes); //i create a array looking like "iLoveFlowers=>text aboutflowers, etc..."
return $tab["$partie"];
?>