Вызов функции из переменной

Печать RSS
192

А
Автор
Оранжевые штаны
0
Должен наверно быть готовый варинт, но не могу найти.
<?php
private function modules($html){
		preg_match_all('<!--module:( .*)-->',$html,$found);
		$count=count($found);
		for($i=0; $i<$count; $i++){
			include_once('modules/'.$found[$i][2].'.php');
			$html=str_replace('<!--module:'.$found[$i][2].'-->',module_".$found[$i][2]."(),$html);
		}
	}
?>
Собственно нужно что то полегче (в плане нагрузки) и рабочее.
Изменил: Андрей (31.07.2011 / 17:52)
K

Транклюкаторщик
0
как я понял эта функция считывает из файла шаблона названия подключаемых файлов, так?
тогда я не понимаю, к чему эти костыли.
если это все в html файле, то можно в самом файле просто прописать так:
<html><body>
<?require('file.php');?>
</body></html>
А
Автор
Оранжевые штаны
0
2. eGo, в шаблоне не должно быть php кода и он там не обрабатывается.
Изменил: Андрей (31.07.2011 / 18:08)

Пацак
0
ну если парсишь шаблон, то единственное, чем тут можно облегчить, это вместо for(.. использовать foreach ($found as $module) чуть быстрее удет, но не столь существенно т.к.ты не по 100 модулей зараз будешь подключать..наверное.

2000 лет д.н.э.
0
eGo (31 Июля 2011 / 17:53)
как я понял эта функция считывает из файла шаблона названия подключаемых файлов, так?
тогда я не понимаю, к чему эти костыли.
если это все в html файле, то можно в самом файле просто прописать так:
<html><body>
<?require('file.php');?>
</body></html>
вот это как раз эталон костыля.
если пых в шаблоне значит шаблоны стремно организованы
K

Транклюкаторщик
0
5. ramzes, а как же smarty например, которому многие так поклоняются?
посмотри как там тот же самый цикл foreach организован.
фактически рыло на мыло заменяют.
Изменил: KOZZ (31.07.2011 / 18:30)

2000 лет д.н.э.
0
preg_replace('|<!--modulesad .*)-->|'s, 'include_once(\'modules/\1.php\"); \r\n module_\1()", $html);
типа того, но я не очень понял какую строку надо на выходе получить

2000 лет д.н.э.
0
6. eGo, я не юзаю смарти, мне без разницы, верстальщику не стоит пхп подпихивать
        <div id="WCControl"></div>

          <div  id="Wnews" class="widget" style="width:220px; z-index:22;position:fixed;">

                      <div  class="WC" style="cursor:move" onmousedown="move_me('news');">
      <a href="#" onclick="WC('news');">Новости</a>
                       </div>
<plugin>webNews->printNews:falsse</plugin>
<div id="news" style="display:no ne;">
      <div class="post">
<%webNews.news_title%>
      </div>
      <div id="newspost">
<marquee scrollamount="1" direction="up"  height="50">
<%webNews.news_message%>
</marquee>
      </div>
 </div>
 
                </div>


<foreach>list->blog</foreach>
      <div class="post"  onmouseover="subIn('<%blog.id%>')" onMouseOut="subOut('<%blog.id%>')">
        <div style="padding:3px 10px;">
<a href="/blogpost/<%blog.blog_url%>/" ><span class="pub"><%blog.blog_name%></span></a>
    <span class="right"><%blog.cat_link%></span>
        </div>
 <%blog.blog_message%>
          <div style="text-align:right"><%lang.tags%>: <%blog.blog_tags%></div>
<div class="subtitle">
<a href="/user/<%blog.login%>/"><b><%blog.name%></b></a>,
<span class="right"><%blog.blog_time%></span><br />
<a href="/comments/<%blog.id%>/"><%lang.comments%></a> <b><%blog.total_comm%></b>
<img src="/image/Classic/comments.png" alt="comment" />
<span style="display:no ne;" class="right" id="subInfo_<%blog.id%>">
<%lang.rating%>: <b><%blog.blog_rating%></b>      <%lang.read%>: <b><%blog.blog_read%></b> <img src="/image/Classic/ok.png" alt="info" />
</span>
</div>
</div>
</endforeach>
<%pageNavi%>
обхожусь же без пыха как то =)
А

Чатланин
0
#8 <foreach>list->blog</foreach> {...} </endforeach>
серавно требует для верстальщика знаний синтаксиса твоего шаблонизатора, можно же так
{mainblock}
...
     {second}
        {second.text}
     {/second}
...
{/mainblock}
<?php
foreach($value as $key => $text)
    {
      $template -> assign('mainblock.second.text', $text);
      $template -> parse('mainblock.second');
    }
$template -> parse('mainblock');
$template -> out('mainblock');
?>
при таком подходе верстальщику не придется знать технические аспекты твоего шаблонизатора (конструкции for foreach if while etc) а просто манипулирует блоками/
Изменил: Алексей (31.07.2011 / 20:08)

2000 лет д.н.э.
0
9. МегабиТ, можно как угодноsmile главная суть в том что не надо пых в шаблон пихать
я раньше <list></list> использовал smile
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск