dopeless

dopeless

С нами с 29 сентября 2015; Место в рейтинге пользователей: #544
dopeless
29 марта 2020, 21:25
0
О, супер, спасибо.

По поводу квардратных скобок внутри — с ними получается такой результат

Array ( [0] => Array ( [a] => 1 ) [1] => Array ( [b] => 2 ) [2] => Array ( [c] => 3 ) )
Это именно то, что мне нужно )
dopeless
06 августа 2019, 15:07
0
Я сделал. В tplInner оставил только {$wrapper}, а в tpl

<ul class="mobile-nav__secondary">
        {foreach $sections as $idx => $section}
        {var $alias = $section.title | strip | lowercase | replace : " " : "-"}
        <li>
            <a href="{$id | url : ['scheme' => 'full'] : ['goto' => $alias]}">{$section.title}</a>
        </li>
        {/foreach}
        {$wrapper}
    </ul>
dopeless
06 августа 2019, 14:38
0
Не, так не выйдет ничего. [[+wrapper]] строит полностью сабменю —
  • … и так далее. А мне надо всередину пункты дополнительные натыкать ((
dopeless
06 августа 2019, 13:34
0
Попробую, спасибо
dopeless
06 августа 2019, 13:28
0
Так мне перед [[+wrapper]] надо добавить пункты меню вручную, предварительно проверив, есть ли они в том ресурсе, коотрый обрабатывается в данный момент… или в tplParentRow есть плейсхолдер id?
dopeless
06 августа 2019, 13:19
0
Мне надо подгрузить в меню «пункты», которые не являються ресурсами. Грубо говоря, на некоторых страницах есть внутреннее меню, которое скролит страницу на нужное место, но это все один ресурс. Поэтому, я во внутреннем меню проверяю, есть ли на этой странице TV, с таким «меню». И в дальнейшем мне надо сделать что-то типа

{var $scrollMenu = json_decode($id | resource : 'scrollMenu', true)}
<ul class="submenu {$classnames}">
    {if $scrollMenu | len > 0}
        {foreach $scrollMenu as $idx => $item}
        {var $alias = $item.title | strip | lowercase | replace : " " : "-"}
        <li>
            <a href="{$id | url : ['scheme' => 'full'] : ['goto' => $alias]}">{$item.title}</a>
        </li>
        {/foreach}
    {/if}
   {$wrapper}
</ul>
И меню в дальнейшем должно выглядеть как-то так:

— Услуги (ресурс 1)
— — Покраска (ресурс 2, скрол на раздел покраска)
— — Рихтовка (ресурс 2, скрол на раздел рихтовка)
— — Полировка (ресурс 2, скрол на раздел полировка)
— — Продажа инструментов (ресурс 3)

Можно, конечно, подргружать дополнительные пункты яваскриптом, но хотелось обойтиись без дополнительного js
dopeless
06 августа 2019, 13:06
0
Нет. не инлайн. Отдельный чанк.

При чем, если я пишу что-то вроде

{var $rid = '[[+id]]'}, а потом вывожу, как {$rid} — он выводит правильное значение. Только в $rid он сохраняет всю конструкцию [[+id]], а уже потом ее обрабатывает
dopeless
06 августа 2019, 12:48
0
Хм… спасибо.
Только непонятно, почему тогда [[+id]] работает…
dopeless
25 июля 2019, 14:09
0
Есть компонент, созданный при помощи MIGx. Необходима возможность добавлять фотографии к каждой записи. MIGx может поттягивать для ввода любые TV, а потом сохранять значения в соответствующем поле своей кастомной таблицы.
dopeless
25 июля 2019, 13:53
0
Из всего этого, на сколько я понимаю, как TV может работать только Gallery, и то, на работает она нормально в MIGx
dopeless
25 июля 2019, 13:06
0
Я знаю, что мигкс это умеет, но у клиента много фотографий в галереях, и, например, сортировать их неудобно. Поэтому хотел прикрутить что-то, что выглядит более «цивильно».
dopeless
15 мая 2019, 17:07
0
Нет, так то же самое…

Could not process query, error #1054: Unknown column 'tv.articleCat' in 'on clause'

На всякий случай попробовал так

«on»: "`modResource`.`tv.articleCat` = `Category`.`id`"

Тоже не работает…
dopeless
15 мая 2019, 15:48
0
Похоже, эта опечатка попала в код уже когда постил сюда. Еще раз попробовал все варианты (с правильной раскладкой) — не работает.
dopeless
15 мая 2019, 14:04
0
Could not process query, error #1054: Unknown column 'modResource.TVarticleСat' in 'on clause'

как бы не называл TV — всегда эта ошибка. Если значение TV подставляю вручную (просто цифру ставлю) — тогда все работает правильно. Вот весь лог, если что (там учавствуют еще несколько полей, которые я убрал в запросе для упрощения)
0.0000930: Loaded model "blog" from "/core/components/blog/model/"
0.0000751: pdoTools loaded
0.0000298: xPDO query object created
0.0006292: Included list of tvs: mainImage, articleSnippetMainTitle, articleSnippetSubTitle, articleCat, blogEvent
0.0002899: leftJoined Category as Category
0.0002029: leftJoined modTemplateVarResource as TVmainimage
0.0002129: leftJoined modTemplateVarResource as TVarticlesnippetmaintitle
0.0001860: leftJoined modTemplateVarResource as TVarticlesnippetsubtitle
0.0001919: leftJoined modTemplateVarResource as TVarticlecat
0.0002239: leftJoined modTemplateVarResource as TVblogevent
0.0000219: Added selection of modResource: 
                        modResource.pagetitle,
                        Category.id as cat_id,
                        Category.title as cat_title
                    
0.0000060: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.mainImage`
0.0000050: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.articleSnippetMainTitle`
0.0000031: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.articleSnippetSubTitle`
0.0000031: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.articleCat`
0.0000041: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.blogEvent`
0.0000062: Replaced TV conditions
0.0005529: Processed additional conditions
0.0008540: Added where condition: id:NOT IN(14,11,12,13,11,11,11,11), modResource.parent:IN(8,11,12,13,14,15), modResource.published=1, modResource.deleted=0
0.0000060: Replaced TV conditions
0.0000820: Sorted by modResource.publishedon, DESC
0.0000021: Limited to 10, offset 0
0.0002198: SQL prepared "SELECT modResource.pagetitle, Category.id as cat_id, Category.title as cat_title, IFNULL(`TVmainimage`.`value`, '') AS `tv.mainImage`, IFNULL(`TVarticlesnippetmaintitle`.`value`, '') AS `tv.articleSnippetMainTitle`, IFNULL(`TVarticlesnippetsubtitle`.`value`, '') AS `tv.articleSnippetSubTitle`, IFNULL(`TVarticlecat`.`value`, '') AS `tv.articleCat`, IFNULL(`TVblogevent`.`value`, '') AS `tv.blogEvent` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_migx_blog_categories` `Category` ON tv.articleCat = Category.id LEFT JOIN `modx_site_tmplvar_contentvalues` `TVmainimage` ON `TVmainimage`.`contentid` = `modResource`.`id` AND `TVmainimage`.`tmplvarid` = 23 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVarticlesnippetmaintitle` ON `TVarticlesnippetmaintitle`.`contentid` = `modResource`.`id` AND `TVarticlesnippetmaintitle`.`tmplvarid` = 24 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVarticlesnippetsubtitle` ON `TVarticlesnippetsubtitle`.`contentid` = `modResource`.`id` AND `TVarticlesnippetsubtitle`.`tmplvarid` = 25 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVarticlecat` ON `TVarticlecat`.`contentid` = `modResource`.`id` AND `TVarticlecat`.`tmplvarid` = 33 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVblogevent` ON `TVblogevent`.`contentid` = `modResource`.`id` AND `TVblogevent`.`tmplvarid` = 34 WHERE  ( `modResource`.`id` NOT IN (14,11,12,13,11,11,11,11) AND `modResource`.`parent` IN (8,11,12,13,14,15) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY modResource.publishedon DESC LIMIT 10 "
0.0023592: Could not process query, error #1054: Unknown column 'tv.articleCat' in 'on clause'
0.0058780: Total time
2 097 152: Memory usage
dopeless
19 февраля 2019, 21:58
0
Короче, когда я захожу через фронтенд, то сессия вешается именно на путь, через который заходил. Например /en/ а к файлу коннектора я обращаюсь без этого пути, вот у него и нет никакой сессии. Можно как-то сделать так, чтобы сессия работала на весь фронтенд?
dopeless
19 февраля 2019, 21:37
0
Вылогинился и снова залогинился, и снова не работает ((( что происходит?
dopeless
19 февраля 2019, 21:36
0
Так, стоп, я сейчас снова настроил все, как было до этого, и все работает… похоже просто какой-то глюк был… Но все равно, может есть какие-то идеи, в чем может быть причина?
dopeless
19 февраля 2019, 21:33
0
Я нашел, в чем проблема! В мультиязычности сайта. Есть два контекста, управляет babel. Одна версия сайта www.mysite.com/en/, вторая www.mysite.com/de/. Если я настраиваю так, чтобы одна из версий работала прочто как www.mysite.com — то в таком виде все начинает работать. Пользователь грузится, все ок.

Пока не могу придумать, как заставить работать. Может есть идеи?
dopeless
19 февраля 2019, 15:31
0
Пробую вручную

$modx->switchContext('web');
ничего не дает. Но контроллер и так в контексте web работает.
И он уже в контроллере не видит, что пользователь залогинен во фронтенд

$modx->user->hasSessionContext('mgr')
возвращает true, если пользователь в админке. А в фронтенд контекстах он пользователя не видит, в независимости от того, залогинен он или нет. Так же само, как он не видит, если я вручную логиню пользователя в конектс mgr. Пока пользователь не залогинен в менеджер, все контексты возвращають false.

Впечатление, что существують параллельно два объекта пользователя.

Но даже если я вручную загружаю нужного пользователя в коннекторе

$user = $modx->getObject('modUser', 1);
trigger_error('user has context: '.$user->hasSessionContext('mgr'), E_USER_WARNING);
Все равно он видит только контекст mgr, если пользователь в менеджере.
dopeless
19 февраля 2019, 13:34
0
Но
$modx->context->get('key')

в коннекторе возвращает web, а вот пользователя в том же месте нет, так же, как и в процессоре.

Пойду посмотрю пример, спасибо