Wassi Wassinen

Wassi Wassinen

С нами с 25 января 2013; Место в рейтинге пользователей: #37

Ошибка Fenom "Tokenizer" после перехода на php 7.4

Всех с Новым Годом :)
На праздниках решил переехать на php7.4 и столкнулся вот с такой ошибкой:
joxi.ru/LmGexePSwkydVA

Notice: Trying to access array offset on value of type null in /core/components/pdotools/vendor/fenom/fenom/src/Fenom/Tokenizer.php on line 257
Кто-нибудь встречал на своих проектах? С чем может быть связано?
Сервер работает на nginx + php-fpm. Как только откатываюсь на php7.2 — всё хорошо.
Wassi Wassinen
02 января 2021, 20:35
modx.pro
134
0

Подправить сниппет subscribeAuthor

2 1 000
В своё время @tolanych написал по моей просьбе такой сниппет для подписки на авторов:

<?php
/** @var array $scriptProperties */
/** @var Tickets $Tickets */
$Tickets = $modx->getService('tickets', 'Tickets', $modx->getOption('tickets.core_path', null,
        $modx->getOption('core_path') . 'components/tickets/') . 'model/tickets/', $scriptProperties);

if (!$Tickets->authenticated || empty($scriptProperties['createdby'])) {
    return '';
}

if (!empty($scriptProperties['TicketsInit'])) {
    $Tickets->initialize($modx->context->key, $scriptProperties);
}

if ($profile = $modx->getObject('TicketAuthor', array('id' => $scriptProperties['createdby']))) {
    $properties = $profile->get('properties');
    if (!empty($properties['subscribers'])) {
        $found = array_search($modx->user->id, $properties['subscribers']);
        $subscribed = ($found == false) ? 0:1;
    }
}

$tpl = $modx->getOption('tpl', $scriptProperties, 'tpl.Tickets.author.subscribe');
$data = [
    'author_id' => $scriptProperties['createdby'],
    'subscribed' => $subscribed
];
$output = $Tickets->getChunk($tpl, $data);

// Return output
if (!empty($toPlaceholder)) {
    $modx->setPlaceholder($toPlaceholder, $output);
} else {
    return $output;
}
Как в старой сказке — до обновления MODx всё было хорошо. Почти. Ругался в лог, но работало.
Теперь выдаёт такую ошибку:
Undefined variable: subscribed in www/core/cache/includes/elements/modsnippet/142.include.cache.php

Я так понимаю, из-за того, что в сниппете он не объявил $subscribed, если здесь не выполнен IF:
if (!empty($properties['subscribers'])) {
        $found = array_search($modx->user->id, $properties['subscribers']);
        $subscribed = ($found == false) ? 0:1;
    }
Кто сможет помочь, пишите через форму. Бюджет обсуждается.
Заранее благодарен.
Wassi Wassinen
05 декабря 2020, 02:07
modx.pro
95
0

Написать простенький PHP скрипт для cron'a

7 1
Есть несколько разделов с тикетами на сайте, в которых опубликовано много текстов. У некоторых из них есть признак «Для обсуждения» (тв-поле).
Эти тикеты — произведения писателей. Хочется поднять их активность и привлечь к обсуждению произведений других авторов. Для этого хочу выводить одно из произведений в нескольких местах на сайте с призывом оставлять комментарии. Те писатели, которые получают больший рейтинг за свой комментарий будут участвовать в следующем выборе произведения для голосования. Хочется избежать повторов обсуждения одного и того же произведения, а так же дать стимул для обсуждения. Поэтому возникло такое ТЗ.
Wassi Wassinen
19 декабря 2019, 01:18
modx.pro
317
0

Формирование JavaScript файлов и кусков кода для дополнений

Всех приветствую. Есть ситуация, с которой сталкиваюсь на каждом сайте, к которому заказчик предъявляет требования по части валидности верстки\кода. Этот пост про ситуацию с кусками java-скриптов, которые подключают в код страниц дополнения modx. Например, AjaxForm, MinifyX и MiniShop2 подтягивает в код страницы блоки javascript которые открываются тегами:
<script type="text/javascript">
И этот тег не проходит валидатор validator.w3.org
Валидатор выдает такое предупреждение:
The type attribute is unnecessary for JavaScript resources.
Чтобы исправить эту ситуацию — нужно убрать из тега атрибут type=«text/javascript».

Господа разработчики, постарайтесь обновить свои дополнения, чтобы сделать код сайтов на modx более валидным.

Заранее благодарен!

UPD.: Решение проблемы здесь bazstudio.com/blog/320-make-valid-the-auto-js-files-in-modx
Wassi Wassinen
24 ноября 2018, 18:58
modx.pro
5
2 367
+5

TicketForm и поля multiselect (multiple)

2 1 000
Всем здравствуйте.

Искал решения для заполнения полей типа multiselect htmlbook.ru/html/select/multiple через ticketForm. Есть решение для select modx.pro/help/6325/#comment-45022, но хотелось бы использовать ТВ-поля «множественный список» в админке, а на фронтенде — multiselect. Нужно это для последующей фильтрации через mFilter2. У страницы будут выбраны одно или несколько значений из списка с множественным выбором.

Если у вас есть наработки в этой области и вы готовы поделиться — я с удовольствием отблагодарю небольшим спасибо на карту или телефон.

Заранее благодарен.
Wassi Wassinen
10 мая 2018, 07:55
modx.pro
1
1 356
0

Hybridauth и Вконтакте

Всех приветствую.

Hybridauth, при попытке авторизоваться через Вконтакте, выдает в логах ошибки:
Wassi Wassinen
04 мая 2018, 18:10
modx.pro
1
658
0

Актуализировать компонент ms2form

Всем здравствуйте.

Необходимо актуализировать компонент ms2form ( github.com/vasilueff/ms2form, modstore.pro/packages/users/ms2form ) для работы с новым MS2. Компонент «приучен» работать со старым минишопом. Необходимо, чтобы он научился работать с новым.

Так же в компоненте заложена возможность публиковать категории товаров с фронтенда. Понадобится доработать эту функциональность. Но это уже следующим заданием.

Вопросы и предложения в комментариях.
Заранее благодарен за ответы.
Wassi Wassinen
23 января 2018, 18:52
modx.pro
1
607
0

Where class_key

Друзья, всех приветствую!

Подскажите, как через &where запретить выбирать ресурсы-ссылки или разрешить выбирать только товары Minishop2?

Заранее благодарен за ответ!
Wassi Wassinen
14 февраля 2017, 23:00
modx.pro
4
1 960
0

Сниппет для разбивки текста на страницы

1 1 500
Ребята, всех приветствую!

Нужен сниппет, который мог бы через pdoPage разбивать длинные портянки текста на страницы. Из параметров нужно указывать после какого HTML тега и через сколько таких тегов разбивать страницу (например &breakTag=`
` &tagCount=`20`).

Решения пишите в комментах. Выберу самое оптимальное по запросам\быстродействию.

Заранее благодарен!
Wassi Wassinen
08 января 2017, 17:50
modx.pro
1
1 084
0

Ошибка ...not be passed to makeUrl()

В логе постоянно встречаю ошибку:

[2017-01-08 20:09:42] (ERROR @ ***/core/model/modx/modx.class.php : 991) `0` is not a valid integer and may not be passed to makeUrl()

Если кто-то сталкивался или знает причину — помогите.

Заранее благодарен!
Wassi Wassinen
08 января 2017, 17:30
modx.pro
3
5 485
0