leroest
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: 1) В папке articles, создай файл articlspokat.tpl и в него вставь указанный код {if $last_statii_array} <table width="100%" border="0" cellpadding="3" cellspacing="1" class="box_inner"> {foreach from=$last_statii_array item=laststatii} <tr> <td> <div class="inforel"><strong>{$laststatii.title}</strong></div> {if $laststatii.ishot != '0'} <div class="intro" align="justify">{$laststatii.text|truncate:600}</div> {else} <div class="intro" align="justify">{$laststatii.text|truncate:200}</div> <div align="right"><a href="{$laststatii.links}">Подробнее</a></div> </div> <div class="news_spacer"></div> {/if} </td> </tr> {/foreach} </table> <br /> {/if} | Давай... Вот мой шаблон, переделанный уже под мои нужды: {if $last_statii_array} {foreach from=$last_statii_array item=laststatii} <br> <span class="red">{$laststatii.time_start|date_format:"%d.%m.%Y"}</span> <br> {$laststatii.title} <br><br> {/foreach} {/if} Цитата: 2) В файле inc\functions.php после <?php !!! обрати внимание, что я изменил название функции!!! вставляй вот это function artpokat($param) { global $db,$THEME,$area; $last_threads = array(); $tmpl = new Koobi("templates/"); $fids = str_replace(",", ' OR articlecat = ', $param['KatId']); $sql = $db->Query(" SELECT id, title, content, inline_screens, type FROM " . PREFIX . "_articles WHERE articlecat =".$fids." AND area = ".$area." AND active = 1 order by id desc LIMIT " . $param['limit']);//catname = `".$fids."` $i = 0; while ($row = $sql->fetchrow()) { $ishot = '0'; if(($row->inline_screens)!=("a:0:{}")) { $ishot = '1'; }else{ $ishot = '0'; } $text = $row->content; $text = inlinescreens($row->inline_screens,$text); $last_threads[$i]['ishot'] = $ishot; $last_threads[$i]['text'] = $text; $last_threads[$i]['title'] = $row->title; $last_threads[$i]['links'] = "index.php?type=".$row->type."&area=".$area."&p=articles&id=".$row->id.""; $i++; } $tmpl->assign('zagolovok', $param['zag']); $tmpl->assign('theme', $THEME); $tmpl->assign('last_statii_array', $last_threads); $articliespokat = $tmpl->fetch("$THEME/articles/articlspokat.tpl"); return $articliespokat; } | Да без разницы, как ты функцию назовёшь. Вставил. Предыдущие функции, что ты давал, удалил. Цитата: 3) в обоих файлах class\Koobi.Class и class\tpl\Koobi.Class в любом месте среди строчек где перечисляется регистрация функций пропиши $this->register_function('artpokat', 'artpokat'); | Поменял старые две на эту одну. Цитата: 4) Все, теперь в файле startpage.tpl впиши вот это { artpokat KatId='3,4' limit='2' zag='заголовок' } Обрати внимание, какой категории статей соотвотствует значение поля articlecat в базе в таблице articles. У меня лично есть 3 категории "Категория1" "Категория2" "Категория3" и по данному запросу функция выводит статьи из категорий 2 и 3......Видишь в чем разница.....Категория создана третьей по счету, а значение у нее 4!!!!! | Зачем так сложно, ID категории сразу видно, если в админке зайдёшь в категории статей и посмотришь ссылку на категорию. В моём случае - это index.php?p=articles&categ=2 Категория 2. Значится так. Мне в startpage.tpl это совсем не нужно, там у меня выводятся, как и положено последние 10 новостей сайта. А названия статей этой категории мне нужно выводить на всех страницах сайта, включая и главную, в небольшом блоке в левой части сайта. Для этого блока у меня создан специальный темплейт other/reviews.tpl. Этот темплейт подгружается в main_template инклюдом. Вот в этот темплейт и я вставил {artpokat KatId='2' limit='5'}. Тмплейт приобрёл такой вид: <table width="279" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="32" class="box_left3"> <img src="{$img_folder}/bg3.gif" alt="" width="32" height="4"></td> <td class="boxText3"><br> <span class="boxTitle1">{$lang.reviews}</span> <br> <br> {artpokat KatId='2' limit='5'} <div align="right"><img src="{$img_folder}/punkt1.gif" alt="" width="10" height="6"><span class="more"><a href="index.php?area=2&p=articles&categ=2" class="A1">{$lang.reviews_all}</a> </span></div></td> <td width="28" class="box_right4"><img src="{$img_folder}/bg5.gif" alt="" width="42" height="9"></td> </tr> </table> Проверил, в этом варианте вроде заработало, спасибо. Тока пришлось несколько изменить функцию, чтобы дата публикации выводилась тоже. По дефолту там не было вывода даты. Переделанная функция будет выглядеть так: function artpokat($param) { global $db,$THEME,$area; $last_threads = array(); $tmpl = new Koobi("templates/"); $fids = str_replace(",", ' OR articlecat = ', $param['KatId']); $sql = $db->Query(" SELECT id, title, content, inline_screens, type, time_start FROM " . PREFIX . "_articles WHERE articlecat =".$fids." AND area = ".$area." AND active = 1 order by id desc LIMIT " . $param['limit']);//catname = `".$fids."` $i = 0; while ($row = $sql->fetchrow()) { $ishot = '0'; if(($row->inline_screens)!=("a:0:{}")) { $ishot = '1'; }else{ $ishot = '0'; } $text = $row->content; $text = inlinescreens($row->inline_screens,$text); $last_threads[$i]['ishot'] = $ishot; $last_threads[$i]['text'] = $text; $last_threads[$i]['title'] = $row->title; $last_threads[$i]['links'] = "index.php?type=".$row->type."&area=".$area."&p=articles&id=".$row->id.""; $last_threads[$i]['time_start'] = $row->time_start; $i++; } $tmpl->assign('zagolovok', $param['zag']); $tmpl->assign('theme', $THEME); $tmpl->assign('last_statii_array', $last_threads); $articliespokat = $tmpl->fetch("$THEME/articles/articlspokat.tpl"); return $articliespokat; } А выводить дату будем так: {$laststatii.time_start|date_format:"%d.%m.%Y"} Теперь, благодаря помощи arcanum и MegaLitr один из основных вопросов по выводу новостей и статей в Куби благополучно решён. Пора, кстати, начинать писать сборник примеров SAPI Кубика. А то ведь никакого мануала по SAPI нету. Всё методом тыка. | Всего записей: 38 | Зарегистр. 21-12-2005 | Отправлено: 16:36 28-05-2006 | Исправлено: leroest, 17:12 28-05-2006 |
|