Estoy haciendo un pequeño "framework" o CMS personal, para poder desarrollar sitios dinámicos simples con gran velocidad y versatilidad (y de paso aprender más).
Les cuento brevemente cómo funciona: Un php interpreta una plantilla que está armada mediante etiquetas personalizadas incrustadas entre el html (similar al sistema que usa Tumblr).
Por ejemplo, si quiero poner una botonera, en la plantilla pongo esto:
Código:
Y el php lo interpreta y lo reemplaza (mediante expresiones regulares) por el código definitivo.{Botonera:} <a href="{Botonera_url}">{Botonera_tag}</a> {:Botonera}
Hasta ahí he podido lograrlo, usando la siguiente función:
Código PHP:
function reemplaza_botonera($array_links){
global $plantilla;
$patron = "~\{Botonera:\}(.*?)\{:Botonera\}~s";
preg_match_all($patron, $plantilla, $matches, PREG_SET_ORDER);
$reemplazo = '';
if($array_links){
foreach($array_links as $aaa){
$subpatron = array("{Botonera_url}", "{Botonera_tag}");
$subreemplazo = array($aaa['url'], $aaa['tag']);
$reemplazo .= str_replace($subpatron, $subreemplazo, $matches[0][1]);
}
}
$plantilla = preg_replace($patron, $reemplazo, $plantilla);
}
Código:
<div id="botonera1"> {Botonera:} <a href="{Botonera_url}">{Botonera_tag}</a> {:Botonera} </div> <ul id="botonera2"> {Botonera:} <li><a href="{Botonera_url}">{Botonera_tag}</a></li> {:Botonera} </ul>
Con el código que tengo, en #botonera2 me coloca el mismo contenido que en #botonera1 (pone sólo los <a>, en vez de <li><a>), y necesito que para cada una respete su estructura...
Supongo que tendría que agregar un loop más, en el que para cada coincidencia utilice su propio patrón y reemplazo...
Siempre recurro al manual de PHP, pero esta vez me cuesta un poco encontrar cuál sería la lógica para resolver el problema... Qué se les ocurre???
(Si no me expliqué bien, me avisan, y hago un esfuerzo más )
Les agradezco un montón si me pueden ayudar, me encuentro un poco estancado! Gracias!!!