ООО ЭкоЮнит
FAQSearchMemberlistUsergroupsFilesLog inRegisterГлавная
printer-friendly view
 
AuthorMessage
Raisin Gender:Male


Почетный участник


Joined: 29 Feb 2012
Show/Hide

Здравствуйте.
Пишу свой парсер/шаблонизатор на данный момент работаю над конструкцией для шаблона: {include ...}, вот код который обрабатывает include в шаблонах:
PHP:
Code:
                # Обработка INCLUDE
                $cache_tpl = preg_replace_callback('/\{include (.*?)}/',
            function($include_tpl) use($dir_tpl, $ext_tpl)
            {                  
                        return file_get_contents($dir_tpl . $include_tpl[1] . $ext_tpl);
                        },  
                $cache_tpl);
            # END Обработка INCLUDE

Сценарий находит в шаблоне {include ...}, заменяет его на содержимое подключаемого файла, и потом сохраняет в кеше сайта... Сценарий отлично работает, но если к уже подключенному шаблону будет подключен ещё один шаблон, то вместо содержимого третьего шаблона, на экране будет {include ...}.

Я понимаю, что надо дописывать рекурсию, но ума не приложу, как это сделать с кодом, что выше или может есть альтернатива?
Пожалуйста, помогите допилить код. Спасибо.


ЗЫ. готовые шаблонизаторы использовать не хочу, по этому мучаю свою (и возможно вашу) голову...
Back to topOffline View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Show/Hide

Ржачно, но я, как и в прошлые годы, в эти дни в Сочах.

Посмотри, как работает template.php из phpbb3

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Visit poster's website Skype Name
Raisin Gender:Male


Почетный участник


Joined: 29 Feb 2012
Show/Hide

Сделал так:
Code:
        # Обработка INCLUDE
        if (preg_match('/\{include (.*?)\}/', $cache_tpl))
        {
            function incl($cache_tpl, $dir_tpl, $ext_tpl)
            {
                preg_match_all('/\{include (.*?)\}/', $cache_tpl, $include_array);
                foreach ($include_array[1] as $key => $incl)
                {
                    if (file_exists($dir_tpl . $incl . $ext_tpl))
                    {
                        $incl_tpl     = '/\{include ' . $incl . '}/';
                        $incl_replace = file_get_contents($dir_tpl . $incl . $ext_tpl);
                        $cache_tpl    = preg_replace($incl_tpl, $incl_replace, $cache_tpl);
                    }
                    else
                    {
                        exit('No Template: <strong>' . $incl . $ext_tpl . '</strong>');
                    }
                }
                if (preg_match('/\{include (.*?)\}/', $cache_tpl))
                {
                    $cache_tpl = incl($cache_tpl, $dir_tpl, $ext_tpl);
                }
                return $cache_tpl;
            }
            $cache_tpl = incl($cache_tpl, $dir_tpl, $ext_tpl);
        }
        # END Обработка INCLUDE 
Back to topOffline This post has 1 review(s) View user's profile Visit poster's website
Ровер Gender:Male

Участник


Joined: 30 May 2015
Show/Hide

Если кому надо, рекомендую Pcltemplate - простой и лёгкий парсер шаблонов phpconcept.net.....cltemplate
Back to topOffline View user's profile
Вазонов11 Gender:Male

Гостья


Joined: 18 Oct 2015
Show/Hide

да, этот парсер удобный.
Back to topOffline View user's profile
Display posts from previous:   

Summary Rating For >> Парсер всех подключенных шаблонов (include)
Average Rating: 0.00 :: Min Rating: 0 :: Max Rating: 0 :: Number of Ratings: 0
Choose Rating: 1   2   3   4   5  

Similar Topics
Topic Author Forum Replies Last Post
No new posts Инклуд для HTML
подключение шаблонов
Здравствуйте. В phpBB3, шаблон .html подключает другой шаблон, вот таким инклудом: Code !-- INCLUDE xxx_xxxx.html -- Code Как можно заставить в самописном движке, который использует шаблоны .html так же подключать другие
Raisin Прочие технические вопросы (php, javascript, perl и другое) 3 Tue 17 Dec, 2013 06:28 View latest post
Sergey






All times are UTC + 3 hours
Users browsing this topic:
Registered Users: None

Jump to:   
printer-friendly view
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
/a
Username:

Password:

Log me on automatically each visit
  Яндекс.Метрика
CrackerTracker © 2004 - 2018 CBACK.de