Вы не зашли.
Страницы 1
Подскажите люди добрые чайнику в программинге
Ситуация: имеется сайт с шаблоном из четырёх блоков новостей на главной, несколькими категориями (например - 10), и в каждой категории несколько новостей.
Задача: сделать вывод последних новостей из одной категории в одном блоке (2-2, 3-3, 4-4).
При этом - страница новости должна выводиться в обычном виде.
Здесь: http://www.ngcms.ru/forum/viewtopic.php?id=48 как-то сложновато описано. Хотелось бы пример, и попроще
Не в сети
В lastnews.php
$template['vars']['plugin_lastnews_1'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (1), $overrideParams = array('number' => 10));
$template['vars']['plugin_lastnews_2'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (2), $overrideParams = array('number' => 10));
$template['vars']['plugin_lastnews_3'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (3), $overrideParams = array('number' => 10));
$template['vars']['plugin_lastnews_4'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (4), $overrideParams = array('number' => 10));
В main.tpl Это пример, вставишь в нужные блоки
<div>{plugin_lastnews_1}</div>
<div>{plugin_lastnews_2}</div>
<div>{plugin_lastnews_3}</div>
<div>{plugin_lastnews_4}</div>
Будет 4 блока в которых по 10 последних новостей из категорий 1,2,3,4. Ну и шаблон плагина lastnews поправь под себя
Изменено RocketBoy (2009-06-01 19:14:25)
Не в сети
Ещё вопрос:
а возможно ли сделать так, чтобы в блоках новостей выводились например 20 последних новостей (по 5 в каждом блоке) из 20ти категорий?
То есть, из каждой категории 1 последняя новость. Или 20 последних записей каждого автора.
Это окончательный вариант того, что мне нужно. и я пока ищу сиэмэску, на которой это можно реально сделать.
Буду благодарен за помощь в этом вопросе!
Не в сети
То есть, из каждой категории 1 последняя новость.
Если правильно понял, то
function plugin_lastnews(){
global $catz, $template;
$template['vars']['plugin_lastnews_everycat'] = '';
foreach ($catz as $cat)
{
$template['vars']['plugin_lastnews_everycat'] .= plugin_lastnewsGenerator('', array($cat['id']), array('number' => 1));
}
}
Сделает 1 блок {plugin_lastnews_everycat}, в котором содержится по одной последней новости из каждой категории
Не в сети
Да вот тут)
просмотрел - и что там есть по теме вопроса?
на мой взгляд - ничего.
Не в сети
То есть, из каждой категории 1 последняя новость.
Если правильно понял, то
function plugin_lastnews(){ global $catz, $template; $template['vars']['plugin_lastnews_everycat'] = ''; foreach ($catz as $cat) { $template['vars']['plugin_lastnews_everycat'] .= plugin_lastnewsGenerator('', array($cat['id']), array('number' => 1)); } }
Сделает 1 блок {plugin_lastnews_everycat}, в котором содержится по одной последней новости из каждой категории
а как сделать 4, или хотя-бы 2 блока?
кстати, код этот куда прописывать?
Не в сети
а как сделать 4, или хотя-бы 2 блока?
function plugin_lastnews(){
global $catz, $template;
$catz_per_block = 5; // кол-во категорий в одном блоке
$i = 0;
foreach ($catz as $cat)
{
if ($i == 0 || $j >= $catz_per_block)
{
$j = 0;
$i++;
$template['vars']['plugin_lastnews_everycat_{$i}'] = '';
}
$template['vars']['plugin_lastnews_everycat_{$i}'] .= plugin_lastnewsGenerator('', array($cat['id']), array('number' => 1));
$j++;
}
}
В итоге получатся переменные:
{plugin_lastnews_everycat_1}
{plugin_lastnews_everycat_2}
...
{plugin_lastnews_everycat_N}
Где N -- номер блока[hr /]
кстати, код этот куда прописывать?
lastnews.php, ф-ию plugin_lastnews() заменить целиком на приведенную
Не в сети
я правильно понял?
В lastnews.php пишу:
$template['vars']['plugin_lastnews_1'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (1), $overrideParams = array('number' => 10));
$template['vars']['plugin_lastnews_2'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (2), $overrideParams = array('number' => 10));
$template['vars']['plugin_lastnews_3'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (3), $overrideParams = array('number' => 10));
$template['vars']['plugin_lastnews_4'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (4), $overrideParams = array('number' => 10));
+
global $catz, $template;
$catz_per_block = 5; // кол-во категорий в одном блоке
$i = 0;
foreach ($catz as $cat)
{
if ($i == 0 || $j >= $catz_per_block)
{
$j = 0;
$i++;
$template['vars']['plugin_lastnews_everycat_{$i}'] = '';
}
$template['vars']['plugin_lastnews_everycat_{$i}'] .= plugin_lastnewsGenerator('', array($cat['id']), array('number' => 1));
$j++;
}
}
В main.tpl:
<div>{plugin_lastnews_1}</div>
<div>{plugin_lastnews_2}</div>
<div>{plugin_lastnews_3}</div>
<div>{plugin_lastnews_4}</div>
что ещё нужно будет настроить?
Не в сети
... В итоге получатся переменные:
{plugin_lastnews_everycat_1}
{plugin_lastnews_everycat_2}
...
{plugin_lastnews_everycat_N}Где N -- номер блока[hr /]
Основной код в плагин вставил.
Что делать с этими переменными?
Не в сети
В шаблон вставить, в ранее размеченные блоки новостей
вставил в шаблон main.tpl, создал несколько новостей - заголовки не выводятся
выводятся только блоки.
блоки:
<div id="novosti">
<div id="n_1">
<h2>А</h2>
<ul class="sidemenu">
{plugin_lastnews_everycat_1}
</ul>
</div>
<div id="n_2">
<h2>Б</h2>
<ul class="sidemenu">
{plugin_lastnews_everycat_2}
</ul>
</div>
<div id="n_3">
<h2>В</h2>
<ul class="sidemenu">
{plugin_lastnews_everycat_3}
</ul>
</div>
<div id="n_4">
<h2>Г</h2>
<ul class="sidemenu">
{plugin_lastnews_everycat_4}
</ul>
</div>
</div>
что я мог не так сделать?
Изменено Сокол (2009-06-09 23:00:36)
Не в сети
в шаблоне плагина что-то менять нужно?
Не в сети
Немного поправил
function plugin_lastnews(){
global $catz, $template;
$catz_per_block = 5; // кол-во категорий в одном блоке
$i = 0;
$j = 0;
foreach ($catz as $cat)
{
if ($i == 0 || $j >= $catz_per_block)
{
$j = 0;
$i++;
$template['vars']["lastnews_everycat_{$i}"] = '';
}
$template['vars']["lastnews_everycat_{$i}"] .= plugin_lastnewsGenerator('', array($cat['id']), array('number' => 1));
$j++;
}
}
Переменные будут
{lastnews_everycat_1}
{lastnews_everycat_2}
...
{lastnews_everycat_N}
И еще, надо в lastnews.php найти
if (intval($overrideParams['number']) <= 1) {
И заменить на
if (intval($overrideParams['number']) < 1) {
Для работоспособности, в шаблоне плагина что-либо менять не обязательно
Изменено insider (2009-06-09 23:20:34)
Не в сети
Урааа! получилось!
Спасибо огромное insider!!!
я так понял, что новости выводятся в блоках - в порядке добавления?
а как сделать так, чтобы закрепить за каждым блоком одну родительскую категорию?
при этом - новости я размещу в дочерних категориях.
Изменено Сокол (2009-06-10 13:18:58)
Не в сети
Страницы 1