Ошибка 404 Запрашиваемый документ не найден!

#
Ошибка 404 Запрашиваемый документ не найден!
А сложность вот в чём. Для отображения списка авторов из доски объявлений написал собственную обработку вот:
<pre>
<?php
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
$xsl_item = to_str($GLOBALS['LA']['xsl_item']);
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);

function err_handler($errno, $errmsg, $filename, $linenum) {}

function SiteUserXml($current_shop_id, $site_users_id, $count_items, $param = array())
{
   $SiteUsers = & singleton('site_users');
   $shop = & singleton('shop');
   $count_items = to_int($count_items);
   $xmlData = "";
   $groups_row = array();
   $all_items = array();
   
   $site_user_row = $SiteUsers->GetSiteUser($site_users_id);
   
   $xmlData .= "\t" . '<site_user id="' . $site_user_row['site_users_id'] . '">' . "\r\n";
   $xmlData .= "\t\t" . '<login>' . $site_user_row['site_users_login'] . '</login>' . "\r\n";
   $xmlData .= "\t\t" . '<email>' . $site_user_row['site_users_email'] . '</email>' . "\r\n";
   $xmlData .= "\t\t" . '<surname>' . $site_user_row['site_users_surname'] . '</surname>' . "\r\n";
   $xmlData .= "\t\t" . '<name>' . $site_user_row['site_users_name'] . '</name>' . "\r\n";
   $xmlData .= "\t\t" . '<patronymic>' . $site_user_row['site_users_patronymic'] . '</patronymic>' . "\r\n";
   $xmlData .= "\t\t" . '<company>' . $site_user_row['site_users_company'] . '</company>' . "\r\n";
   $xmlData .= "\t\t" . '<phone>' . $site_user_row['site_users_phone'] . '</phone>' . "\r\n";
   $xmlData .= "\t\t" . '<fax>' . $site_user_row['site_users_fax'] . '</fax>' . "\r\n";
   $xmlData .= "\t\t" . '<site>' . $site_user_row['site_users_site'] . '</site>' . "\r\n";
   $xmlData .= "\t\t" . '<icq>' . $site_user_row['site_users_icq'] . '</icq>' . "\r\n";
   $xmlData .= "\t\t" . '<country>' . $site_user_row['site_users_country'] . '</country>' . "\r\n";
   $xmlData .= "\t\t" . '<city>' . $site_user_row['site_users_city'] . '</city>' . "\r\n";
   $xmlData .= "\t\t" . '<date_registration>' . $site_user_row['site_users_date_registration'] . '</date_registration>' . "\r\n";
   
   if(isset($param['groups_for_xml']) && $param['groups_for_xml'] === true)
   {
      $all_items = $shop->GetAllItems($current_shop_id, false);
      
      $i = 0;
      $all_items_for_user = array();
      
      for($groups_select = 0; $groups_select < count($all_items); $groups_select++)
      {
         if($all_items[$groups_select]['site_users_id'] == $site_users_id)
         {
            $all_items_for_user[$i] = $all_items[$groups_select]['shop_groups_id'];
            $i++;
         }
      }
      
      $j = 0;
      $groups_for_user = array_unique($all_items_for_user);
      
      while($groupID = each($groups_for_user))
      {
         $groups_row[$j] = $shop->GetGroup($groupID['value']);
         $j++;
      }
      $xmlData .= GenXml4Group($current_shop_id, $groups_row);
   }
   
   if(isset($param['items_for_xml']) && is_array($param['items_for_xml']))
   {
      // Добавляем в XML товары из текущей группы принадлежащие текущему пользователю сайта
      for($items_count = 0; $items_count < $count_items; $items_count++ )
      {
         $xmlData .= $shop->GenXml4Item(0, $param['items_for_xml'][$items_count], $site_users_id);
      }
   }
   
   $xmlData .= "\t" . '</site_user>' . "\r\n";
   
   return $xmlData;
}

function GenXml4Group($current_shop_id, $groups_row = array())
{
   $shop = & singleton('shop');
   $xmlData = "";
   
   for($cg = 0; $cg < count($groups_row); $cg++)
   {
      $count_items = 0;
      $count_groups = 0;
      
      $groups_row_items = $shop->GetAllItems($current_shop_id, $groups_row[$cg]['shop_groups_id'], array('items_field_order' =>'shop_items_catalog_order', 'items_order' => 'Asc'));
      
      $sub_groups_row = $shop->GetAllGroups($current_shop_id, array('shop_groups_parent_id' => $groups_row[$cg]['shop_groups_id'], 'group_field_order' => 'shop_groups_id', 'group_order' => 'Asc', 'groups_activity' => 1));
      
      if($groups_row[$cg]['shop_groups_parent_id'] == 0)
      { $fullpath = to_str($groups_row[$cg]['shop_groups_path']); }
      
      elseif($groups_row[$cg]['shop_groups_parent_id'] > 0 && count($sub_groups_row) > 0)
      { $fullpath .= "/" . to_str($groups_row[$cg]['shop_groups_path']); }
      
      else
      { $fullpath .= "/" . to_str($groups_row[$cg]['shop_groups_path']); }
      
      if ($groups_row_items != false)
      { $count_items = count($groups_row_items); }
      
      if ($sub_groups_row != false)
      { $count_groups = count($sub_groups_row); }
      
      $xmlData .= '   <group id="' . $groups_row[$cg]['shop_groups_id'] . '" parent="' . $groups_row[$cg]['shop_groups_parent_id'] . '">
         <name>' . $groups_row[$cg]['shop_groups_name'] . '</name>
         <description>' . $groups_row[$cg]['shop_groups_description'] . '</description>
         <order>' . $groups_row[$cg]['shop_groups_order'] . '</order>
         <indexation>' . $groups_row[$cg]['shop_groups_indexation'] . '</indexation>
         <path>' . $groups_row[$cg]['shop_groups_path'] . '</path>
         <fullpath>' . $fullpath . '/</fullpath>
         <seo_title>' . $groups_row[$cg]['shop_groups_seo_title'] . '</seo_title>
         <seo_description>' . $groups_row[$cg]['shop_groups_seo_description'] . '</seo_description>
         <seo_keywords>' . $groups_row[$cg]['shop_groups_seo_keywords'] . '</seo_keywords>
         <count_items>' . $count_items . '</count_items>
         <count_groups>' . $count_groups . '</count_groups>
   ';
      $xmlData .= $shop->GenXml4Properties($current_shop_id, $groups_row[$cg]['shop_groups_id']);
      $xmlData .= '   </group>
   ';
   }
   return $xmlData;
}

$param = array();
$xmlData = '<?xml version="1.0" encoding="' . SITE_CODING . '"?>' . "\r\n";

set_error_handler('err_handler');

$shop = & singleton('shop');
$kernel = & singleton('kernel');
$structure = & singleton('Structure');
$SiteUsers = & singleton('site_users');
$DataBase = & singleton('DataBase');

$shop_row = $shop->GetShop($current_shop_id);

$path = $structure->GetStructurePath($shop_row['structure_id'], 0);

/* Получаем id текущего пользователя сайта */
$site_users_id = $SiteUsers->GetCurrentSiteUser();
$current_group_id = to_str($GLOBALS['shop_item_path']['group']);
$current_group_info = $shop->GetGroup($current_group_id);

$xmlData .= '<shop id="' . $shop_row['shop_shops_id'] . '" current_group_id="' . $current_group_id . '">' ."\r\n";
         
$user_info = $SiteUsers->GetSiteUser($site_users_id);

if ($user_info)
{
   $xmlData .= '<autor_login>' . $user_info['site_users_login'] . '</autor_login>' ."\r\n";
}

   $xmlData .= '<url>/' . $GLOBALS['URL_ARRAY'][0] . '/</url>' ."\r\n";


if(isset($_GET['apply_filter']) && to_int($_GET['site_users_id']) > 0)
{
   $site_users_filtr = to_int($_GET['site_users_id']);
   
   $xmlData .= '   <site_users_id>' . $site_users_filtr . '</site_users_id>
   <apply_filter>1</apply_filter>
';
}

$xmlData .= $shop->GenXml4Shop($current_shop_id);

// Вывод списка
if (!isset($_GET['apply_filter']) && !isset($_GET['site_users_id']))
{
   $xsl_file = $xsl_catalog;
   
   /* Определяем номер элемента, с которого начинается показ в текущей группе */

   // Берем из БД полный список авторов
   $query = "SELECT site_users_id FROM site_users_table ORDER BY site_users_name";
   $result = $DataBase->query($query);
   $i = 0;
   
   while($row = mysql_fetch_assoc($result))
   {
      $list_site_users_id[$i] = $row['site_users_id'];
      $i++;
   }
   
   $limit_users = count($list_site_users_id);
      
   for($items_begin = 0; $items_begin < $limit_users; $items_begin++)
   {
      $xmlData .= SiteUserXml($current_shop_id, $list_site_users_id[$items_begin], 0, array('groups_for_xml' => true));
      
   }
}
// Вывод элемента
else
{
   $xsl_file = $xsl_item;

   // Вывод списка
   if (count($GLOBALS['URL_ARRAY']) == 1)
   {
      $all_items = $shop->GetAllItems($current_shop_id, false);
      
      $i = 0;
      $all_items_for_user = array();
      
      for($groups_select = 0; $groups_select < count($all_items); $groups_select++)
      {
         if($all_items[$groups_select]['site_users_id'] == $site_users_filtr)
         {
            $all_items_for_user[$i] = $all_items[$groups_select];
            $i++;
         }
      }
      
   }
   else
   {
      $parent_group_id = 0;
      
      while($group_path = each($GLOBALS['URL_ARRAY']))
      {
         if($group_path['key'] != 0)
         {
            $group_row = $shop->GetGroupWithPath($group_path['value'], $parent_group_id, $current_shop_id);
            
            $parent_group_id = $group_row['shop_groups_id'];
         }
      }
      
      $all_items = $shop->GetAllItems($current_shop_id, $parent_group_id);
      
      $i = 0;
      $all_items_for_user = array();
      
      for($groups_select = 0; $groups_select < count($all_items); $groups_select++)
      {
         if($all_items[$groups_select]['site_users_id'] == $site_users_filtr)
         {
            $all_items_for_user[$i] = $all_items[$groups_select];
            $i++;
         }
      }
   }

   $xmlData .= SiteUserXml($current_shop_id, $site_users_filtr, count($all_items_for_user), array('items_for_xml' => $all_items_for_user, 'groups_for_xml' => true));
}

$xmlData .= '</shop>';

$xsl = & singleton('xsl');

$result = $xsl->build($xmlData, $xsl_file);

// Распечатаем результат
echo $result;
?>
По условиям когда появляются apply_filter&site_users_id= выводятся все объявления выбранного по фильтру пользователя, а так же, если находимся в группе, то выводим все элементы только этой группы. Казус в чем, что если у группы parent="0", то всё норм, а если больше ноля, то выводится страница 404. Почему не передается обработка моей дин странице, непонятно, ведь узел структуры тот же
Модератор
#
Re: Ошибка 404 Запрашиваемый документ не найден!
В самом начале ставите
echo 1; die();
нажимаете на фильтр с парэнт больше 0 и смотрите, вывелась 1 или страница с ошибкой.
#
Re: Ошибка 404 Запрашиваемый документ не найден!
проблема была в настройках страницы, уже исправил
Модератор
#
Re: Ошибка 404 Запрашиваемый документ не найден!
Замечательно
#
Re: Ошибка 404 Запрашиваемый документ не найден!
дело в том что там работа с магазином и в начале настроек идёт вызов
$GLOBALS['shop_item_path'] = $shop->GetItemPath($current_shop_id, array());
который почему-то пустой
Модератор
#
Re: Ошибка 404 Запрашиваемый документ не найден!
phantik,
Посмотрите на параметры этого метода в API, особенно обратите внимание на $break_if_path_not_found
#
Re: Ошибка 404 Запрашиваемый документ не найден!
я вписал на его место "false"
Модератор
#
Re: Ошибка 404 Запрашиваемый документ не найден!
Тогда ошибки 404 быть не должно.
#
Re: Ошибка 404 Запрашиваемый документ не найден!
теперь нету
Модератор
#
Re: Ошибка 404 Запрашиваемый документ не найден!
Вот и отлично
Авторизация