Владимир Бабусенко

Владимир Бабусенко

С нами с 11 ноября 2014; Место в рейтинге пользователей: #204
Владимир Бабусенко
14 марта 2016, 16:18
0
Схему лучше приложу (сокращеную)
<object class="TechnicalSolutions" table="mstr_solution" extends="xPDOSimpleObject">        
	<composite alias="DataFilesSolution" local="id" class="DataFilesSolution" foreign="solution_id" cardinality="many" owner="local" />        
</object>

<object class="DataFilesSolution" table="mstr_solution_data_files" extends="xPDOSimpleObject">
	<field key="solution_id" dbtype="int" precision="10" phptype="integer" null="false" />            

	<aggregate alias="SolutionDataFiles" class="TechnicalSolutions" local="solution_id" foreign="id" cardinality="one" owner="foreign" />
	<composite alias="DownloadFileSolution" local="id" class="DownloadFileSolution" foreign="file_id" cardinality="many" owner="local" />
</object>

<object class="DownloadFileSolution" table="mstr_solution_data_files_download" extends="xPDOSimpleObject">
	<field key="file_id" dbtype="int" precision="10" phptype="integer" null="false" />

	<aggregate alias="FileSolutionDownload" class="DataFilesSolution" local="file_id" foreign="id" cardinality="one" owner="foreign" />
</object>
Владимир Бабусенко
19 февраля 2016, 14:05
+1
Спасибо Сергей, ваш вариант тоже думаю вполне рабочий и проще, чем то что я хотел сделать. Но Павел Романов предложил вообще вариант одной строчкой заложенной Василием в логику pdoMenu.
ЗЫ: Как чувствовал, что усложняю, то что проще можно сделать, не зря решил написать...)
Владимир Бабусенко
19 февраля 2016, 14:01
+1
Павел благодарю, то что нужно, куда мои глаза смотрели.....) Только разве не достаточно указать?
&hideSubMenus = `1`
При таком варианте отображается как надо… уже проверил
Владимир Бабусенко
18 февраля 2016, 15:02
0
Так выведутся все объкты
foreach($pages as $doc => $id){
    var_dump ($doc);
}
Пиши лучше так с var_dump или c print_r:
foreach($pages as $doc){
    var_dump ($doc->toArray());
}
Доступ к полю получишь через $doc->get('field');

ЗЫ: А так Сергей правильно написал, посмотри, может у тебя ничего не находит, соответственно и выводить нечего.
Владимир Бабусенко
18 февраля 2016, 11:52
+1
Как я понимаю, ваш подставленный класс не загружен. Повторюсь еще раз моя модель загружен в extentionPackage.
И при запросе через $modx->newQuery() работает. Вы же не станете утверждать что модель не загружена?
Владимир Бабусенко
18 февраля 2016, 11:42
0
Update. Взял ваш код и подставил свой класс и получил ожидаемую ошибку
Could not load class: oneBookingObjects from mysql.onebookingobjects.

Я не совсем зеленый. Конечно будет ошибка, если вы мой код и модель возмете (ее то у вас нету). Вы проверьте на системной модели, или на какой либо своей загруженной модели.
Владимир Бабусенко
18 февраля 2016, 11:39
0
Я не первый год замужем, с модексом достаточно давно работаю. Модели загружены.
Владимир Бабусенко
18 февраля 2016, 11:06
+1
Спасибо, в вопросе я писал что при таком варианте ошибки нет, меня интересовала выборка объектом xPDO, а не PDO.
Владимир Бабусенко
18 февраля 2016, 11:02
0
Все банально оказалось, смотрите ответ Василия. Вы можете сами попробовать например выбрать из таблицы `modx_site_content` выбрать какое либо поле, какого либо ресурса, без указания в выборке поля id, будет 502 ошибка.
Владимир Бабусенко
18 февраля 2016, 10:59
0
Василий как всегда прав. Это видимо особенность xPDO. Уже вчера (вернее сегодня ночью) дошел до этого «методом тыка».
ЗЫ: Хотя странное поведение, как я понимаю при таком запросе даже если мы перечисляем поля, возметься объект полностью со всеми полями.
Владимир Бабусенко
03 февраля 2016, 14:45
0
Это Глебу надо...., лучше ему ответить, так придет ему письмо об ответе.
Владимир Бабусенко
03 февраля 2016, 14:09
0
Сорри, без понятия. Еще не сталкивался с fenom, времени небыло. Может кто знает ответит.
Владимир Бабусенко
02 февраля 2016, 23:32
0
Попробуй некэширумо вызывать pdoMenu
Владимир Бабусенко
01 февраля 2016, 23:38
+1
Вот навалял, Выводит категорию, подкатегорию и 3 ресурса
[[!pdoMenu?
    &parents = `1`
    &level = `2`
    &displayStart = `1`
    &levelClass = `level`
    &firstClass =``
    &lastClass = ``
    
    &tplOuter = `@INLINE    <div class="out">[[+wrapper]]</div>`
    &tplParentRow = `@INLINE    <div class="block-cat">
                                        <p>[[+menutitle]]-Подкатегория</p>
                                    [[+wrapper]]
                                </div>`
    &tplInner = `@INLINE    <div class="items">
                                [[+wrapper]]
                            </div>`
    &tplInnerRow =  `test`
   
]]
Чанк «test», т.к. фильтры обязательно в чанк. В нем прописанно кол-во выводимых ресурсов, в данном случае 3.
[[+classes:is=`class="level3"`:then=`
    [[+idx:islte=`3`:then=`
        <div><a href="">[[+menutitle]]-Ресурс</a></div>
    `]]
`]]
Владимир Бабусенко
01 февраля 2016, 22:36
0
Сорри, хотел ответить Максиму Кузнецову. Это для него.
Почему? Можно например использовать &levelClass, и по нему определять какой уровень вложенности с помощью фильтров.
Владимир Бабусенко
01 февраля 2016, 22:34
0
Возможно сделать такое на pdoMenu без стороних снипетов. Посмотри мою недавную тему, она очень похоже на твою, за исключением того, что мне подкатегории >3 нужно было оборачивать в див. В твоем случае просто ничего не выводить.
modx.pro/help/7710/
Возникнут вопросы пиши.