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

#51 2012.02.21 23:25

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

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

Ну это просто набросок. Там еще условия итд.

Неактивен

#52 2012.02.22 00:15

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

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

Код:

1
span style="color: #0000BB"><?php//<!-- TPL -->/*<?xml version="1.0" encoding="UTF-8"?>*/<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru"> <head> <meta http-equiv="Expires" content="Thu, 21 Jul 1977 07:30:00 GMT" /> <meta http-equiv="Last-Modified" content="{$smarty.now|date_format:'r'} GMT" /> <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Content-Type" content="text/html; charset={$lang_common.lang_encoding}" /> <title>{$page_title|escape}</title> <link rel="stylesheet" type="text/css" href="{$smarty.const.THEME_DIR}style.css" /> <link rel="alternate" type="application/rss+xml" title="{$pun_config.o_board_title}" href="{$smarty.const.PUN_ROOT}rss.xml" /> </head> <body> {if $basename == 'index.php'} <div class="hd"> <img src="{$smarty.const.THEME_DIR}/imgs/logo.gif" title="{$lang_common.Forum} {$smarty.server.HTTP_HOST}" alt="{$lang_common.Forum} {$smarty.server.HTTP_HOST}" /> </div> {if $pun_config.o_board_desc} <div class="hd_bott"> {$pun_config.o_board_desc} </div> {/if} {if $pun_user.is_guest} {assign var='Not_logged_in' value='Not logged in'} <div class="con"> {$lang_common.$Not_logged_in} </div> {/if} {if $pun_user.g_id < $smarty.const.PUN_GUEST} {* $result_header = $db->query('SELECT COUNT(1) FROM `' . $db->prefix . 'reports` WHERE `zapped` IS NULL') or error('Unable to fetch reports info', __FILE__, __LINE__, $db->error()); if ($db->result($result_header)) { $tpl_temp .= '<div class="con"><a href="' . PUN_ROOT . 'admin_reports.php">' . $lang_admin['New reports'] . '</a></div>'; } *} {if $pun_config.o_maintenance == 1} <div class="con"> <a href="{$smarty.const.PUN_ROOT}admin_options.php#maintenance">{$lang_admin.maintenance}</a> </div> {/if} {/if} {/if} <div class="in"> <div> <a href="{$smarty.const.PUN_ROOT}rss.xml">RSS</a> </div> </div> {if $basename == 'index.php' && $pun_config.o_announcement == 1} <div class="incqbox"> {$lang_common.Announcement} </div> <div class="msg"> {$pun_config.o_announcement_message} </div> {/if} {if $basename == 'profile.php' || $basename == 'search.php' || $basename == 'userlist.php' || $basename == 'message_list.php' || $basename == 'message_send.php' || $basename == 'message_delete.php' || $basename == 'misc.php' || $basename == 'filemap.php' || $basename == 'karma.php'} <div class="inbox"> <a href="index.php">{$lang_common.Index}</a> </div> {/if}

Добавлено спустя   8 минут  48 секунд:
Вроде есть в самой смарти: $smarty.server.PHP_SELF

Отредактировано tipsun (2012.02.22 00:17)

Неактивен

#53 2012.02.22 00:36

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

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

Можно задать $basename с логики, в принципе. baseName($_SERVER['PHP_SELF']);
Еще там если определена переменная PUN_HELP то грузиться шаблон include/template/help.tpl - я пока пропустил.
И еще там были интимные места, я пропустил.

Код:

1
span style="color: #0000BB"><?php// Load the templateif (defined('PUN_HELP')) { $tpl_main = file_get_contents(PUN_ROOT . 'include/template/help.tpl');} else { $tpl_main = file_get_contents(PUN_ROOT . 'include/template/wap_main.tpl');}// START SUBST - <pun_include "*">while (preg_match('#<pun_include "([^/\\\\]*?)\.(php[45]?|inc|html?|txt)">#', $tpl_main, $cur_include)) { if (!file_exists(PUN_ROOT . 'include/user/' . $cur_include[1] . '.' . $cur_include[2])) { error('Unable to process user include ' . htmlspecialchars($cur_include[0]) . ' from template main.tpl. There is no such file in folder /include/user/', __FILE__, __LINE__); } ob_start(); include_once PUN_ROOT . 'include/user/' . $cur_include[1] . '.' . $cur_include[2]; $tpl_temp = ob_get_contents(); $tpl_main = str_replace($cur_include[0], $tpl_temp, $tpl_main); ob_end_clean();}// END SUBST - <body>if (isset($hint_box)) { $tpl_temp = $hint_box;} else { $tpl_temp = null;}if ($pun_user['g_id'] < PUN_GUEST) { $result_header = $db->query('SELECT COUNT(1) FROM `' . $db->prefix . 'reports` WHERE `zapped` IS NULL') or error('Unable to fetch reports info', __FILE__, __LINE__, $db->error()); if ($db->result($result_header)) { $tpl_temp .= '<div class="con"><a href="' . PUN_ROOT . 'admin_reports.php">' . $lang_admin['New reports'] . '</a></div>'; } //это условие не пропустил + в начале if ($pun_user['g_id'] < PUN_GUEST) { if ($pun_config['o_maintenance'] == 1) { $tpl_temp .= '<div class="con"><a href="' . PUN_ROOT . 'admin_options.php#maintenance">' . $lang_admin['maintenance'] . '</a></div>'; }}// PMS MOD BEGINrequire PUN_ROOT . 'include/pms/wap_header_new_messages.php';// PMS MOD END

Отредактировано tipsun (2012.02.22 00:44)

Неактивен

#54 2012.02.22 00:56

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

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

Я спать валю. smile

Код:

1
span style="color: #0000BB"><?php{assign var='Moderate_forum' value='Moderate forum'}{assign var='Delete_posts' value='Delete posts'}{assign var='Move_topic' value='Move topic'}{assign var='Open_topic' value='Open topic'}{assign var='Close_topic' value='Close topic'}{assign var='Unstick_topic' value='Unstick topic'}{assign var='Stick_topic' value='Stick topic'}{assign var='Link_separator_m' value='Link separator_m'}{*if ($basename == 'profile.php' || $basename == 'search.php' || $basename == 'userlist.php' || $basename == 'uploads.php' || $basename == 'message_list.php' || $basename == 'message_send.php' || $basename == 'help.php' || $basename == 'misc.php' || $basename == 'filemap.php' || $basename == 'karma.php') { echo '<div class="navlinks">'.generate_wap_navlinks().'</div>';}} else if ($footer_style == 'viewforum' || $footer_style == 'viewtopic') { // 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'; } }*}{if $is_admmod} {if $footer_style == 'viewforum'} <div class="con"> <a class="but" href="moderate.php?fid={$forum_id}&amp;p={$p}">{$lang_common.$Moderate_forum}</a> </div> {elseif $footer_style == 'viewtopic'} <div class="con"> <span class="sub"> <a href="moderate.php?fid={$forum_id}&amp;tid={$id}&amp;p={$p}">{$lang_common.$Delete_posts}</a>{$lang_topic.$Link_separator_m} <a href="moderate.php?fid={$forum_id}&amp;move_topics={$id}">{$lang_common.$Move_topic}</a> {if $cur_topic.closed == 1} {$lang_topic.$Link_separator_m}<a href="moderate.php?fid={$forum_id}&amp;open={$id}">{$lang_common.$Open_topic}</a> {else} {$lang_topic.$Link_separator_m}<a href="moderate.php?fid={$forum_id}&amp;close={$id}">{$lang_common.$Close_topic}</a> {/if} {if $cur_topic.sticky == 1} {$lang_topic.$Link_separator_m}<a href="moderate.php?fid={$forum_id}&amp;unstick={$id}">{$lang_common.$Unstick_topic}</a> {else} {$lang_topic.$Link_separator_m}<a href="moderate.php?fid={$forum_id}&amp;stick={$id}">{$lang_common.$Stick_topic}</a> {/if} </span> </div> {/if}{/if}<div class="foot"> <a href="/">{$smarty.server.HTTP_HOST}</a><br/> <a class="red" href="{$smarty.const.PUN_ROOT}">WEB</a></div><div class="copy"> <a href="http://wapinet.ru/forum/wap/">PunBB Mod Gemorroj</a><br/> <span class="red">{sprintf('%.3f', microtime(true) - $pun_start)} s</span></div></body></html>

Неактивен

#55 2012.02.22 15:12

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

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

Еще про подпись юзера забыл.

Неактивен

#56 2012.02.22 16:19

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

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

Исключительно слово "лес" полностью описывает ситуацию, сложившуюся в данном коде.
Куда бы ты не ходил, возвращаешься на тоже место.
generate_wap_navlinks()

Код:

1
span style="color: #0000BB"><?php // Index and Userlist should always be displayed $links['userlist.php'] = $lang_common['User list']; if ($pun_config['o_rules'] == 1) { $links['misc.php?action=rules'] = $lang_common['Rules']; } if ($pun_user['is_guest']) { if ($pun_user['g_search'] == 1) { $links['search.php'] = $lang_common['Search']; } if ($pun_config['uploads_conf'][$pun_user['group_id']]) { $links['uploads.php'] = $lang_common['Uploader']; } $info = $lang_common['Not logged in']; } else { if ($pun_user['g_id'] > PUN_MOD) { if ($pun_user['g_search'] == 1) { $links['search.php'] = $lang_common['Search']; } if ($pun_config['uploads_conf'][$pun_user['group_id']]) { $links['uploads.php'] = $lang_common['Uploader']; } $links['filemap.php'] = $lang_common['Attachments']; } else { $links['search.php'] = $lang_common['Search']; $links['uploads.php'] = $lang_common['Uploader']; $links['filemap.php'] = $lang_common['Attachments']; } // PMS MOD END }

Код:

1
span style="color: #0000BB"><?php//Я не разобрался, сделал так.//<!-- TPL --> <div class="navlinks"> {* // Index and Userlist should always be displayed *} <a href="userlist.php">{$lang_common.$User_list}</a> {if $pun_config.o_rules == 1} {$lang_topic.$Link_separator_m}<a href="misc.php?action=rules">{$lang_common.Rules}</a> {/if} {if $pun_user.g_search == 1 and $pun_user.g_id > $smarty.const.PUN_MOD} {$lang_topic.$Link_separator_m}<a href="search.php">{$lang_common.Search}</a> {/if} {if ! $pun_user.is_guest} {$lang_topic.$Link_separator_m}<a href="uploads.php">{$lang_common.Uploader}</a> {$lang_topic.$Link_separator_m}<a href="filemap.php">{$lang_common.Attachments}</a> {/if} </div>

Отредактировано tipsun (2012.02.22 16:30)

Неактивен

#57 2012.02.22 16:31

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

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

Вид: "Пользователи |Поиск |Загрузки |Вложения "
Если так не нравится, можно переделать как было (в форме)

Отредактировано tipsun (2012.02.22 16:32)

Неактивен

#58 2012.02.22 21:24

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

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

Мдэ sad $att_info
И таких моментов не мало.

Код:

1
span style="color: #0000BB"><?php if ($can_download) { echo $check . '<a href="' . $pun_config['o_base_url'] . '/download.php?aid=' . $aid . '">' . $title . '</a> ' . $att_info; } else { echo '<span class="red">' . $title . '</span> ' . $att_info; }

Неактивен

#59 2012.02.22 22:50

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

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

Чет я не понял, как система вложений работает.
Вроде все прозрачно. Но не пашет, когда //$attachments = $save_attachments.

Код:

1
span style="color: #0000BB"><?php//TEMPLATE{if $attachments}<div class="attach_list"> <strong>{$lang_fu.Attachments}</strong><br/> {* foreach from=$attachments item=attachment *} {if $can_download} {if $basename == 'edit.php'} <input type="checkbox" name="delete_image[]" value="{$attachment.id}" /> {$lang_fu.$Mark_to_Delete} {/if} <a href="{$pun_config.o_base_url}/download.php?aid={$attachment.id}">{$attachment.filename|escape}</a> {else} <span class="red">{$attachment.filename|escape}</span> {/if} {if $attachment.size >= 1048576} {round($attachment.size / 1048576, 0)} mb {else} {round($attachment.size / 1024, 0)} kb {/if} {if 'image' == strTok($attachment.mime, '/')} , {strtok('/')} {$attachment.image_dim} {/if} [<strong>{$lang_fu.Downloads}: {$attachment.downloads}</strong>]<br/> {* /foreach *}</div>{/if}

Отредактировано tipsun (2012.02.22 22:53)

Неактивен

#60 2012.02.22 23:07

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

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

wap/viewtopic.php
include 'include/attach/fetch.php';
вроде как инфа должна находиться в $attachments
еще там нашел в файле
include 'include/file_upload.php'; - вроде
есть функция в самом конце, чет типа attach_filter_of_post
...
Или это все вообще не с аттачмента берется, а с самого cur_post тогда, что-ли может.

Неактивен

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

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

forum.wapinet.ru

PunBB Mod v0.6.2
0.020 s