php shortcode
Например, для замены в $text
{lists_4}
на название списка и список элементов:
preg_match_all("/{lists\s*(.*?)}/si",$text,$matches,PREG_SET_ORDER); if(count($matches)>0){ foreach($matches as $m){ $me=explode('_',trim(trim($m[0],'}'),"{")); if($me[0]=='lists'&&$me[1]>0){ $replace=''; $list=get_by_id($me[1],'lists'); if($list['id']){ $items=get_from_base('*','list_items',"`parent`='".$list['id']."' and `shown`=1",'pos'); if(count($items)>0){ $replace.='<div class="list">'; $replace.='<div class="name">'.$list['name'].'</div>'; $replace.='<ul>'; foreach($items as $count=>$item){ $replace.='<li class="item">'.$item['name'].'</li>'; } $replace.='</ul>'; $replace.='</div>'; } } $text=str_replace($m,$replace,$text); } } }