websfera

websfera

Был в сети 05 марта 2026, 15:50
Заказы принимаю
Решение (Благодаря помощи Павла Романова)
В чанк kontact-form добавляем скрытое поле:
<input type="hidden" value="" name="itemtitle" class="itemfield" />
Добавляем в кнопку обработчик клика onclick=«getItem('{$pagetitle}');»:
<button type="button" class="btn btn-secondary btn-lg btn-block" data-toggle="modal" data-target="#adviceModal" onclick="getItem('{$pagetitle}');">ЗАКАЗАТЬ</button>
и выносим в вызове pdoPage в чанк, либо заменяем ('{$pagetitle}') на (\'{$pagetitle}\')
Добавляем где-нибудь на странице функцию:
<script>
    function getItem(i){
        $('.itemfield').val(i);
    }
</script>
В вызов ajaxForm прописываем:
&emailSubject=`[[+itemtitle]]`
у меня сработало.
ответ слишком сложный для меня, можно поподробнее?
1. в каком чанке нужно прописать?
{$_modx->resource.pagetitle}
Если прописываю в
&form=`kontact-form`
    &emailTpl=`tpl-kontact-form`
получаю только заглавие страницы списка услуг в форме.
2. «вешаешь событие af_complete» — куда его «вешать»?
Я думал нужно здесь что-то менять:
&emailSubject=`Сообщение с сайта [[++site_url]]`
Чтобы в заголовке письма вместо «Сообщение с сайта...» был указан нужный pagetitle дочернего ресурса.
<?php
if($user->isMember('Registered')) return '';    //Проверяем состоит ли пользователь в группе Registered
$modx->sendRedirect($modx->makeUrl(5));        //Если нет перенаправляем его на ресурс с id 5
    exit;
Вот нашёл для зарегистрированных, а как сюда добавить IP?
ошибки валятся ли?
а где смотреть?
в исходном коде есть подключение js

<script type="text/javascript">
	if(typeof jQuery == "undefined") {
		document.write("<script src=\"/assets/components/pagebreaker/js/lib/jquery.min.js\" type=\"text/javascript\"><\/script>");
	}
</script>
<script type="text/javascript" src="/assets/components/pagebreaker/js/default.js"></script>
вот в том то и дело, что не экстрасенсы, сам понимаю.
Но куда уже подробнее.
Всё описано на стр. дополнения
здесь и здесь
Думаю, что я чего-то не понял и чего-то не сделал.
Цитирую:
Ajax
Плагин может работать в режиме Ajax, то есть, переключать страницы без перезагрузки.

Для этого вам нужно активировать системную настройку pagebreaker_ajax
Ссылки на страницы должны иметь класс pb_link. Проверьте, если вы меняли стандартные чанки.
Тег [[*content]] должен быть обёрнут в элемент с #pagebreaker_content (можно изменить в настройке pagebreaker_ajax_selector).
То есть, вот так:

<div id="pagebreaker_content">
    [[*content]]
</div>
В режиме Ajax плагин старается работать через Javascript HistoryApi, то есть адрес страницы будет переключаться так же, как и без ajax. Никаких дополнительных параметров в строке адреса.

Если у посетителя старый браузер — придётся задействовать хэш в url.

pagebreaker_frontend_js [[+assetsUrl]]js/default.js Ссылка на javascript для загрузки на страницу. Работает только при включенном pagebreaker_ajax
Помимо этого ничего не делал.
Так понял что включение pagebreaker_ajax — подгружает pagebreaker_frontend_js — в котором и реализован ajax
а если /public_html/core/components/translit/model/modx/translit/tables/russian.php не трогать а в Системных настройках friendly_alias_translit указать не russian а свой russianmod и изменения внести в дубликат russianmod.php
Так и обновление не помешает верно?
$ret = preg_replace('/^yu/', 'u', $ret);
Внёс, н тоже не срабатывает… Кеш очитил.

вот что у меня:
public function translate($string, $table) {
        $ret = $string;
        $filePath = dirname(__FILE__) . '/tables/' . $table . '.php';
        if (is_file($filePath)) {
            $table = include $filePath;
            if (is_array($table) && !empty($table)) {
                $ret = strtr($string, $table);
                $ret = preg_replace('/^yu/', 'u', $ret);
            }
        }
        return $ret;
    }
}
странно, новые алиасы создаются согласно внесённым изменениям в friendly_alias_restrict_chars_pattern а вот обновление «Управление -> Очистить кэш -> Обновить URI-ссылки» — не срабатывает. Что не так мог сделать? Кеш почистил…