[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как можно оптимизировать этот код
Night User
В cms (modx) написан сниппет (собств. скрипт) - писал его не я. Но он не работает на хостинге Зенон. При попытке обращения к странице с ним возникает ошибка 502.

Выяснил, что проблема в след. куске кода:
PHP
while ( ($parent != $modx->documentIdentifier) && ($parent != 12)) {
$doc $modx->getParent($id);
$last $id;
$id $parent $doc['id'];
}


$doc = $modx->getParent($id); - получения rатегории документа.
$modx->documentIdentifier - ID документа



Спустя 8 минут, 8 секунд (13.09.2009 - 16:59) glock18 написал(а):
здесь бесконечный цикл. чтобы не возникала 502 ошибка, нужно сделать его конечным smile.gif

Спустя 18 минут, 30 секунд (13.09.2009 - 17:18) Night User написал(а):
Да уж.... что-то я совсем туплю:)

Небольшая проблема с окончанием этого цикла - работает немного некорректно

Вот такой вот код:
PHP
foreach($all as $id) {
$parent $id;
$i 1;
while ((
$i <= $count) && ($parent != $modx->documentIdentifier) && ($parent != 12)) {
$doc $modx->getParent($id);
$last $id;
$id $parent $doc['id'];
$i++;
}
$childs[] = $last;
}


Вот такой вот там код стоит сейчас (на Jino все работает)
$all - массив с документами - из него надо отсеить все документы у котрых parent (категория) НЕ 12 и НЕ тек. документ и добавить их в массив $childs.

Но обрабатывается немного некорректно... - некоторые id пропускаются

Спустя 10 минут, 40 секунд (13.09.2009 - 17:29) glock18 написал(а):
Цитата
$all - массив с документами - из него надо отсеить все документы у котрых parent (категория) НЕ 12 и НЕ тек. документ и добавить их в массив $childs.


странный код, судя по формулировке задачи.

Глядя на внутренный, очевидным становится что цикл рекурсивно ищет родителя у элемента, пока не получится то условие, которые вы привели.

Судя по словесному описанию, представляется что внутренний цикл вообще не нужен.

Если цикл там нужен, то лучше конкретнее опишите задачу.

Спустя 16 минут, 49 секунд (13.09.2009 - 17:45) Night User написал(а):
Да.. немного некорректно описал суть.

В $all содержится список основных документов.
Они в категории Город, которая в свою очередь в категории Регион, которая в свою очередь в категории Страна.

Если мы в просмотре стран, то надо вывести все НЕ пусты регионы.
Остальное по тому же принципу.

Для отображения можно указывать массив с категориями (регионами в прмиере выше).Нужно как-то получить все id этиг категория-регионов

Спустя 10 минут, 59 секунд (13.09.2009 - 17:56) Night User написал(а):
Решил изменением получения $count - теперь получает кол-во документов.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.