'Evil_Blog', 'URL' => get_admin_plugin_menu_link(dirname(__FILE__)).'/admin.php' ) ); return $menu; } function Evil_Blog_main () { global $template, $tokens, $conf, $page; //выковыриваем из базы настройки блога $page['evil_blog'] = @unserialize($conf['evil_blog']); if (!$page['evil_blog']['show_on_main_page']) { //вызываем добавление пункта меню add_event_handler('blockmanager_apply', 'add_blog_to_menu'); } if (((empty($tokens[0])) and ($page['evil_blog']['show_on_main_page'])) or ((!$page['evil_blog']['show_on_main_page']) and($tokens[0]=='blog'))) {//если дело происходит на главной странице, то... $post_per_page = $page['evil_blog']['posts_per_page']; //узнаем количество записей в блоге $row = pwg_db_fetch_assoc(pwg_query("SELECT COUNT(*) FROM `".Evil_Blog_Table."`"));; if ($row["COUNT(*)"] % $post_per_page != 0) { $pages = floor($row["COUNT(*)"] / $post_per_page)+1; } else {$pages = floor($row["COUNT(*)"] / $post_per_page);} if ((empty($tokens[1])) or ($tokens[1]<=1)) { $number = 0; $npage = 1; } else { $npage = $tokens[1]; if ($npage<=$pages) { $number=($npage-1)*$post_per_page; } else { $number=($pages-1)*$post_per_page; $npage=$pages; } } $query = "SELECT id, UNIX_TIMESTAMP(date) AS date, header, text FROM `".Evil_Blog_Table."` WHERE 1 ORDER BY `date` DESC LIMIT ".$number.",".$post_per_page; $result = pwg_query($query); $qwe = 0; while ($row = pwg_db_fetch_assoc($result)) {//более вменяемая обработка результата из базы, нужно для нормальной работы SMARTY $row1[$qwe] = $row; $row1[$qwe]['date'] = date($page['evil_blog']['date_format'], $row['date']); $qwe++; } if (!empty($row1)) { $template->assign('row', $row1); } $template->assign('npage', $npage); $template->assign('pages', $pages); for ($it=1; $it<=$pages; $it++) { $pagi[$it] = $it; } if (!empty($pagi)) { $template->assign('pagi', $pagi); } //определяем заголовок if ($page['evil_blog']['show_on_main_page']) { $place = 'PLUGIN_INDEX_CONTENT_BEFORE'; $template->assign('TITLE', '

'.$page['evil_blog']['blog_name'].'

'); $template->assign('TITLE_END', '
'); $template->assign('first_page', 'index.php'); }else{//хлебные крошки $place = 'PLUGIN_INDEX_CONTENT_END'; $page['title'] = ''.l10n('Home').''.$conf['level_separator'].$page['evil_blog']['blog_name']; $template->assign('TITLE_END', ' '); $template->assign('first_page', 'index.php?/blog'); } //отсылаем в СМАРТИ настройки внешнего вида $template->assign('show_number', $page['evil_blog']['show_number']); $template->assign('show_date', $page['evil_blog']['show_date']); $template->assign('show_on_main_page', $page['evil_blog']['show_on_main_page']); //определяем адрес шаблона плагина $template->set_template_dir(Evil_Blog_PATH); $template->set_filename('posts', 'posts.tpl'); //подключение стиля $template->func_combine_css(array( 'path' => Evil_Blog_PATH.'posts.css', ) ); //объявляем где конкретно на странице должен вывестись наш шаблон плагина. Вся суть в 'PLUGIN_INDEX_CONTENT_BEFORE'. $template->concat($place, $template->parse('posts', true)); } } //описываем действия во время собырия loc_begin_index, ну тобишь выводим плагин на странице add_event_handler('loc_begin_index', 'Evil_Blog_main'); //функция добавления пункта меню function add_blog_to_menu($aMenuRefArray) { global $conf, $page; //хрен его знает что это, какаято проверка на существование меню $menu = &$aMenuRefArray[0]; $block_mbMenu = $menu->get_block('mbMenu'); if (null == $block_mbMenu) { return; } if (!isset($block_mbMenu->data['evil_blog'])) { $blog_menu = array( 'TITLE' => $page['evil_blog']['blog_description'], 'NAME' => $page['evil_blog']['blog_name'], 'URL' => make_index_url(array('section' => 'blog')), ); $block_mbMenu->data['evil_blog'] = $blog_menu; } } function section_init_evil_blog() { global $page, $conf, $tokens; $eb_conf = @unserialize($conf['evil_blog']); if ((!$eb_conf['show_on_main_page']) and (($tokens[0]=='blog'))) { $page['section'] = 'blog'; } } //инициация страницы блога, без этого на ней появляется список с категориями. add_event_handler('loc_end_section_init', 'section_init_evil_blog'); ?>