CMS DataLife Engine - Система управления сайтами

Авторизация  
radrigo

Замена текста в заголовке rss информера

Рекомендуемые сообщения

Всем привет.

 

У меня есть rss-лента с погодой, которую хотелось бы вывести на сайте, но при этом заменить в заголовке слово "Черняховск" на "Гусев". Это маленькие два городка на расстоянии друг от друга 20 км и метеовышка находится между ними, но сервисы погоды часто город Гусев не указывают, так как он меньше.

 

В общем хотелось на сайте вывести данные из этой rss-ленты, но в заголовке сделать замену "Черняховск" на "Гусев".

https://meteoinfo.ru/rss/forecasts/index.php?s=26711

 

При помощи такого js скрипта это сделать получается

<script>
$(document).ready(function(){
    $(".pog_gusev").text(function(index, text) {
    return text.replace("Черняховск", "Гусев");
    });
});
</script>

 

Но дело в том, что скрипты подгружается после загрузки страницы и замена происходит уже визуально. Да и в исходном коде страницы указано первое значение.

 

Подскажите, как можно решить эту проблему при помощи PHP?

 

Подозреваю, что в файле rssinform.php надо где-то прописать что-то подобное. Ну вот конкретно где и как, не знаю.

str_replace("Черняховск", "Гусев", $title);

 

Заранее признателен всем за подсказку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

1 час назад, radrigo сказал:

Подозреваю, что в файле rssinform.php надо где-то прописать что-то подобное. Ну вот конкретно где и как, не знаю.

верно подозреваешь, только код информера то покажи

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, alex32 сказал:

 

верно подозреваешь, только код информера то покажи

Код файла informer.tpl такой

<h6 class="pog_gusev">{title}</h6><br>{news}.<br><br>

 

Скриншот с настройками информера

82de43d3a5d7.png

 

Это ссылка на страницу
https://gusev-online.ru/test.html

 

Больше не знаю что показать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

engine/modules/rssinform.php перед

 

$tpl->set( '{title}', $content['title'] );

вставь 

if( $value['id'] == ID_твоего_информера )  $content['title'] = str_replace("Черняховск", "Гусев",  $content['title']);

и очисти кэш из админки

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, alex32 сказал:

engine/modules/rssinform.php перед

 


$tpl->set( '{title}', $content['title'] );

вставь 


if( $value['id'] == ID_твоего_информера )  $content['title'] = str_replace("Черняховск", "Гусев",  $content['title']);

и очисти кэш из админки

Спасибо. Получилось)

ID информера взял из базы данных, это целое число. Я правильно понял?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, radrigo сказал:

ID информера взял из базы данных, это целое число. Я правильно понял?

Да, все верно. Правда,  можно было зайти в редактирование информера, как на твоем скрине, и в адресной строке id посмотреть :) 

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 часов назад, alex32 сказал:

Да, все верно. Правда,  можно было зайти в редактирование информера, как на твоем скрине, и в адресной строке id посмотреть :) 

Подскажите ещё.
Если допустим я хочу сделать ещё и несколько замен в самом тексте. Так будет правильно если перед

$tpl->set( '{title}', $content['title'] );

вставлю

if( $value['id'] == 14 )  $content['title'] = str_replace("Черняховск", "Гусев",  $content['title']);
if( $value['id'] == 14 )  $content['description'] = str_replace([" Температура", " Ветер", " Атмосферное", "Вероятность осадков"], ["<br>Температура", "<br>Ветер", "<br>Атмосферное", "<br>Вероятность осадков"],  $content['description']);

Может правильнее будет вставить такой код?

if( $value['id'] == 14 )  $content['title'] = str_replace("Черняховск", "Гусев",  $content['title']);
$tekpogoda = array(" Температура", " Ветер", " Атмосферное", "Вероятность осадков");
$zampogoda = array("<br>Температура", "<br>Ветер", "<br>Атмосферное", "<br>Вероятность осадков");
if( $value['id'] == 14 )  $content['description'] = str_replace($tekpogoda, $zampogoda, $content['description']);

 

Работают оба варианта. И оба варианты правильны?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, radrigo сказал:

Работают оба варианта. И оба варианты правильны?

Вообще никакой разницы. Разве что первый будет потреблять чуть меньше памяти, но это настолько мизерная разница, что роли никакой не играет. Делайте как вам удобнее, например удобнее править.

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация