'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', '
');
$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');
?>