Kiten

Kiten

С нами с 14 июля 2018; Место в рейтинге пользователей: #552
Kiten
29 марта 2020, 16:16
0
Спасибо, а можете подсказать?
Я попытался сделать плагин:
<?php
$parent = $resource->get('parent');
$parentTpl = $parent->get('template');

if($parentTpl == 1) {
  $resource->set('template', 2);
}
И назначить событие OnBeforeDocFormSave, но не сработало.
Буду благодарен, если подскажете, как исправить
Kiten
21 марта 2020, 16:44
0
Выводит лог:
0.0000570: pdoTools loaded
0.0000141: xPDO query object created
0.0003119: Included list of tvs: img
0.0000930: leftJoined modTemplateVarResource as TVimg
0.0001452: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `alias_visible`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
0.0000060: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.img`
0.0002491: Processed additional conditions
0.0003490: Added where condition: modResource.parent:IN(41,42), modResource.published=1, modResource.deleted=0
0.0000391: Replaced TV conditions
0.0001452: Sorted by modResource.publishedon, DESC
0.0000019: Limited to 3, offset 0
0.0002100: SQL prepared «SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`alias_visible`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`, IFNULL(`TVimg`.`value`, '') AS `tv.img` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVimg` ON `TVimg`.`contentid` = `modResource`.`id` AND `TVimg`.`tmplvarid` = 1 WHERE ( `modResource`.`parent` IN (41,42) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY modResource.publishedon DESC LIMIT 3 „
0.0004029: SQL executed
0.0000651: Total rows: 1
0.0000119: Rows fetched
0.0007429: Prepared and processed TVs
0.0004721: Loaded “modChunk» with name «post»
0.0031011: Returning processed chunks
0.0057480: Total time
4 194 304: Memory usage
0.0002301: pdoTools loaded
0.0015869: Loaded «modSnippet» with name «pdoResources»
0.0070341: Created inline «modChunk» with name «abe8a8cca23646d603740e3ee02828da»
0.0088801: Total time
4 194 304: Memory usage
Kiten
07 апреля 2019, 18:26
0
Здравствуйте!
Едва ли не первый вопрос, который приходит в голову (и не только мне), будет ли MODX 3 нативно поддерживать RESTful API и GraphQL, а не возвращать ошибку 405?
Не передать словами, как хочется это увидеть!!!)))
Спасибо за дайджест!
Kiten
13 февраля 2019, 13:02
+1
Только что проверял твой XML какой есть, без каких-либо изменений.
Все нормально парсится.
Проверь сначала с помощью echo, типа того:
<?php
$xml= simplexml_load_file('misc/77777.xml');
echo $xml->offer[0]->type[0];
Проверь путь к файлу XML, имя и тд.
Также правильно обращаться к полям XML. Где-то мб опечатка.
Проверь версии PHP и MODX.
Причина может быть где угодно!
Kiten
13 февраля 2019, 12:32
0
Посмотри, может в reality-feed параметр мешает.
Я бы убрал все параметры в тегах с помощью автозамены.
PHP может ругаться из-за каких-то символов.
Можно еще поодиночке проверять с помощью echo.
Kiten
13 февраля 2019, 10:46
+1
Сегодня созвездия расположились особым образом и я добрый!)
Вот код. Во-первых, у тебя XML не полностью приведен видимо. Должен быть корень (имя произвольное).
Допустим, XML-файл сидит в папке misc, и называется 77777.xml

<?xml version="1.0" encoding="UTF-8"?>
<root>
продажа
<property-type>жилая</property-type>
квартира
<creation-date>2019-01-29T11:41:05+03:00</creation-date>
<last-update-date>2019-01-29T12:34:55+03:00</last-update-date>
Россия
Ленинградская область
Всеволожский район
<locality-name>пос. Бугры </locality-name>
Всеволожский район, посёлок Бугры, Тихая улица, 1
Парнас
<time-on-transport>10</time-on-transport>
60.0697
30.4123
storage4.kv1.ru/clients/hors/images/base/base_new_dom/photo11789_43887e641.jpg
storage4.kv1.ru/clients/hors/images/base/base_new_kv/photo20050_afdc7b7d1.jpg
storage4.kv1.ru/clients/hors/images/base/base_new_kv/plan20050_8d89b34b1.jpg
34.18
кв. м
Жилой комплекс будет обеспечен собственной социальной инфраструктурой, включающей три детских сада на 775 мест и общеобразовательную школу, рассчитанную на 1 383 учащихся. На первых этажах зданий предусмотрены коммерческие помещения, в которых разместятся объекты инфраструктуры шаговой доступности — магазины, аптеки, салоны красоты и другие, необходимые для комфортной жизни службы и сервисы. Для удобства автомобилистов предусмотрен паркинг вместимостью свыше 4 000 машиномест, а также гостевые парковочные зоны.
1
<rooms-offered>1</rooms-offered>
7
<floors-total>17</floors-total>
<building-name>Новые Горизонты</building-name>
<yandex-building-id>51646</yandex-building-id>
<building-type>Кирпично-монолит.</building-type>
<building-section>очередь 1, корпус 1</building-section>
<built-year>2017</built-year>
<ready-quarter>2</ready-quarter>
<building-state>hand-over</building-state>
+
<is-elite>-</is-elite>
+
2555000
RUR
<deal-status>переуступка</deal-status>
<sales-agent>
+
агентство
HORS
<email/>
</sales-agent>
предчистовая
</root>
То, что в XML есть дефисы, тоже не очень хорошо. Но можно при выполнении запросов обернуть нужные поля в фигурные скобки с кавычками.
Создаем сниппет, назовем его temp.

<?php
$xml= simplexml_load_file('misc/77777.xml');    //создаем объект из xml

$parent = 2;    //ид родителя
$template = 3;    //ид шаблона
$pagetitle = $xml->{'property-type'}[0];    //берем отсюда название
$alias = 'page';    //имя адреса
$publishedon = $xml->{'creation-date'}[0];    //дата создания
$published = true;    //опубликовано
$introtext = $xml->{'building-name'}[0];    //аннотация
$content = $xml->{'building-type'}[0];    //контент

$doc = $modx->newObject('modDocument');    //создаем и заполняем
$doc->set('parent',$parent);
$doc->set('template',$template);
$doc->set('pagetitle',$pagetitle);
$doc->set('alias',$alias);
$doc->set('publishedon',$publishedon);
$doc->set('published',$published);
$doc->set('introtext',$introtext);
$doc->setContent($content);
$doc->save();    //сохраняем
Использовать свои поля по аналогии. Можно обернуть в цикл и создавать несколько.
Сниппет можно вставить куда-нибудь и открыть страницу, он активируется.
Вуаля!
Kiten
13 февраля 2019, 10:31
0
Щас, дай ка посмотрю
Kiten
13 февраля 2019, 09:27
0
Посмотрим, что скажет товариЩЪ)
Kiten
13 февраля 2019, 09:03
0
Да по ходу..))
Он же должен быть сохранен сначала.
Спасибо!
Kiten
12 февраля 2019, 23:46
+1
По-разному, например:
1. Загрузить XML-файл куда-нибудь в бэкенд.
2. Написать сниппет, в нем создать из XML-файла объект с помощью функции simplexml_load_file();
3. Создать переменные, обращаясь к нужным полям объекта;
4. Создать объект с помощью $modx->newObject('modDocument');
5. Прописать нужные параметры из переменных;
Kiten
30 января 2019, 11:36
0
А что, это уже не Slack сообщество?
Kiten
30 января 2019, 10:37
0
А правда ли, ходят слухи в «интернетах», что MODX3 будет полностью RESTFUL?
Kiten
30 января 2019, 10:34
0
С этим сложно поспорить)
Kiten
21 января 2019, 12:23
0
Сработало! Спасибо большое!)
Kiten
16 января 2019, 10:30
0
Смелым судьба помогает!))
Kiten
15 января 2019, 20:24
0
Спасибо всем!))
Kiten
15 января 2019, 20:22
0
Спасибо большое! Буду осваивать…
Удачи всем! И вдохновения!))
Kiten
05 августа 2018, 19:21
+1
Все заработало, когда набрал заново код. Где-то банальная опечатка была…
Спасибо всем за внимание!