Илья

Илья

С нами с 27 февраля 2025; Место в рейтинге пользователей: #14016
Илья
28 апреля 2025, 19:51
0
Путь до файла /core/components/jevix/vendor/agelxnash/jevix/src/functions.php.

Исправленный вариант кода:
<?php
/**
 * Функция ord() для мультибайтовы строк
 *
 * @param string $c символ utf-8
 * @return int код символа
 */
function uniord($c)
{
    $h = ord($c[0]);
    if ($h <= 0x7F) {
        return $h;
    } else {
        if ($h < 0xC2) {
            return false;
        } else {
            if ($h <= 0xDF) {
                return ($h & 0x1F) << 6 | (ord($c[1]) & 0x3F);
            } else {
                if ($h <= 0xEF) {
                    return ($h & 0x0F) << 12 | (ord($c[1]) & 0x3F) << 6
                        | (ord($c[2]) & 0x3F);
                } else {
                    if ($h <= 0xF4) {
                        return ($h & 0x0F) << 18 | (ord($c[1]) & 0x3F) << 12
                            | (ord($c[2]) & 0x3F) << 6
                            | (ord($c[3]) & 0x3F);
                    } else {
                        return false;
                    }
                }
            }
        }
    }
}

/**
 * Функция chr() для мультибайтовы строк
 *
 * @param int $c код символа
 * @return string символ utf-8
 */
function unichr($c)
{
    if ($c <= 0x7F) {
        return chr($c);
    } else {
        if ($c <= 0x7FF) {
            return chr(0xC0 | $c >> 6) . chr(0x80 | $c & 0x3F);
        } else {
            if ($c <= 0xFFFF) {
                return chr(0xE0 | $c >> 12) . chr(0x80 | $c >> 6 & 0x3F)
                    . chr(0x80 | $c & 0x3F);
            } else {
                if ($c <= 0x10FFFF) {
                    return chr(0xF0 | $c >> 18) . chr(0x80 | $c >> 12 & 0x3F)
                        . chr(0x80 | $c >> 6 & 0x3F)
                        . chr(0x80 | $c & 0x3F);
                } else {
                    return false;
                }
            }
        }
    }
}
Илья
23 марта 2025, 18:52
0
Спасибо, поискал инфу и тоже понял, что дело в login. Написал posthooks
<?php
// Получаем данные из запроса
$aboutMe = $modx->getOption('about_me', $_POST, '');

// Удаляем нежелательные HTML-теги (по желанию) и сохраняем с разрешёнными тегами
$allowedTags = '<p><a><strong><i>
<h2><h3><h4><ul><ol><li><blockquote>'; // Разрешённые теги
$aboutMe = strip_tags($aboutMe, $allowedTags);

// Сохраняем данные обратно в базу данных
$userId = $modx->user->get('id');
$userProfile = $modx->getObject('modUserProfile', $userId);
if ($userProfile) {
    $userProfile->set('about_me', $aboutMe);
    $userProfile->save();
}
Заработало, выбрал только нужные теги. Все шикарно сохраняет.
Илья
17 марта 2025, 20:04
0
Спасибо, заработало. Понял ошибку, нужно было делать через префикс usr.
Илья
11 марта 2025, 15:00
0
Сам разобрался, добавил скрытое поле input для псевдонима и оттуда подтягивал значение в админку, По поводу кэша тоже разобрался, после сохранения и изменения записей сделал кэширование.
Илья
09 марта 2025, 14:38
0
Большое спасибо, заработало. Но возник вопрос с alias, при создании записи генерируется alias, но он не появляется в поле псевдоним в админке. И еще вывожу страницы pdoPage
[[!pdoPage?
                            &element=`pdoResources`
                            &showHidden=`1`
                            &parents=`6`
                            &tpl=`myTplChunk`
                            &includeTVs=`img`
                            &limit=`12`
                            &tplPageFirstEmpty=``
                            &tplPageLastEmpty=``
                            &tplPagePrevEmpty=``
                            &tplPageNextEmpty=``
                            &tplPageFirst=``
                            &tplPageLast=``
                            &tplPagePrev=``
                            &tplPageNext=``
                        ]]
и запись появляется, название, дата все показывается, но ссылка стоит на главный домен, затем если очистить кэш сайта, то появляется правильная ссылка. Может вы в курсе как поправить.
Код чанка вывода списка страниц
div class="article-item">
              <img src="[[+tv.img]]" alt="[[+pagetitle]]">
              <div class="article-descr">
                <h3>[[+pagetitle]]</h3>
                <div class="meta">
                  <p class="author">admin</p>
                  <p class="count-comments"><a href="[[~[[+id]]]]#comments">
                  <span class="icon-fa"><i class="fa fa-comment-o"></i></span>
                  <span class="count-comment">[[!ticketCommentCount:default=`0`? &id=`[[+id]]`]]</span>
                  </a>
                  </p>
                </div>
                <a href="[[~[[+id]]]]" class="btn btn-art">Подробнее</a>
                <div class="date">
                  <span>[[+publishedon:date=`%d`]] [[+publishedon:date=`%b`]]</span>
                </div>
             </div>
</div>
Илья
28 февраля 2025, 18:09
0
Всем большое спасибо. Не знаю из-за чего изначально не заработало, может кэш не почистил, может еще что-то было, но в файле
/public_html/core/components/jevix/vendor/agelxnash/jevix/src/functions.php
поменял фигурные кавычки на квадратные и заработало. Стоит последняя версия php. Из плюсов еще заработало создание тикетов, раньше при кнопке сохранить просто зависало на сохранении, теперь заработало.
Илья
27 февраля 2025, 19:45
0
Менял фигурные скобки и пробовал разные версии php ничего не сработало. Техподдержка бегет тоже отписалась, что нужно попробовать версию php понизить и скобки поменять на квадратные. Попробую снова поиграться со скобками и версиями php может заработает.
Илья
27 февраля 2025, 18:23
0
Пробовал на двух хостингах на бегете и таймвебе, и везде ошибка 500 появляется. На бегете писал в поддержку, мне отписались что проблема возникает из-за некоректной работы php-скрипта
[26-Feb-2025 19:32:25 Europe/Moscow] PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in /home/d/d20ilns5/gb.d20ilns5.beget.tech/public_html/core/components/jevix/vendor/agelxnash/jevix/src/functions.php on line 10
Находил в инете варианты, что может быть из-за версии php, пробовал менять, ничего не случалось.