Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

rss

Вы не зашли.

Объявление

#1 2009-05-31 21:09:20

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Вывод блоков новостей по категориям

Подскажите люди добрые чайнику в программинге smile

Ситуация: имеется сайт с шаблоном из четырёх блоков новостей на главной, несколькими категориями (например - 10), и в каждой категории несколько новостей.
Задача: сделать вывод последних новостей из одной категории в одном блоке (2-2, 3-3, 4-4).
При этом - страница новости должна выводиться в обычном виде.

Здесь: http://www.ngcms.ru/forum/viewtopic.php?id=48 как-то сложновато описано. Хотелось бы пример, и попроще smile

Неактивен

 

#2 2009-06-01 19:09:33

RocketBoy
Пользователь
Откуда: Калининград
Зарегистрирован: 2008-10-14
Сообщений: 552
Рейтинг :   27 
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

В 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)

Неактивен

 

#3 2009-06-03 18:37:47

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

Ещё вопрос:
а возможно ли сделать так, чтобы в блоках новостей выводились например 20 последних новостей (по 5 в каждом блоке) из 20ти категорий?
То есть, из каждой категории 1 последняя новость. Или 20 последних записей каждого автора.
Это окончательный вариант того, что мне нужно. и я пока ищу сиэмэску, на которой это можно реально сделать.
Буду благодарен за помощь в этом вопросе!

Неактивен

 

#4 2009-06-03 20:20:47

insider
Пользователь
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

То есть, из каждой категории 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}, в котором содержится по одной последней новости из каждой категории

Неактивен

 

#5 2009-06-04 20:13:24

icedogas
Пользователь
Откуда: Москва
Зарегистрирован: 2009-02-08
Сообщений: 318
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

Да вот тут)

Неактивен

 

#6 2009-06-04 21:34:10

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

icedogas написал:

Да вот тут)

просмотрел - и что там есть по теме вопроса?
на мой взгляд - ничего.

Неактивен

 

#7 2009-06-04 21:36:57

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

insider написал:

То есть, из каждой категории 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 блока?
кстати, код этот куда прописывать?

Неактивен

 

#8 2009-06-04 21:59:35

icedogas
Пользователь
Откуда: Москва
Зарегистрирован: 2009-02-08
Сообщений: 318
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

Не в ту тему написал))

Неактивен

 

#9 2009-06-04 22:19:07

insider
Пользователь
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

а как сделать 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 -- номер блока



кстати, код этот куда прописывать?

lastnews.php, ф-ию plugin_lastnews() заменить целиком на приведенную

Неактивен

 

#10 2009-06-05 13:45:45

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

я правильно понял?

В 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>

что ещё нужно будет настроить?

Неактивен

 

#11 2009-06-05 13:55:25

insider
Пользователь
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

Первое зачем?
А что вставить в main.tpl я писал в предыдущем посте

Неактивен

 

#12 2009-06-09 21:53:39

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

insider написал:

... В итоге получатся переменные:

{plugin_lastnews_everycat_1}
{plugin_lastnews_everycat_2}
...
{plugin_lastnews_everycat_N}

Где N -- номер блока


Основной код в плагин вставил.
Что делать с этими переменными?

Неактивен

 

#13 2009-06-09 21:56:54

insider
Пользователь
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

В шаблон вставить, в ранее размеченные блоки новостей

Неактивен

 

#14 2009-06-09 22:56:08

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

insider написал:

В шаблон вставить, в ранее размеченные блоки новостей

вставил в шаблон main.tpl, создал несколько новостей - заголовки не выводятся sad
выводятся только блоки.


блоки:

Код:

<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)

Неактивен

 

#15 2009-06-09 23:08:24

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

в шаблоне плагина что-то менять нужно?

Неактивен

 

#16 2009-06-09 23:18:40

insider
Пользователь
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

Немного поправил

Код:

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)

Неактивен

 

#17 2009-06-10 13:17:20

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

Урааа! получилось! cool
Спасибо огромное insider!!!

я так понял, что новости выводятся в блоках - в порядке добавления?
а как сделать так, чтобы закрепить за каждым блоком одну родительскую категорию?
при этом - новости я размещу в дочерних категориях.

Отредактированно Сокол (2009-06-10 13:18:58)

Неактивен

 

#18 2009-06-10 14:11:49

insider
Пользователь
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Профиль  Вебсайт

Re: Вывод блоков новостей по категориям

Порядок вывода категорий можно изменить в админке, "Позиция" в Управлении категориями

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.016 seconds, 27 queries executed ]