h2. Замена с помощью шаблона
Для этого нужно в каталоге кастомных шаблонов создать шаблон модуля уведомлений Message.
Можно скопировать стандартный шаблон
{code}
cp /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/tpls/Message.php /app/asr_cabinet/var/cabinet_tmpl/Message.php
{code}
Шаблон:
{code}
/app/asr_cabinet/var/cabinet_tmpl/Message.php
{code}
Редактировать текст вывода в блоке:
{code}
<?=$message['text']?>
{code}
h5. Пример 1. Замена текста может происходить подобным образом, если заменить строку вывода текста сообщения на блок:
Исходное сообщение.
"Превышен лимит:"
Необходимо получить.
"Вы находитесь в финансовой блокировке. Лимит превышен на"
{code}
<?php
$text = $message['text'];
$limit_flag_string = "Превышен лимит:";
if(substr($text, 0, strlen($limit_flag_string)) === $limit_flag_string) {
$content_strng = str_replace("Превышен лимит", "Вы находитесь в финансовой блокировке.", $text); //Заменяем текст сообщения
$content_strng = str_replace(":", " Лимит превышен на ", $content_strng); //Заменяем вторую половину
echo $content_strng;
} else {
echo $text;
}
?>
{code}
h5. Пример 2. Замена теста при подключенном обещанном платеже.
Исходное сообщение.
"Уважаемый(ая) Абонент. Имеется подключенный обещанный платёж (Услуга: Обещанный платеж: Обещанный платеж (0.00 руб. Сумма: 100.00 Стоимость услуги: 10.00 руб.))."
Необходимо получить.
"Уважаемый(ая) Абонент. Имеется подключенный обещанный платёж (Услуга: Обещанный платеж (Стоимость услуги: 10.00 руб.))."
{code}
<?php
$text = $message['text'];
$promise_string = "Имеется подключенный обещанный платёж";
if(stripos($text, $promise_string)) {
$content_string = str_replace("Обещанный платеж:", " ", $text);
$content_string = str_replace("0.00 руб. Сумма: 100.00", " ", $content_string);
echo $content_string;
} else {
echo $text;
}
?>
{code}
!!! Этот способ работает в случае если Вы используете одну услугу "Обещанный платеж" для всех абонентов.
h2. Замена с помощью модуля Wordpress
В случае возникновения критичной потребности в изменении текста уведомления в личном кабинете, можно использовать подход с модификацией вывода модуля.
{warning:title=Warning}
Этот модуль не проверялся на стабильность работы, и, иногда может, как просто не сработать, так и привести к неработоспособности весь ЛК.
{warning}
Для этого нужно определить фильтр путем вызова
{code}
\carbon\helpers\ModuleRenderFilter::set_module_filter($module_name, $filter_function)
{code}
где $module_name - это имя класса модуля, включая пространство имен, $filter_function - это функция-обработчик, которая принимает на вход строку-вывод модуля.
h6. Пример замены текста уведомлений
Первый обработчик заменяет текст "Превышен лимит: 50.0". на текст "Вы находитесь в финансовой блокировке. Лимит превышен на 50.0"
Второй обработчик заменяет текст "Уважаемый(ая) ФИО. Имеется подключенный обещанный платёж (Услуга: Платеж: Обещанный платеж ( 0.00 руб. Сумма: 950.00))" на текст "Уважаемый(ая) ФИО. Имеется подключенный обещанный платёж."
{code}
//Зарегистрируем обработчик текста модуля при старте плагина личного кабинета
add_action('carbon_init_plugin',function(){
\carbon\helpers\ModuleRenderFilter::set_module_filter('carbon\modules\Message', function($content){
if(strpos($content, "Превышен лимит")){
$content_strng=str_replace("Превышен лимит", "Вы находитесь в финансовой блокировке.", $content); //Заменяем текст сообщения
$content_strng=str_replace(":", " Лимит превышен на ", $content_strng); //Заменяем вторую половину
return $content_strng;
}
return $content;
});
\carbon\helpers\ModuleRenderFilter::set_module_filter('carbon\modules\Message', function($content){
if($char_start=strpos($content, "Имеется подключенный обещанный платёж")) {
$str_end_char=strpos($content, "</div>", $char_start);
$magic=md5(time()."%%%%%%");
$content=substr_replace($content, $magic, $char_start, $str_end_char);
$content=str_replace($magic, "Имеется подключенный обещанный платеж.", $content);
}
return $content;
});
// В уведомлениях о комментариях Helpdesk делаем ссылки на заявки с новыми сообщениями
\carbon\helpers\ModuleRenderFilter::set_module_filter('carbon\modules\Message', function($content){
if(strpos($content, "Имеются непрочитанные сообщения от технической поддержки в заявках:")){
$url = "/cabinet/Техническая-поддержка/?cabinet_ticket="; // ссылка на страницу с заявками тех.поддержки
$pattern = "/(#(\d+)\s.+)\s*(,|<\/div>)/U";
$replacement = '<a href="' . $url . '\2">\1</a>\3'; // заменяем список заявок на ссылки
$content_strng=preg_replace($pattern, $replacement, $content);
return $content_strng;
}
return $content;
});
// В уведомлениях о комментариях Helpdesk делаем ссылку на раздел Helpdesk
\carbon\helpers\ModuleRenderFilter::set_module_filter('carbon\modules\Message', function($content){
if(strpos($content, "Имеются непрочитанные сообщения от технической поддержки в заявках:")){
$url = "/cabinet/Техническая-поддержка/"; // ссылка на страницу с заявками тех.поддержки
//Добавляем ссылку на раздел
$content_strng=str_replace("сообщения от технической поддержки", "<a href='{$url}'>сообщения от технической поддержки</a>", $content);
return $content_strng;
}
return $content;
});
});
{code}
Разместите плагин в папке _/app/asr_cabinet/var/wordpress/wp-content/plugins/_ так, чтобы путь к файлу модуля был:
{code}
/app/asr_cabinet/var/wordpress/wp-content/plugins/replacetext/replacetext.php
{code}
Скачать плагин: [^wordpress_example_plugin.zip]
Для того, чтобы замена текста производилась, необходимо активировать плагин в настройках WordPress, для этого зайдите в администраторскую панель, нажмите в левом меню *Плагины*, найдите модуль *Замена текста* и нажмите кнопку *Активировать*.
Для этого нужно в каталоге кастомных шаблонов создать шаблон модуля уведомлений Message.
Можно скопировать стандартный шаблон
{code}
cp /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/tpls/Message.php /app/asr_cabinet/var/cabinet_tmpl/Message.php
{code}
Шаблон:
{code}
/app/asr_cabinet/var/cabinet_tmpl/Message.php
{code}
Редактировать текст вывода в блоке:
{code}
<?=$message['text']?>
{code}
h5. Пример 1. Замена текста может происходить подобным образом, если заменить строку вывода текста сообщения на блок:
Исходное сообщение.
"Превышен лимит:"
Необходимо получить.
"Вы находитесь в финансовой блокировке. Лимит превышен на"
{code}
<?php
$text = $message['text'];
$limit_flag_string = "Превышен лимит:";
if(substr($text, 0, strlen($limit_flag_string)) === $limit_flag_string) {
$content_strng = str_replace("Превышен лимит", "Вы находитесь в финансовой блокировке.", $text); //Заменяем текст сообщения
$content_strng = str_replace(":", " Лимит превышен на ", $content_strng); //Заменяем вторую половину
echo $content_strng;
} else {
echo $text;
}
?>
{code}
h5. Пример 2. Замена теста при подключенном обещанном платеже.
Исходное сообщение.
"Уважаемый(ая) Абонент. Имеется подключенный обещанный платёж (Услуга: Обещанный платеж: Обещанный платеж (0.00 руб. Сумма: 100.00 Стоимость услуги: 10.00 руб.))."
Необходимо получить.
"Уважаемый(ая) Абонент. Имеется подключенный обещанный платёж (Услуга: Обещанный платеж (Стоимость услуги: 10.00 руб.))."
{code}
<?php
$text = $message['text'];
$promise_string = "Имеется подключенный обещанный платёж";
if(stripos($text, $promise_string)) {
$content_string = str_replace("Обещанный платеж:", " ", $text);
$content_string = str_replace("0.00 руб. Сумма: 100.00", " ", $content_string);
echo $content_string;
} else {
echo $text;
}
?>
{code}
!!! Этот способ работает в случае если Вы используете одну услугу "Обещанный платеж" для всех абонентов.
h2. Замена с помощью модуля Wordpress
В случае возникновения критичной потребности в изменении текста уведомления в личном кабинете, можно использовать подход с модификацией вывода модуля.
{warning:title=Warning}
Этот модуль не проверялся на стабильность работы, и, иногда может, как просто не сработать, так и привести к неработоспособности весь ЛК.
{warning}
Для этого нужно определить фильтр путем вызова
{code}
\carbon\helpers\ModuleRenderFilter::set_module_filter($module_name, $filter_function)
{code}
где $module_name - это имя класса модуля, включая пространство имен, $filter_function - это функция-обработчик, которая принимает на вход строку-вывод модуля.
h6. Пример замены текста уведомлений
Первый обработчик заменяет текст "Превышен лимит: 50.0". на текст "Вы находитесь в финансовой блокировке. Лимит превышен на 50.0"
Второй обработчик заменяет текст "Уважаемый(ая) ФИО. Имеется подключенный обещанный платёж (Услуга: Платеж: Обещанный платеж ( 0.00 руб. Сумма: 950.00))" на текст "Уважаемый(ая) ФИО. Имеется подключенный обещанный платёж."
{code}
//Зарегистрируем обработчик текста модуля при старте плагина личного кабинета
add_action('carbon_init_plugin',function(){
\carbon\helpers\ModuleRenderFilter::set_module_filter('carbon\modules\Message', function($content){
if(strpos($content, "Превышен лимит")){
$content_strng=str_replace("Превышен лимит", "Вы находитесь в финансовой блокировке.", $content); //Заменяем текст сообщения
$content_strng=str_replace(":", " Лимит превышен на ", $content_strng); //Заменяем вторую половину
return $content_strng;
}
return $content;
});
\carbon\helpers\ModuleRenderFilter::set_module_filter('carbon\modules\Message', function($content){
if($char_start=strpos($content, "Имеется подключенный обещанный платёж")) {
$str_end_char=strpos($content, "</div>", $char_start);
$magic=md5(time()."%%%%%%");
$content=substr_replace($content, $magic, $char_start, $str_end_char);
$content=str_replace($magic, "Имеется подключенный обещанный платеж.", $content);
}
return $content;
});
// В уведомлениях о комментариях Helpdesk делаем ссылки на заявки с новыми сообщениями
\carbon\helpers\ModuleRenderFilter::set_module_filter('carbon\modules\Message', function($content){
if(strpos($content, "Имеются непрочитанные сообщения от технической поддержки в заявках:")){
$url = "/cabinet/Техническая-поддержка/?cabinet_ticket="; // ссылка на страницу с заявками тех.поддержки
$pattern = "/(#(\d+)\s.+)\s*(,|<\/div>)/U";
$replacement = '<a href="' . $url . '\2">\1</a>\3'; // заменяем список заявок на ссылки
$content_strng=preg_replace($pattern, $replacement, $content);
return $content_strng;
}
return $content;
});
// В уведомлениях о комментариях Helpdesk делаем ссылку на раздел Helpdesk
\carbon\helpers\ModuleRenderFilter::set_module_filter('carbon\modules\Message', function($content){
if(strpos($content, "Имеются непрочитанные сообщения от технической поддержки в заявках:")){
$url = "/cabinet/Техническая-поддержка/"; // ссылка на страницу с заявками тех.поддержки
//Добавляем ссылку на раздел
$content_strng=str_replace("сообщения от технической поддержки", "<a href='{$url}'>сообщения от технической поддержки</a>", $content);
return $content_strng;
}
return $content;
});
});
{code}
Разместите плагин в папке _/app/asr_cabinet/var/wordpress/wp-content/plugins/_ так, чтобы путь к файлу модуля был:
{code}
/app/asr_cabinet/var/wordpress/wp-content/plugins/replacetext/replacetext.php
{code}
Скачать плагин: [^wordpress_example_plugin.zip]
Для того, чтобы замена текста производилась, необходимо активировать плагин в настройках WordPress, для этого зайдите в администраторскую панель, нажмите в левом меню *Плагины*, найдите модуль *Замена текста* и нажмите кнопку *Активировать*.