Asvild
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору 6epcepk Цитата: Только у меня помещено ./admin/images в ./admin/templates/{tpl_name}/images | собственно я так и предполагаю делать, своем варианте я так написал потому что предполагаю сделать картинки админки статичными а оформление уже индивидуалиным т.е. чтоб если уж потребуется пользователю изменить то изменялбы их в централизованном каталоге а не в каталоге шаблона админки таким образом мы избавимся от путаницы с шаблонными картинками Ternik PHP + MySQL в последствии планирую привязать Аякс сразу этого не реализую так как в нем я пока не чувствую себя комфортно ) Добавлено: 6epcepk а возможноли гделибо ) ознакомится с вашей КМС? я пока нахожусь только на стадии проектирования и детального разбора ПХП а сама идея родилась порядка года назат честно говоря я не особо силен пока в нем но надеюсь все этапы изучения преодалею сейчас перебрал три шаблонизатора смарти, Хтемплате, и предлогаемый вариант от ДКЛаб Дмитрия Колисникова, но в силу некоторых пречин пришлось от них отказаться, так как предлагаемые реализации шаблонов мне не очень понравились хотя ХТемплате почти то что надо. свой выбор остановил на шаблонизаторе от ДЛЕ точнее мне он больше по духу) только вот хотелосьбы услышать ваше мнение по поводу как его можно улучшить(дополнить), изменить, что по вашему в нем не хватает, в чем слаб, и чем плох)))) вот такой вот вопросец Собственно сам код= Код: <?php /* ===================================================== Copyright (c) 2004,2007 SoftNews Media Group ===================================================== Данный код защищен авторскими правами ===================================================== Файл: templates.class.php ----------------------------------------------------- Назначение: Парсинг шаблонов ===================================================== */ class dle_template { var $dir = '.'; var $template = null; var $copy_template = null; var $data = array(); var $block_data = array(); var $result = array('info' => '', 'vote' => '', 'speedbar' => '', 'content' => '' ); var $template_parse_time = 0; function set($name , $var) { if (is_array($var) && count($var)) { foreach ($var as $key => $key_var) { $this->set($key , $key_var); } } else $this->data[$name] = $var; } function set_block($name , $var) { if (is_array($var) && count($var)) { foreach ($var as $key => $key_var) { $this->set_block($key , $key_var); } } else $this->block_data[$name] = $var; } function load_template($tpl_name) { $time_before = $this->get_real_time(); if ($tpl_name == '' || !file_exists($this->dir . DIRECTORY_SEPARATOR . $tpl_name)) { die ("Невозможно загрузить шаблон: ". $tpl_name); return false;} $this->template = file_get_contents($this->dir . DIRECTORY_SEPARATOR . $tpl_name); if ( stristr( $this->template, "{include file=" ) ) { $this->template = preg_replace( "#\\{include file=['\"](.+?)['\"]\\}#ies","\$this->sub_load_template('\\1')", $this->template); } $this->copy_template = $this->template; $this->template_parse_time += $this->get_real_time() - $time_before; return true; } function sub_load_template($tpl_name) { $tpl_name = totranslit($tpl_name); if ($tpl_name == '' || !file_exists($this->dir . DIRECTORY_SEPARATOR . $tpl_name)) { die ("Невозможно загрузить шаблон: ". $tpl_name); return false;} $template = file_get_contents($this->dir . DIRECTORY_SEPARATOR . $tpl_name); return $template; } function _clear() { $this->data = array(); $this->block_data = array(); $this->copy_template = $this->template; } function clear() { $this->data = array(); $this->block_data = array(); $this->copy_template = null; $this->template = null; } function global_clear() { $this->data = array(); $this->block_data = array(); $this->result = array(); $this->copy_template = null; $this->template = null; } function compile($tpl) { $time_before = $this->get_real_time(); foreach ($this->data as $key_find => $key_replace) { $find[] = $key_find; $replace[] = $key_replace; } $result = str_replace($find, $replace, $this->copy_template); if (count($this->block_data)) { foreach ($this->block_data as $key_find => $key_replace) { $find_preg[] = $key_find; $replace_preg[] = $key_replace; } $result = preg_replace($find_preg, $replace_preg, $result); } if (isset($this->result[$tpl])) $this->result[$tpl] .= $result; else $this->result[$tpl] = $result; $this->_clear(); $this->template_parse_time += $this->get_real_time() - $time_before; } function get_real_time() { list($seconds, $microSeconds) = explode(' ', microtime()); return ((float)$seconds + (float)$microSeconds); } } ?> | также еще остается открытый вопрос о классе MySQL | Всего записей: 5 | Зарегистр. 26-10-2006 | Отправлено: 05:17 28-09-2007 | Исправлено: Asvild, 05:20 28-09-2007 |
|