Вы не зашли.
Главная » PHP » Smarty на примере модификации форума PunBB
#111. Gemorroj Off (107)
Administrator
2012.03.03 11:11
аааа, епт. я невнимательно смотрел. ты пытался вызвать родительский конструктор!)
да, так будет корректно.
#112. tipsun Off (19)
Moderator
2012.03.03 11:11
Я сам не знаю, чего я пытался, но работает big_smile
Добавлено спустя   9 минут  14 секунд:
Вообщем с путями:
1) Надо чтоб смарти шаблоны увидел.
2) Надо чтоб в шаблоне при указании положения CSS, тоже было все норм. Ну если форум не в корне сайта.

Код:
span style="color: #0000BB"><?phpclass PunTemplate extends Smarty{ function __construct($punDesignName) { parent::__construct(); //$root = str_replace($_SERVER['DOCUMENT_ROOT'], null, str_replace('\\', '/', dirName(__FILE__))) . '/template/wap/' . $punDesignName . '/'; $punDesignDir = dirName(__FILE__) . '/template/wap/' . $punDesignName; $this->template_dir = $punDesignDir . '/tpls/'; $this->compile_dir = $punDesignDir . '/compiled/'; $this->config_dir = $punDesignDir . '/configs/'; $this->cache_dir = $punDesignDir . '/cache/'; //$this->assign('punDesignDir', $root); }}
Отредактировано tipsun (2012.03.03 12:12)
#113. tipsun Off (19)
Moderator
2012.03.03 12:12
Можно в самом шаблоне header.tpl указывать: {$smarty.const.PUN_ROOT}{$cssDir}style.css
- где PUN_ROOT задается изначально, в логике.
Отредактировано tipsun (2012.03.03 12:12)
#114. Gemorroj Off (107)
Administrator
2012.03.03 12:12
не надо. это работа прослойки.
#115. tipsun Off (19)
Moderator
2012.03.03 12:12
#112. закомментированное работает, в принципе.
Но у форума есть web и wap версии.
Отредактировано tipsun (2012.03.03 12:12)
#116. tipsun Off (19)
Moderator
2012.03.04 00:12
Сейчас вот подумал, что условия логики в переменную наверно лучше загонять и только те условия, которые контролируют вывод в шаблоне никуда не денутся.
Начал с header.tpl (еще есть footer.tpl и viewtopic.tpl)
Добавлено спустя   3 минуты  22 секунды:
Вот пример:
Загнал сразу в smarty, т.к. скорее всего больше нигде не используется результат выполнения.
Код:
span style="color: #0000BB"><?php// include/pms/wap_header_new_messages.phpif (! $pun_user['is_guest'] && $pun_user['g_pm'] == 1 && $pun_config['o_pms_enabled'] && $pun_user['messages_enable'] == 1) { require_once PUN_ROOT . 'lang/' . $pun_user['language'] . '/pms.php'; // Check for new messages $result_messages = $db->query('SELECT COUNT(1) FROM '.$db->prefix.'messages WHERE showed=0 AND owner='.$pun_user['id']) or error('Unable to check for new messages', __FILE__, __LINE__, $db->error()); $new_msg = $db->fetch_row($result_messages); if ($new_msg[0] > 0) { $smarty->append('conditions', array('count_new_msgs' => $new_msg[0])); } // Check if the inbox is full $result = $db->query('SELECT COUNT(1) FROM '.$db->prefix.'messages WHERE owner='.$pun_user['id']) or error('Unable to test if the message-box is full', __FILE__, __LINE__, $db->error()); $count = $db->fetch_row($result); if ($count[0] >= $pun_user['g_pm_limit']) { $smarty->append('conditions', array('full_inbox' => true)); }}// tpl {if $conditions.count_new_msgs} <div class="info"> <a href="message_list.php"> {$lang_pms.$New_messages} ({$conditions.count_new_msgs}) </a> </div> {/if}
Отредактировано tipsun (2012.03.04 00:12)
#117. Gemorroj Off (107)
Administrator
2012.03.04 00:12
ну, тут логика отображения идет, а она должна быть в шаблоне. хотя, тут не принципиально. как проще, так и лучше.
#118. tipsun Off (19)
Moderator
2012.03.04 01:01
Не могу справиться.
Код:
span style="color: #0000BB"><?php // Display the "Jump to" drop list if ($pun_config['o_quickjump'] == 1) { // Load cached quickjump // included quickjump @include PUN_ROOT . 'cache/cache_wap_quickjump_' . $forum_id . '.php'; if (!defined('PUN_QJ_LOADED')) { include PUN_ROOT . 'include/cache.php'; generate_wap_quickjump_cache($forum_id); include PUN_ROOT.'cache/cache_wap_quickjump_' . $forum_id . '.php'; } }
.
.
Добавлено спустя   4 минуты  20 секунд:
Быстрый переход по форумам.
Отредактировано tipsun (2012.03.04 01:01)
#119. tipsun Off (19)
Moderator
2012.03.04 01:01
Оказывается $forum_id это в файле viewtopic.php есть $id
Добавлено спустя   5 минут  45 секунд:
.
.
Короче. Чет не получается аккуратно в шаблоне разместить. Вот логический костыль smile
wap/footer.php
Код:
span style="color: #0000BB"><?php if (! defined('PUN') or ! defined('PUN_ROOT')) exit();if ($pun_config['o_quickjump'] == 1) { // Load cached quickjump // included quickjump ob_start(); @include PUN_ROOT . 'cache/cache_wap_quickjump_' . $id . '.php'; ob_end_clean(); if (! defined('PUN_QJ_LOADED')) { include PUN_ROOT . 'include/cache.php'; generate_wap_quickjump_cache($id); //include PUN_ROOT.'cache/cache_wap_quickjump_' . $forum_id . '.php'; }}
.
.
footer.tpl
Код:
span style="color: #0000BB"><?php{if $pun_config.o_quickjump == 1 and $basename == 'viewforum.php' || $basename == 'viewtopic.php'} {fetch file="{$smarty.const.PUN_ROOT}cache/cache_wap_quickjump_{$forum_id}.php"}{/if}
Отредактировано tipsun (2012.03.04 01:01)
#120. tipsun Off (19)
Moderator
2012.03.04 01:01
Код:
span style="color: #0000BB"><?php {* Дополнительные ссылки // Are there any additional navlinks we should insert into the array before imploding it? if ($pun_config['o_additional_navlinks']) { if (preg_match_all('#([0-9]+)\s*=\s*(.*?)\n#s', $pun_config['o_additional_navlinks'], $extra_links)) { // Insert any additional links into the $links array (at the correct index) for ($i = 0, $all = sizeof($extra_links[1]); $i < $all; ++$i) { if (preg_match('!<a[^>]+href="?\'?([^ "\'>]+)"?\'?[^>]*>([^<>]*?)</a>!is', $extra_links[2][$i], $row)) { array_splice($out, $extra_links[1][$i], 0, array('<option value="' . $row[1] . '">' . $row[2] . '</option>')); } } } } *}
Страниц: 110 11 12 13 1432 Все
Главная
WEB
PunBB Mod v0.6.2
0.020 s