Тема: Проблема с выводом новостей

Проблема в следующем:
В шаблоне (открытой новости) прописано в самом низу после вывода новости конструкция такого вида:

<?
if ($post['category']){ // узнаём, открыта ли какая-то новость и в категориили она вообще
   $static['skip'] = 0;
   $static['template'] = 'Headlines';
   $static['category'] = $post['category'];
   include rootpath.'/show_news.php'; } ?>

которая должна выводить все новости из этой категории. (добавлялась эта конструкция через <? include ("tpl.php"); ?> ) и все замечательно работало до сего дня,

Сегодня раскидывал категории, удалял ненужные и перестала работать эта хрень sad
Покопался - причины не нашел но нашел самое тупое решение - продублировал вывод (всю эту конструкцию) и все заработало как надо - один раз вывелись эти новости с нужным шаблоном +)

Это же неправильно big_smile
что делать ? как жить дальше )

ЗЫ: попробовал не в шаблон забить, а в страницу, после вывода новости - работает нормально ))

Strawberry 1.1.1

Re: Проблема с выводом новостей

manyk, попробую предположить, что одна из выводимых новостей принадлежит категории, которая была удалена. Например, новость была в категориях '1,5,8', вы удалили например категорию '5'. Тогда при выводе новостей из категории '8' у вас действительно будет такая хрень.

Попробуйте войти в админку и задать в адресной строке браузера:

http://www.сайт.ru/strawberry/index.php?mod=editnews&category=5

5 - это номер удаленной категории. Что-нибудь выводится? Если да, то выделите все выведенные новости и измените им категорию списком.

Re: Проблема с выводом новостей

попробовал - не помогло sad

удаленная категория была №1 - там была одна новость которая негде не выводилась - удалил ее)) это была чисто условная категория - "каталог", в которой лежали почти все подкатегории.

удалив ее перестали выводиться и ($static) новости не из этой родительской категории,
решил все также - продублировал вывод новости big_smile

все таки хочется разобраться в чем проблема cool

Отредактировано manyk (28 Dec 2009 13:03:28)

Strawberry 1.1.1

Re: Проблема с выводом новостей

manyk, если категория была "родительской" и вы её удалили, то теперь нужно отредактировать все категории, убрав у них принадлежность к родительской категории.

Если отрубился $static, то есть подозрение на кэш. Попробуйте почистить его вручную - то есть через FTP: войдите и удалите все файлы из папки cache (кроме файла .htaccess).

Re: Проблема с выводом новостей

Принадлежность к родителю я естественно сразу убрал как удалил категорию big_smile

В папке кэш лежит только файлик .htaccess

$static отрубился когда он добавлен в теле шаблона открытой новости.
Если вывод статик вписан в страницу сайта то выводится нормально ))

еще обнаружилась проблема с плагином Eval, тоже похоже после моих операций с категориями...
- пхп просто отказывается работать в открытой новости
- в категории работает но тоже хренова , выполняется код но переменные введенные раньше не выводит (в файлике head.php у меня забит курс УЕ пишу <?php echo $kurs; ?> - ничего не выводит) а в остальном работает.

чет я начудил нездоровое ))) не буду больше родителей удалять big_smile

может стоит перезалить движок? (только как бы так сделать чтоб яндекс не расстроился от моих манипуляций и адреса страниц не перепутались)

Как полагаешь стоит нет это делать или есть шанс все исправить - TXTSql, 150 страниц новостей roll

Strawberry 1.1.1

Re: Проблема с выводом новостей

manyk, перезаливка движка - не выход из положения. Что-то нарушено в структуре базы.

Кстати, вспомнил, была и у меня подобная история. Так и не докопался до истины, но помогло следующее:

В админке все новости заново переприсвоил категориям. В режиме редактирования выводил новости по сортировке "Категория". В начале списка выводились новости из категории №1, я их выделял и выполнял групповую команду "Изменить категорию", присвоив им категорию №1. Затем то же самое выполнял для категории №2 и т.д. - пока для всех новостей не были переприсвоены их же категории. Всё заработало.

И ещё, только что сообразил, что указанную конструкцию вы выводите в шаблоне. Вообще-то этого делать не желательно, т.к. получается рекурсия переменных. А главное - массив $post работает только вне шаблона (по крайней мере - должен).

Ну попробуйте так (в шаблоне):

<?
ob_start();
if ($post['category']){ // узнаём, открыта ли какая-то новость и в категориили она вообще
   $static['skip'] = 0;
   $static['template'] = 'Headlines';
   $static['category'] = $post['category'];
   include rootpath.'/show_news.php'; } 
echo ob_get_clean();
?>

А если не получится (скорее всего, не получится), то вынесите эту конструкцию из шаблона и поставьте её сразу после вывода полной новости:

<?
... //здесь выводится полная новость
include rootpath.'/show_news.php';

//а здесь - список хэдлайнов новостей из той же категории, что и открытая
if ($_GET['id']) {
   if ($post['category']){ // узнаём, открыта ли какая-то новость и в категориили она вообще
      $static['skip'] = 0;
      $static['template'] = 'Headlines';
      $static['category'] = $post['category'];
   include rootpath.'/show_news.php'; } 
}
?>

Re: Проблема с выводом новостей

присвоил заново всем новостям их категории - не помогло sad

ладно придется вытаскивать из шаблона этот статик ....
просто есть одна причина почему я сделал именно так , при выводе статика в шаблоне открытой новости не подгружаются комментарии (/skins/cute.js, /skins/prototype.js и последующий скрипт) которые подгружают сервер, но есть шаблоны где эти комментарии нужны...

если убирать из шаблона статик то надо как-то сделать чтоб эти скрипты не подгружались в данной категории

Strawberry 1.1.1

Re: Проблема с выводом новостей

Strawberry 1.1.1
Ни с того, ни с сего перестали работать ссылки на полную новость. При клике по заголовку я попадаю на ту же страницу где находится список новостей данной категории.
Шаблон короткой новости начинается так:

<div class="post">
<div id="news<?=$tpl['post']['id']; ?>" class="<?=$tpl['post']['alternating']; ?>"><div class="line"><table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="64%" valign="top"><a href="<?=$tpl['post']['link']['post']; ?>">
      <h1><?=$tpl['post']['title']; ?></h1>
    </a>
<? if ($tpl['post']['pages']){ ?>
(<?=$tpl['post']['pages']; ?>)
<? } ?></td>...

Раньше это давало вывод заголовка с ссылкой вида: http://www.site.ru/obiav/id418
Сегодня обратил внимание, что ссылка стала выглядеть так: http://www.site.ru/obiav
Можно, конечно, вместо

<a href="<?=$tpl['post']['link']['post']; ?>">

написать

<a href="http://www.site.ru/obiav/id<?=$tpl['post']['id']; ?>">

тогда всё работает. Но эта ссылка только для 1 категории, а мне нужен универсальный шаблон. И всё же хотелось выяснить что могло случиться? На другом сайте у меня такой же шаблон, и всё работает!

Отредактировано Ydes (08 Feb 2010 20:14:51)

Re: Проблема с выводом новостей

проверте файл data/urls.ini

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!