Всего 125 678 комментариев

Alexey
16 декабря 2020, 13:06
0
<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnBeforeDocFormSave':
        //$resource = $modx->getObject('modResource', $id);
        $resourceAlias = $resource->get('alias');
        $resourceParent = $modx->getObject('modResource', $resource->get('parent'));
        if ($resourceParent) {
            $resourceParentAlias = $resourceParent->get('alias');
            
            $resourceParentIsTabsContainer = $resourceParent->getTVValue('resourceTabsContainer');
            
            if ($resourceParentIsTabsContainer) {
                $resource->set('uri_override', true);
                $resource->set('uri', $resourceParentAlias.'#'.$resourceAlias);
                
                //$resource->save();
            }
        }
        break;
}

Плагин меняет URI, делает его замороженным, если tv-поле родителя ресурса равно true.

Едиственный момент: в этом плагине я закомментил первую и последнюю сроки — они по факту не нужны

Вот такой код корректно всё отрабатывает: URI меняет сразу. У тебя не так? Где не так? На фронте или в админке? Прошу конкретики
Николай Савин
16 декабря 2020, 11:18
0
Обновление MODX никак не может быть связано с иконками.
Скорее всего где то вы начали авторизовываться, и у вас пропал блок логин, вместо него по идее должен быть блок выхода. Может что то с чанками.
Короче тут гадать только можно, не видя проект.
Никита Боднар
16 декабря 2020, 10:07
0
Уже убрал это событие. Думал, что поможет в решении проблемы.
Maxim
16 декабря 2020, 09:48
0
Здравствуйте!
Я обновил modx до последней версии 2.8.1-pl
Стало только хуже, теперь в блоке login нет иконок соцсетей совсем. А на версии 2.3.6 они были.
Alexey
16 декабря 2020, 09:33
0
А для чего повешено на событие OnDocFormPrerender?
Альберт
16 декабря 2020, 09:06
0
Выяснилось, что это под первым админом такое происходит. Созданный новый пользователь с правами админа их видит.
Aleksandr Huz
16 декабря 2020, 08:58
0
Посмотри какой родитель у товаров
Sergey (Sentinel)
15 декабря 2020, 22:20
1
0
@Павел Гвоздь Паш подскажи плиз
вывожу опцию
<div class="form-group create" >
    <label>Для кого</label>
    <input type="hidden" class="form-control [ js-ms2f-combobox-auto ]" name="options-for_whom">
  </div>
но в админке вот так



как правильно прописать?
Влад
15 декабря 2020, 21:46
0
Спасибо! Помогло!
Никита Боднар
15 декабря 2020, 19:11
0
<?php
$resource = $modx->getObject('modResource', $id);
$resourceAlias = $resource->get('alias');

$resourceParent = $modx->getObject('modResource', $resource->get('parent'));

if ($resourceParent) {
    $resourceParentAlias = $resourceParent->get('alias');
    
    $resourceParentIsTabsContainer = $resourceParent->getTVValue('resourceTabsContainer');
    
    if ($resourceParentIsTabsContainer) {
        $resource->set('uri_override', true);
        $resource->set('uri', $resourceParentAlias.'#'.$resourceAlias);
        
        $resource->save();
    }
}
Артур Шевченко
15 декабря 2020, 18:14
0
Посмотрите есть в плагине переменная id, если есть то смотрите что в ней. Ещё можно посмотреть что в массиве $_POST, какой-то идентификатор ресурса, за который отдают голос, должен быть. И тогда через $modx->getObject получайте этот ресурс и меняйте значение ТВ.<cut/>
Владислав
15 декабря 2020, 17:11
0
Просто смотрите, этим кодом я записываю же в текущий ресурс?, а текущий ресурс это главная страница куда всё выводится, а нужно записывать в TV поле выведенной страницы
'likes' => $_modx->resource['likes'],
'dislikes' => $_modx->resource['dislikes'],
'rating' => $_modx->resource['rating'],
Владислав
15 декабря 2020, 17:06
0
imgur.com/a/6fuc4pW
Артур, спасибо что помогаете! Вот структура, всё выводиться на главную страницу, с категорий РОК, ПОП и РЭП, на страницах Тест3-3, Тест2-2 и т.д. TV поле rating куда нужно записывать всё.
Владислав
15 декабря 2020, 17:03
0
15.12.2020 16:59:41 ERROR /home/httpd/vhosts/httpdocs/core/model/modx/modcachemanager.class.php 399
Error caching action map mgr/actions
Артур Шевченко
15 декабря 2020, 16:08
0
Понятно, в логах что-то есть? Вы проверяли плагин вообще отрабатывает? Что в него приходить? Что он отдает? Если нет, то очищаете журнал ошибок, потом меняете код плагина так
switch ($modx->event->name) {
    case "xLikeOnVote":
        $modx->log(1, 'Смотрим что в class пришло ' . $class);
         $modx->log(1, 'Смотрим что в list пришло ' . $list);
        if ($class == 'modResource' && $list == 'default') {
            if ($resource = $modx->getObject($class, array('id' => $parent))) {
                $modx->log(1, 'Проверяем дошли ли мы до этой строки и что в rating ' . $rating);
                $resource->setTVValue('rating', $rating);
                $resource->save();
            }
        }
        break;
}
И смотрите что будет в журнале ошибок после того как отработает плагин.
Илья
15 декабря 2020, 16:07
0
Да, спасибо так и сделал все заработало
Илья
15 декабря 2020, 16:06
0
Большое спасибо все заработало. Ваш совет помог.
Alexey
15 декабря 2020, 15:26
0
Код плагина в студию
Никита Боднар
15 декабря 2020, 15:19
0
Безрезультатно.