Доброй ночи, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 CMS Status-X | Техническая помощь
         Последние статьи

Похожие темы  |  Печать страницы

Последние статьи


События Суббота, 13.07.2013, 11:40

Uglion

Группа: Пользователь
Ранг: Новичок
Cообщений: 60
Регистрация: 09.03.2013
Город: Комсомольск-на-Амуре
Пытаюсь сделать себе постоянное отображение последних статей.

PHP-код
Получился такой код:

<
div class="page_navibox"
  <
div class="page_navibox_header">Последние статьи</div>
  
  
  {foreach 
from=$articlesitems item=articles name=dn}
    <
ul><a title="{$navi->AltTitle|sysspecialchars}class="navi_first" href="/index.php?p=articles&amp;area={$articles.Sektion}&amp;action=displayarticle&amp;id={$articles.Id}&amp;name={$articles.LinkTitle|seotitle}">{$articles.Titel|sysspecialchars}</a></ul>  
  {/foreach}
</
div>        
{/if}      


Но работает он только, если зайти во вкладку статьи, видимо переменная $articles не инициализирована на других страницах.
Никто не подскажет, как сделать, чтобы список последних статей выводился на каждой странице?

Отредактировано Uglion: 13.07.2013, 13:18:09




Пользователь офлайн
События Воскресенье, 14.07.2013, 22:06

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
По ссылке принцип подключения модулей стартовой на все страницы, со статьями все аналогичгно http://www.status-x.ru/postprint/7832/1144/pozhalui-samyi-prostoi-sposob-eto-skopipastit-kod/


Благодарности Uglion
Пользователь офлайн
События Понедельник, 15.07.2013, 13:02

Uglion

Автор текущей темы
Группа: Пользователь
Ранг: Новичок
Cообщений: 60
Регистрация: 09.03.2013
Город: Комсомольск-на-Амуре
Спасибо, почти всё заработало. Возникла только одна неувязочка. В class.Core.php, в GetModules я добавил такой вот код:

PHP-код
if (get_active('articles')) {
    
Sys::getClass('Articles')->displayAllArticles(0);
}


Теперь последние статьи отображаются на каждой странице, но так как статей у меня больше 25, то сгенерировалось несколько страниц. Это была бы небольшая проблема, если бы комментарии, которые тоже используют $pages не решили, что у меня в статье несколько страниц комментариев. В итоге появлялся ненужный переключатель страниц в комментариях.

Поэтому возник вопрос, как мне вывести не все статьи, а именно последние 25. В общем, я наверное сотворил невероятную глупость, но я в файле class.Articles.php нашёл функцию displayAllArticles, скопипастил её под названием displayArtliclesWithoutPages и удалил нафик из неё код генерирующий страницы. Вот этот:

PHP-код
        $this->_CS->assign('news_limit'$this->Limit);

        if (
$num $this->Limit) {
            
$nav_categ = (!empty($_REQUEST['catid'])) ? "&amp;catid=" $_REQUEST['catid'] : '&amp;catid=0';
            
$nav_t '';
            
$this->_CS->assign('pages'$this->_getClass('Navigation')->pagenav($seiten"<a class="page_navigation" href="index.php?p=articles&amp;area=" . AREA . "{$nav_categ}{$nav_t}&amp;page={s}{$nav_search_title}&amp;limit=" . $this->Limit . "">{t}</a> "));
        }


В итоге, вроде бы всё работает. Но, я хоть и не соображаю в пхп и работать с ним мне очень тяжело (15 лет программирования на паскале и Делфи дают о себе знать), всё-таки меня гложет то, как много лишних действий производится, ведь грузится вообще вся база статей. Чисто на удачу хотел спросить, а нет какого-нибудь встроенного функционала, чтоб загрузить только последние 25 статей? Я там видел функцию displayArticle($artid), может с ней можно замутить какой-нибудь циклик на 25 шагов?

Отредактировано Uglion: 15.07.2013, 13:02:44


Пользователь офлайн
События Понедельник, 15.07.2013, 13:11

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
Вообщето вам нужно было всего лишь перенести вот этот код
PHP-код

if (get_active('articles')) {
    
Sys::getClass('Articles')->getTopArticles(Sys::$section['LimitTopArticles']);
    
$CS->assign('toparticle'$CS->fetch(SOURCE '/gaming/articles_toparticles.tpl'));
}



Пользователь офлайн
События Понедельник, 15.07.2013, 14:07

Uglion

Автор текущей темы
Группа: Пользователь
Ранг: Новичок
Cообщений: 60
Регистрация: 09.03.2013
Город: Комсомольск-на-Амуре
Пробовал, не работает. Я так понимаю, что значит TOParticles - это статьи в топе? У меня пока нет таких статей, все обычные.


Пользователь офлайн
События Понедельник, 15.07.2013, 14:21

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
Ну тогда вам нужно писать свою функцию, иначе в вашем варианте получите тормоза и перегруз сервера


Пользователь офлайн
События Понедельник, 15.07.2013, 14:30

Uglion

Автор текущей темы
Группа: Пользователь
Ранг: Новичок
Cообщений: 60
Регистрация: 09.03.2013
Город: Комсомольск-на-Амуре
Ясно. Ладно, спасибо за помощь. Хотелось немножко оптимизировать, но пока мозгов не хватит. Подождём, пока прибавятся. :) Так то пользователи же входят в раздел статьи и ничего страшного не случается. Другой вопрос, что этот код теперь выполняется уже при открытий любой статьи, а не только раздела с анонсами, что конечно будет больше нагружать сервер, чем могло быть. Зато, я получаю полезную вещь. Можно поглядеть, например, тут. Я ещё стиль не доделал, и большую часть готовых статей придётся переверстать, но смысл уже понятен. Справа, раздел "Последние статьи."

upd. А нет, мозгов хватило! Сделал новую процедуру GetArticles, за основу взял GetTopArticles, но убрал из выборки проверку статьи на топовость. А в class.core.php добавил:

PHP-код
if (get_active('articles')) { 
    
Sys::getClass('Articles')->getArticles(25); }


Всё! Теперь я спокоен. :)

Отредактировано Uglion: 15.07.2013, 15:09:39


Пользователь офлайн
События Понедельник, 18.11.2013, 21:15

Darid

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 156
Регистрация: 17.11.2009
Город: minsk
А можно подытожить? Как всётаки скажем на главной странице выводить не только топовые статьи а все последние статьи.. скажем штук 5?

Где что надо прописать?



Отредактировано Darid: 18.11.2013, 23:05:31
Пользователь офлайн
События Понедельник, 18.11.2013, 22:21

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
Нужно пойти в раздел загрузок и скачать блок последние статьи


Благодарности Darid
Пользователь офлайн
События Понедельник, 18.11.2013, 23:07

Darid

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 156
Регистрация: 17.11.2009
Город: minsk
Уже сам в поиске всё нашёл и установил этот блок. Плюс кроме названий статей доделал блок так чтобы выводился и текст статьи и картинка если есть.
Пользователь офлайн


Похожие темы  |  Печать страницы  |   Предыдущая тема  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте


Пользователей: 0, Гостей: 5

Поисковые боты: 13
BingBot(4), Inktomi Slurp, Googlebot(3), Unknown Bot, Yandex(2), oBot(2)

 Статистика форума


  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: Lesya

 Дни рождения


fix (26)
Печать | Copyright © 2009 - 2016 Status-X All rights reserved | Powered by CMS Status-X 1.05 | Контакты