Если вы про то, чтобы развернуть там снимок сборки — то 95% никак. Там скрипт отбивается, если в течение 5-ти секунд нагружает процессор на 100%. Это политики таймвеба. Разворачивайте сборку на другом каком-нибудь хостинге, который позволяет это сделать, и потом уже переносите файлы и БД на таймвеб.
Подскажите как корректно настроить сборку на хостинге TimeWeb
Алексей, позволь пару замечаний: 1. Если не получается подключить пакет, то почему не прерывается процесс? Это я про вот это: echo "\naddPackage " . ($success? 'OK' : 'Failed'); $success = $modx->loadClass('Paysystem'); То есть если !$success, то и loadClass делать нет смысла. Это же касается и попытки подключения класса — если не удалось подключить класс, то и создавать новый объект нет смысла. К слову, $modx->newObject() и прочие методы в принципе включают в себя метод $modx->loadClass(), так что не надо специально его вызывать заранее. 2. Данный код крайне избыточный, особенно имея ввиду то, что пакет billing имеется в экспеншенах, и выполняется автоматически. Соответственно, его нет смысла подключать через $modx->addPackage(). В итоге, конечный работающий код будет выглядеть вот так: if(!$object = $modx->newObject('Paysystem', array( "name" => "EdinayaKassa", "comment" => "Единая касса приема платежей", ))){ print "Не удалось создать новый объект платежной системы"; return; }
// else if(!$object->save()){ print "Не удалось сохранить новый объект платежной системы"; return; }
// else print "Был создан новый объект платежной системы с id ". $object->id;
альтернативный вариант добавления записи платежной системы в таблицу modx_billing_paysystems через consol обратите внимание, на префикс таблиц modx. $packageName = 'billing'; $base_path = $modx->getOption('core_path'); $success = $modx->addPackage($packageName,$base_path.'components/'.$packageName.'/model/','modx_billing_'); echo "\naddPackage " . ($success? 'OK' : 'Failed'); $success = $modx->loadClass('Paysystem'); echo "\nloadClass " . ($success ? 'OK' : 'Failed'); $obj = $modx->newObject('Paysystem'); $obj->set('name','EdinayaKassa'); $obj->set('comment','Единая касса приема платежей'); if ($obj->save()) echo "<br />Запись успешно добавлена";; $result = $modx->getCollection('Paysystem'); echo "<br />Содержимое таблици:"; foreach($result as $row){echo '<pre>';print_r($row->toArray());echo '<pre>';}
Ответил подробно выше.
Почему то он выводит только первый уровень вложенности, а мне надо все 3 уровня которые вложены в id 4… Вам здесь не только знание php требуется, но еще и знание SQL. Если вы указываете parent=>4, это уже получается $where[«parent»] = $parent; (см. код). Плюс к этому вы еще указываете 'template' => 5. В итоге у вас получается 'where' => [ 'parent' => 4, 'template' => 5 ], То есть в вашу выборку могут попасть только те документы, которые являются непосредственно дочерними для документа с id 4, а так же у которых шаблон 5. К этому еще не забываем про автоматически добавленные условия Опубликован, Не удален, Не скрыт из меню. Резюмирую: если вы явно указываете раздел, то будут получены документы только этого раздела. А если вы хотите получить все документы во всех вложенных разделах, то эта задача весьма не простая, и требует правильной организации каталога, чтобы можно было попроще это выполнить. Есть два пути:
{assign var=params value=[ "parents" => 4, "tpl" => "productSmarty", "useSmarty" => true, "where" => '{"template:in":[5]}' ]} {snippet name=getProducts params=$params parse=true} так тоже выводит только первый уровень, и не работает depth. Почему так? почему не где не написано, это же важный момент, почему везде примеры которые выводят один первый уровень…
Вчера просидел до 5 утра, так и не разобрался, к сожалению с php я пока на Вы… подскажите пожалуйста, вот: $this->setDefaultProperties(array( 'parent' => 4, 'limit' => 200, )); В каталоге 3 уровня вложенности, есть ресурсы с isfolder=1,templates=3 есть isfolder=0,templates=5. Задача вывести все ресурсы isfolder=0,templates=5 Почему то он выводит только первый уровень вложенности, а мне надо все 3 уровня которые вложены в id 4… так вообще выдает ошибку ... 'parent' => 4, 'where' => [ 'template' => 5 ], ...
Попробуйте на другом хостинге. Я попробовал с нескольких разных сайтов, и проблем не возникло.
Как-то без протокола вставилось. Даже если с протоколом, всё-равно: MODX получил пустой ответ от поставщика. Пожалуйста, проверьте URL-адрес поставщика и убедитесь, что поставщик является корректным поставщиком.