Андрей

Андрей

С нами с 28 октября 2016; Место в рейтинге пользователей: #316
Андрей
04 февраля 2018, 11:42
0
без разницы, такое ощущение что он вообще не учитывает
'parents' => 10
у меня была ошибка, там не было запятой, но это ничего не изменило. пробовал id родителя и в кавычки заключать — результат одинаковый. даже если я меняю id родителя — все равно выводятся те же самые ресурсы.
Андрей
03 февраля 2018, 12:33
0
Пытаюсь вывести 2 категории вместе
{set $category1 = '!pdoPage' | snippet : [
	'parents' => 0 //тут нужная категория
	'includeContent' => 1,
	'tpl' => '@INLINE {$pagetitle}',
	'where' => [
		'pagetitle:LIKE' => '%'~ $.get.search | escape ~'%',
		'OR:introtext:LIKE' => '%'~ $.get.search | escape ~'%',
		'OR:content:LIKE' => '%'~ $.get.search | escape ~'%'
	] | toJSON
]}

{if $category1?}
	<div>В каткгории 1 найдено:</div>
	{$category1}
{/if}

{set $category2 = '!pdoPage' | snippet : [
	'parents' => 10 //тут нужная категория
	'includeContent' => 1,
	'tpl' => '@INLINE {$pagetitle}',
	'where' => [
		'pagetitle:LIKE' => '%'~ $.get.search | escape ~'%',
		'OR:introtext:LIKE' => '%'~ $.get.search | escape ~'%',
		'OR:content:LIKE' => '%'~ $.get.search | escape ~'%'
	] | toJSON
]}

{if $category2?}
	<div>В каткгории 1 найдено:</div>
	{$category2}
{/if}
но второй вывод дублирует первый, хотя значения parents разные и во втором parents точно нет таких ресурсов.
Андрей
17 января 2018, 11:15
0
'tvPrefix' => ''
точно же!
Андрей
17 января 2018, 10:02
0
в моем вопросе было 2 подвопроса, я видимо их недостаточно четко выделил.
1. как вывести TV параметры при поиске по pagetitle например. То есть сам поиск работает, pagetitle выводится, а TV параметра этого же ресурса — нет
2. да, поиск по самим TV парметрам
по логу все верно, насколько я могу судить
.0003102: pdoTools loaded
0.0000761: xPDO query object created
0.0009470: Included list of tvs: Adr, NameReal, URL
0.0004930: leftJoined modTemplateVarResource as TVadr
0.0004148: leftJoined modTemplateVarResource as TVnamereal
0.0003688: leftJoined modTemplateVarResource as TVurl
0.0005469: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `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.0000148: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.Adr`
0.0000100: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.NameReal`
0.0000091: Added selection of modTemplateVarResource: IFNULL(`value`, 'нет') AS `tv.URL`
0.0000210: Replaced TV conditions
0.2391658: Processed additional conditions
0.2410922: Added where condition: pagetitle:LIKE=%авто%, OR:content:LIKE=%авто%, modResource.id:NOT IN(999,1002,1001), modResource.parent:IN(998,999,1001,1002,1067,1068,1069,1070,1599,1641,1642,1643,1644,1645,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3755,3756,3757), modResource.published=1, modResource.deleted=0
0.0000241: Replaced TV conditions
0.0002000: Sorted by modResource.pagetitle, ASC
0.0000050: Limited to 10, offset 0
0.0057361: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `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(`TVtstadr`.`value`, '') AS `tv.TstAdr`, IFNULL(`TVtstnamereal`.`value`, '') AS `tv.TstNameReal`, IFNULL(`TVtstmcc`.`value`, '') AS `tv.TstMCC`, IFNULL(`TVtsturl`.`value`, 'нет') AS `tv.TstURL` FROM `LdfDfd3mc_site_content` AS `modResource` LEFT JOIN `LdfDfd3mc_site_tmplvar_contentvalues` `TVtstadr` ON `TVtstadr`.`contentid` = `modResource`.`id` AND `TVtstadr`.`tmplvarid` = 5 LEFT JOIN `LdfDfd3mc_site_tmplvar_contentvalues` `TVtstnamereal` ON `TVtstnamereal`.`contentid` = `modResource`.`id` AND `TVtstnamereal`.`tmplvarid` = 6 LEFT JOIN `LdfDfd3mc_site_tmplvar_contentvalues` `TVtstmcc` ON `TVtstmcc`.`contentid` = `modResource`.`id` AND `TVtstmcc`.`tmplvarid` = 7 LEFT JOIN `LdfDfd3mc_site_tmplvar_contentvalues` `TVtsturl` ON `TVtsturl`.`contentid` = `modResource`.`id` AND `TVtsturl`.`tmplvarid` = 8 WHERE  ( `modResource`.`pagetitle` LIKE '%авто%' OR `modResource`.`content` LIKE '%авто%' AND `modResource`.`id` NOT IN (999,1002,1001) AND `modResource`.`parent` IN (998,999,1001,1002,1067,1068,1069,1070,1599,3756,3757) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY modResource.pagetitle ASC LIMIT 10 "
0.0270789: SQL executed
0.0057619: Total rows: 102
0.0001559: Rows fetched
0.0121310: Prepared and processed TVs
0.0090630: Loaded "modChunk" with name "SmartSearchTST.tpl"
0.0431590: Compiled Fenom chunk with name "modchunk/14"
0.0529652: Returning processed chunks
0.3491061: Total time
16 252 928: Memory usage
вывожу TV также как
{$adr}
Андрей
17 января 2018, 09:08
0
Еще вопрос по работе с TV
добавил в выборку TV параметры, по аналогии
'includeTVs' => 'Adr, NameReal, URL',
но ничего не выводится
и как прописать в условии поиска поиск по TV параметрам?
'OR:introtext:LIKE' => '%'~ $.get.search | escape ~'%',
Андрей
16 января 2018, 20:22
0
Круть! Работает. С этой стороны я бы не догадался подойти. Спасибо!
Андрей
14 января 2018, 22:52
0
похоже на то, я пытался нарисовать сам этот контейнер + вызывал TV без &tvPrefix=`tv.`
вопрос решен в общем
Андрей
14 января 2018, 19:11
0
согласен. посмотрел в статистику — мое творение в 4 раза больше запросов с БД генерит, на больших выборках разница во времени очень заметна.
Андрей
14 января 2018, 11:38
0
а вот на счет Collections — отличный вариант, жаль сразу не пришло в голову, я его считал просто альтернативным вариантом отображения админки
Андрей
14 января 2018, 11:20
0
Заморозка url — это мне наду будет вручную прописать все url для каждого элемента?
Андрей
12 января 2018, 20:23
0
да я и до этого добавлял и роботс указывал — нет его и все тут, в рекомендациях пишет что надо добавить.
ладно, добавлю еще раз, может яндекс до этого глючил.
Андрей
09 января 2018, 20:35
0
Спасибо, я решил вот так
[[!pdoResources?
                         &parents=`2`
                         &depth=`3`
                         &limit=`1`
                         &tpl=`tpl.url`
                         &where=`{"pagetitle":"[[+tv.rrr]]"}`
                        ]]
меня тоже озарило)
учитывая что id для меня не самоцель, а этап для получения урл ресурса, мне кажется это более подходящий вариант
Андрей
08 января 2018, 14:25
0
Спасибо!
Андрей
05 января 2018, 18:44
0
в общем прошлый скрипт почему-то работал до первой запятой в тексте и требовал csv в одну строку, в процессе борьбы с этими проблемами скрипт чуть изменился. Вот итоговый вариант, может кому пригодится. Создал 900 страниц за 1 минуту
<?php
require_once '/путь/до/data/www/конфига/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');
$csvArray = array();
$csvData = file_get_contents(MODX_ASSETS_PATH . 'file.csv');
$lines = explode(PHP_EOL, $csvData);
foreach ($lines as $line) {
	$csvArray[] = str_getcsv($line, ';');
}

  for ($i = 0; $i <= count($csvArray)-1; $i++) 
  { 
	$response = $modx->runProcessor('resource/create', array(
		'pagetitle' => $csvArray[$i][0],
		'description' => 'описание '.$csvArray[$i][0],
		'tv1' => $csvArray[$i][1],
		'tv2' => $csvArray[$i][2],
		'introtext' => '',
		'content' => '',
		'alias' => 'info-'.$csvArray[$i][0],
		'template' => 3,
		'published' => 1,
		'parent' => 2,
		'hidemenu' => 1
	));    
  }
  ?>
скрипт нужно положить где-то на сервере и запустить через консоль
php /путь/до/скрипта/скрипт.php
соответственно он из файла file.csv создаст кучу ресурсов.
Спасибо Михаилу за помощь!
Андрей
05 января 2018, 02:43
0
в итоге получился вот такой код
$csv = array_map('str_getcsv', file(MODX_ASSETS_PATH . 'user.csv'));

foreach($csv as $key){
    $key = str_getcsv($key[0], ';');
}

  for ($i = 0; $i <= count($key)-1; $i++) 
  { 
        $response = $modx->runProcessor('resource/create', array(
	'pagetitle' => $key[$i],
	'longtitle' => $key[$i+1],
	'description' => '',
	'introtext' => '',
	'content' => '',
	'alias' => $key[$i],
	'template' => 3,
	'published' => 1,
	'parent' => 2,
	'hidemenu' => 1
	
));    
    $i=$i+1;
для простоты я пока оставил только 2 поля, все равно планируется регулярное обновление тогда и добавлю TV параметр.
Все работает, только почему-то за раз добавляется 145 ресурсов. Это конечно лучше чем по одному и руками, но все равно хочется разобраться как это делать для любого количества элементов.
Андрей
03 января 2018, 14:13
0
Да. Оригинал в табличке xls, оттуда можно с любыми разделителями сформировать.
Андрей
17 декабря 2017, 20:07
0
разобрался, Fenom нужно было отдельно включить в настройках
Андрей
17 декабря 2017, 18:28
0
да, я ж оттуда и взял tplCSS, но чтобы там не прописывал — ничего не подтягивается, там собственно по дефолту уже есть h1 и даже он не работает.
в итоге заработало только принудительное прописывание стилей каждому элементу.
Андрей
17 декабря 2017, 17:18
0
а какие ограничение по размеру отправляемого файла здесь?
upload_max_filesize:12М, но даже 8М с чем-то не пролазит, а более мелкий размер, до 1мегабайта — легко.
Андрей
17 декабря 2017, 15:10
0
еще вопрос по генерации pdf возник — а как сделать нужное форматирование?
по умолчанию он заголовки понимает, жирный там, а свои стили я и в tplCSS и свой шаблон создавал и указывал его при вызове FormIT и в шаблоне tpl.PDF прописывал — ноль результат, такое ощущение что где-то есть еще параметр разрешающий использовать свой CSS