• Главная
  • » PHP
  • » Smarty на примере модификации форума PunBB

#111 2012.03.03 11:48

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Smarty на примере модификации форума PunBB

аааа, епт. я невнимательно смотрел. ты пытался вызвать родительский конструктор!)
да, так будет корректно.

Неактивен

#112 2012.03.03 11:51

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Smarty на примере модификации форума PunBB

Я сам не знаю, чего я пытался, но работает big_smile
Добавлено спустя   9 минут  14 секунд:
Вообщем с путями:
1) Надо чтоб смарти шаблоны увидел.
2) Надо чтоб в шаблоне при указании положения CSS, тоже было все норм. Ну если форум не в корне сайта.

Код:

1
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:02)

Неактивен

#113 2012.03.03 12:05

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Smarty на примере модификации форума PunBB

Можно в самом шаблоне header.tpl указывать: {$smarty.const.PUN_ROOT}{$cssDir}style.css
- где PUN_ROOT задается изначально, в логике.

Отредактировано tipsun (2012.03.03 12:08)

Неактивен

#114 2012.03.03 12:24

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Smarty на примере модификации форума PunBB

не надо. это работа прослойки.

Неактивен

#115 2012.03.03 12:26

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Smarty на примере модификации форума PunBB

#112. закомментированное работает, в принципе.
Но у форума есть web и wap версии.

Отредактировано tipsun (2012.03.03 12:28)

Неактивен

#116 2012.03.04 00:07

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Smarty на примере модификации форума PunBB

Сейчас вот подумал, что условия логики в переменную наверно лучше загонять и только те условия, которые контролируют вывод в шаблоне никуда не денутся.
Начал с header.tpl (еще есть footer.tpl и viewtopic.tpl)
Добавлено спустя   3 минуты  22 секунды:
Вот пример:
Загнал сразу в smarty, т.к. скорее всего больше нигде не используется результат выполнения.

Код:

1
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 2012.03.04 00:36

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Smarty на примере модификации форума PunBB

ну, тут логика отображения идет, а она должна быть в шаблоне. хотя, тут не принципиально. как проще, так и лучше.

Неактивен

#118 2012.03.04 01:16

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Smarty на примере модификации форума PunBB

Не могу справиться.

Код:

1
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:20)

Неактивен

#119 2012.03.04 01:29

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Smarty на примере модификации форума PunBB

Оказывается $forum_id это в файле viewtopic.php есть $id
Добавлено спустя   5 минут  45 секунд:
.
.
Короче. Чет не получается аккуратно в шаблоне разместить. Вот логический костыль smile
wap/footer.php

Код:

1
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

Код:

1
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:42)

Неактивен

#120 2012.03.04 01:52

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Smarty на примере модификации форума PunBB

Код:

1
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>')); } } } } *}

Неактивен

  • Главная
  • » PHP
  • » Smarty на примере модификации форума PunBB

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.016 s