Баг :Вывод в группах страниц из подразделов
Статус :Исправлено
Серьёзность :Улучшение
Репортер :Amro 22-09-12 19:31
Обновил :Amro 30-09-12 01:29
КатегорияСтраницы
Версия :171
Частота :Постоянно
Пофиксено в :172
Детали :

Очень часто возникает необходимость выводить в родительском разделе (помеченным как группа) страницы из подразделов. Необходимо поправить сценарий list.inc.php заменив:

  else 
    {
    sed_die(empty($sed_cat[$c]['title']));
    $sql = sed_sql_query("SELECT COUNT(*) FROM $db_pages WHERE page_cat='$c' AND (page_state='0' OR page_state='2') ");
    $totallines = sed_sql_result($sql, 0, "COUNT(*)");
    $sql = sed_sql_query("SELECT p.*, u.user_name ".$join_ratings_columns."
      FROM $db_pages as p ".$join_ratings_condition."
      LEFT JOIN $db_users AS u ON u.user_id=p.page_ownerid
      WHERE page_cat='$c' AND (page_state='0' OR page_state='2')
      ORDER BY page_$s $w LIMIT $d,".$cfg['maxrowsperpage']);
    }

на

	{
	sed_die(empty($sed_cat[$c]['title']));
  if (($sed_cat[$c]['group']) && ($cfg['showpagesubcatgroup'] == 1)) {
    $mtch = $sed_cat[$c]['path'].".";
    $mtchlen = mb_strlen($mtch);
    $catsub = array();
    $catsub[] = $c;
    foreach($sed_cat as $i => $x)
      {
      if (substr($x['path'], 0, $mtchlen)==$mtch && sed_auth('page', $i, 'R'))
        { $catsub[] = $i; }
      }
    $sql = sed_sql_query("SELECT COUNT(*) FROM $db_pages WHERE page_cat IN ('".implode("','", $catsub)."') AND (page_state='0' OR page_state='2') ");
    $totallines = sed_sql_result($sql, 0, "COUNT(*)");
    $sql = sed_sql_query("SELECT p.*, u.user_name ".$join_ratings_columns."
      FROM $db_pages as p ".$join_ratings_condition."
      LEFT JOIN $db_users AS u ON u.user_id=p.page_ownerid
      WHERE page_cat IN ('".implode("','", $catsub)."') AND (page_state='0' OR page_state='2')
      ORDER BY page_$s $w LIMIT $d,".$cfg['maxrowsperpage']);
    }
  else 
    {
    $sql = sed_sql_query("SELECT COUNT(*) FROM $db_pages WHERE page_cat='$c' AND (page_state='0' OR page_state='2') ");
    $totallines = sed_sql_result($sql, 0, "COUNT(*)");
    $sql = sed_sql_query("SELECT p.*, u.user_name ".$join_ratings_columns."
      FROM $db_pages as p ".$join_ratings_condition."
      LEFT JOIN $db_users AS u ON u.user_id=p.page_ownerid
      WHERE page_cat='$c' AND (page_state='0' OR page_state='2')
      ORDER BY page_$s $w LIMIT $d,".$cfg['maxrowsperpage']);
    }
	}

и добавить соответствующий конфиг ($cfg['showpagesubcatgroup']) в админ-панель и в файл functions.admin.php

 

Затронутые части :list.inc.php, functions.admin.php

История и комментарии :

Нет записей