Андрей

Андрей

С нами с 28 октября 2016; Место в рейтинге пользователей: #316
Андрей
19 мая 2018, 23:03
0
вопрос снят, переменную не надо было брать в кавычки. так все работает
$params['parents'] = $idp;
Андрей
19 мая 2018, 22:55
0
вычитал что нужно создать сниппет и вызывать его в чанке.
<?php
$params['parents'] = '$idp';
$params['depth'] = '1';
$params['tpl']='tpl.project';
$params['sortby']='menuindex';
$params['sortdir']='ASC';
$params['showUnpublished']='1';
$params['showHidden']='1';
$params['limit']='100';
$html = $modx->runSnippet('pdoResources', $params);
return $html;
так обработка идет, но почему-то вызов в чанке tpl.project [[+pagetitle]] дает вообще какие-то случайные ресурсы, у которых точно не один родитель.
Андрей
13 мая 2018, 19:46
0
<meta property="og:image" content="[[+properties.first_img_src.0]]">
выдает пустоту.
создал плагин с кодом из инструкции, поставил галочку напротив события onbeforedocformsave, пересохранил нужный документ, но все равно не работает.
картинки в статье есть
Андрей
10 апреля 2018, 22:21
0
А можно по-подробнее?
Честно говоря 2 вопроса:
1. не нашел такого события вот тут
2. даже если найти — что дальше делать). Есть ресурс с сотней дочерних элементов и если название можно оставить таким же, это ни на что не влияет, то алиасы все нельзя оставить старые — как минимум это будет вызывать конфликт с исходным ресурсом, а хотелось бы чтобы алиас менялся, но только родителя, а дочерние тогда не будут конфликтовать.
Андрей
10 апреля 2018, 20:27
0
оказался какой-то глюк. код верный.
pagetitle это 4 цифры и визуально они были идентичны, а по факту чем-то отличались, после того как я переввел цифры и сохранил ошибка пропала. кто подскажет в чем могла быть проблема и как проверить есть ли она еще? ресурсов много все руками не проверишь, но в остальных выборочно проверил — все работает.
Андрей
03 апреля 2018, 23:11
0
Спасибо!
Андрей
03 апреля 2018, 22:23
0
понадобилось добавить условие для поиска (выяснилось что заголовки могут повторяться в других разделах), доработал код вот так
<?php
$q = $modx->newQuery('modResource');
$q->where(array('pagetitle' => $idsearch, 'parent=' => array('993','992','995','989','990','991','994','996','997','988')));

$resource = $modx->getObject('modResource', $q);

$iddd = $resource->uri;

return $iddd;
на 99% дает верный результат, но в нескольких случаях выдает ресурс у которого родитель не перечислен в условии. что не так?
Андрей
01 апреля 2018, 13:25
0
написал такой сниппет, по идее он должен формировать двумерный массив, но он выводит пустой массив
$pdo = $modx->getService('pdoFetch');

$resources = $pdo->getCollection(
	'modResource',
	array('parents' => '4499', 'sortby' => 'createdon', 'sortdir' => 'DESC')
);
$tree = array();
foreach ($resources as $resource) {
	$cat = $resource['parent'];	
	$mc = $resource['id'];		
	$tree[$cat][$mc][] = $resource['pagetitle'];
}
return $tree;
Андрей
28 марта 2018, 18:43
0
первый вариант годится только для 2 условий, при большем количестве будет обрезаться, по ссылке выше это разбирали, а мне нужно чтобы условий было неограниченное количество, ну до 20 по крайней мере точно.
Андрей
27 марта 2018, 22:21
+1
в итоге вот рабочий код, может кому поможет
[[!pdoPage?
                         &parents=`9`
                         &depth=`2`
                         &tpl=`tpl.tpl`
                         &sortby=`pagetitle`
                         &sortdir=`ASC`
                         &tvPrefix=``
                         &includeTVs=`test, NameReal, TC`
                         &where=`["test = '5541' OR test = '5172'"]`
                         &limit=`30`
                        ]]
Андрей
27 марта 2018, 21:50
0
на тот сервис у меня антивирус ругается, но да, нужно было вытянуть в одну строку
&where=`["TVtest.value = '5541' OR TVtest.value = '5172'"]`
теперь так
0.0597908: Added where condition: 0=TVtest.value = '5541' OR TVtest.value = '5172', modResource.parent
и выборка теперь дает пустой результат вместо 100%, а в дочерних документам точно есть удовлетворяющие условию.
Андрей
27 марта 2018, 21:30
0
так в логах вообще пропало упоминание про условие
0.0556102: Added where condition: modResource.parent:IN
синтаксис я брал из этого поста, там одинарные кавычки были
Андрей
27 марта 2018, 19:02
0
вот такой
if(!$docs = $modx->getCollection('modResource', array(
    'parent' => 4500,
))){return;}

foreach($docs as $doc){
    $content .= Adr.$doc->get('pagetitle');
}
return $content;
Андрей
27 марта 2018, 10:57
0
В общем, я понял что стандартными средстами не обойтись, написал маленький сниппет, который вывод условие для where вида “Adr:12,Adr:13”, а как можно его сделать корректным “Adr”:“12”,“Adr”:“13”?
Андрей
11 марта 2018, 15:18
0
Скачал дополнение, внес туда публичный и приватный ключ, все делаю как в примере, появляется recaptcha, ставлю галку, но при попытке отправить форму выдает ошибку
Please select the checkbox in the ReCaptcha image.
если убрать recaptcha то форма работает корректно.
Андрей
21 февраля 2018, 09:26
0
я код немного переделал под себя, вот такой точно не выдает ошибку
<?php
$q = $modx->newQuery('modResource');
$q->where(array('pagetitle' => $idsearch));

$resource = $modx->getObject('modResource', $q);

$iddd = $resource->uri;

return $iddd;
Андрей
19 февраля 2018, 23:14
0
Да, конечно.
Андрей
19 февраля 2018, 23:07
0
Роли не имеет. Так все равно больше запросов. На больших объемах это сильно заметно.