pdoCrumbs запоминает только одну страницу в кеше
        Приветствую!
В общем проблема следующая:
— Есть вызов Крошек:
А теперь немного МАГИИ.
Если зайти на страницу любого элемента и обновить кеш или сохранить любой ресурс в админке, то ВУОЛЯ «Раздел» появляется в навигации, НО только на том ресурсе на котором остановился наблюдатель… т.е. получается что то вроде этого:
Элемент раздела 1 — Наблюдатель тут, после обновления КЕШ или сохранении любого ресурса, получается так:
Главная > Раздел 1 > Элемент раздела 1
а в разделе 2 все по прежнему:
Главная > Элемент раздела 2
НО! Если наблюдатель находится в Элементе раздела 2, то будет так:
Главная > Раздел 2 > Элемент раздела 2
Главная > Элемент раздела 1
Вопрос, а зачему так?
П.С.
Что попробовал:
— Обычный вызов пдоКрумбс ничего не дает, все так же
— Заморозка/Разморозка URI ничего не дает
П.П.С.
Точнее даже не так. Симптомы проявляются на той странице, которую я перезагружаю первой, сразу после того, как сохраню любой ресурс или очищу кеш!
#UPD1
все, разобрался, пользовался этой заметкой для оптимизации
modx.pro/solutions/22267
и взял этот код:
    
    
                                                                                
            В общем проблема следующая:
— Есть вызов Крошек:
{var $curenturl = $.get.tag ? '<span class="breadcrumbs__link" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
    <a class="g-link" href="{$link}" title="{$menutitle}" itemprop="item">
        <span itemprop="name">{$menutitle}</span>
        <meta itemprop="position" content="{$idx}">
    </a>
</span>
<span class="breadcrumbs__link">'~$.get.tag~'</span>' : '<span class="breadcrumbs__link">{$menutitle}</span>'}
{$_modx->runSnippet('pdoCrumbs', [ 
    'showAtHome' => 0,
    'showHome' => 1,
    'tplWrapper' => '@INLINE <div class="breadcrumbs" itemprop="http://schema.org/breadcrumb" itemscope="" itemtype="http://schema.org/BreadcrumbList">{$output}</div>',
    'tpl' => '@INLINE <span class="breadcrumbs__link" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
                        <a class="g-link" href="{$link}" title="{$menutitle}" itemprop="item">
                            <span itemprop="name">{$menutitle}</span>
                            <meta itemprop="position" content="{$idx}">
                        </a>
                      </span>',
    'tplCurrent' => '@INLINE '~$curenturl,
])}По какой то причине, Крошки строятся только от текущего документа до корня сайт (до главной), т.е.:- Должно быть так :
 - Главная > Раздел > Элемент раздела
 - А выводит так :
 - Главная > Элемент раздела
 
А теперь немного МАГИИ.
Если зайти на страницу любого элемента и обновить кеш или сохранить любой ресурс в админке, то ВУОЛЯ «Раздел» появляется в навигации, НО только на том ресурсе на котором остановился наблюдатель… т.е. получается что то вроде этого:
Элемент раздела 1 — Наблюдатель тут, после обновления КЕШ или сохранении любого ресурса, получается так:
Главная > Раздел 1 > Элемент раздела 1
а в разделе 2 все по прежнему:
Главная > Элемент раздела 2
НО! Если наблюдатель находится в Элементе раздела 2, то будет так:
Главная > Раздел 2 > Элемент раздела 2
Главная > Элемент раздела 1
Вопрос, а зачему так?
П.С.
Что попробовал:
— Обычный вызов пдоКрумбс ничего не дает, все так же
— Заморозка/Разморозка URI ничего не дает
П.П.С.
Точнее даже не так. Симптомы проявляются на той странице, которую я перезагружаю первой, сразу после того, как сохраню любой ресурс или очищу кеш!
#UPD1
все, разобрался, пользовался этой заметкой для оптимизации
modx.pro/solutions/22267
и взял этот код:
if( ! empty( $modx->context->resourceMap ) ) {
  $options = [ xPDO::OPT_CACHE_KEY => 'context_settings/' . $modx->context->key ];
  if( $val = $modx->getCacheManager()->get( 'context', $options ) ) {
      $val[ 'resourceMap' ] = [];
      $modx->getCacheManager()->set( 'context', $val, 0, $options );
  }
}Собственно этот плагин и мешал крошкам!    Комментарии: 7
                и да… гребаная квантовая физика… но такие дела            
                    
                Час назад использовал этот сниппет и все норм, строит крошки включая все разделы и подразделы.
Проверьте, опубликованы ли ваши ресурсы? Будучи авторизованным в контексте mgr вы будете их видеть как пользователь, но хлебные крошки не будут строится для неопубликованных.
                    Проверьте, опубликованы ли ваши ресурсы? Будучи авторизованным в контексте mgr вы будете их видеть как пользователь, но хлебные крошки не будут строится для неопубликованных.
                они все опубликованы и тут начинается самое интересное!
Если открыть страницу в (ВНИМАНИЕ) Режиме инкогнито, не логиниться НИГДЕ, то хлебная крошка тоже появляется появляется :DDD
                    Если открыть страницу в (ВНИМАНИЕ) Режиме инкогнито, не логиниться НИГДЕ, то хлебная крошка тоже появляется появляется :DDD
                Никакой магии и квантовой физики, всего лишь нужно вызывать такие сниппеты НЕКЕШИРОВАННЫМИ, т.е.
{$_modx->runSnippet('!pdoCrumbs', options}
                    {$_modx->runSnippet('!pdoCrumbs', options}
                А вот это забыл в П.С. записать
Это тоже не работает :DDD
                    Это тоже не работает :DDD
                все, разобрался, пользовался этой заметкой для оптимизации
modx.pro/solutions/22267
и взял этот код:
                    modx.pro/solutions/22267
и взял этот код:
if( ! empty( $modx->context->resourceMap ) ) {
  $options = [ xPDO::OPT_CACHE_KEY => 'context_settings/' . $modx->context->key ];
  if( $val = $modx->getCacheManager()->get( 'context', $options ) ) {
      $val[ 'resourceMap' ] = [];
      $modx->getCacheManager()->set( 'context', $val, 0, $options );
  }
}Собственно этот плагин и мешал крошкам!            
                Я тоже пробовал так оптимизировать, но столкнулся с этой же проблемой.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.