radrigo 207 Опубликовано: 9 августа 2018 Рассказать Опубликовано: 9 августа 2018 Всем привет. У меня есть 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); Заранее признателен всем за подсказку. Ссылка на сообщение Поделиться на других сайтах
alex32 943 Опубликовано: 9 августа 2018 Рассказать Опубликовано: 9 августа 2018 1 час назад, radrigo сказал: Подозреваю, что в файле rssinform.php надо где-то прописать что-то подобное. Ну вот конкретно где и как, не знаю. верно подозреваешь, только код информера то покажи Ссылка на сообщение Поделиться на других сайтах
radrigo 207 Опубликовано: 9 августа 2018 Рассказать Опубликовано: 9 августа 2018 Автор 16 минут назад, alex32 сказал: верно подозреваешь, только код информера то покажи Код файла informer.tpl такой <h6 class="pog_gusev">{title}</h6><br>{news}.<br><br> Скриншот с настройками информера Это ссылка на страницуhttps://gusev-online.ru/test.html Больше не знаю что показать Ссылка на сообщение Поделиться на других сайтах
alex32 943 Опубликовано: 10 августа 2018 Рассказать Опубликовано: 10 августа 2018 engine/modules/rssinform.php перед $tpl->set( '{title}', $content['title'] ); вставь if( $value['id'] == ID_твоего_информера ) $content['title'] = str_replace("Черняховск", "Гусев", $content['title']); и очисти кэш из админки 1 Ссылка на сообщение Поделиться на других сайтах
radrigo 207 Опубликовано: 10 августа 2018 Рассказать Опубликовано: 10 августа 2018 Автор 14 минут назад, alex32 сказал: engine/modules/rssinform.php перед $tpl->set( '{title}', $content['title'] ); вставь if( $value['id'] == ID_твоего_информера ) $content['title'] = str_replace("Черняховск", "Гусев", $content['title']); и очисти кэш из админки Спасибо. Получилось) ID информера взял из базы данных, это целое число. Я правильно понял? Ссылка на сообщение Поделиться на других сайтах
alex32 943 Опубликовано: 10 августа 2018 Рассказать Опубликовано: 10 августа 2018 5 минут назад, radrigo сказал: ID информера взял из базы данных, это целое число. Я правильно понял? Да, все верно. Правда, можно было зайти в редактирование информера, как на твоем скрине, и в адресной строке id посмотреть 1 Ссылка на сообщение Поделиться на других сайтах
radrigo 207 Опубликовано: 10 августа 2018 Рассказать Опубликовано: 10 августа 2018 Автор 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']); Работают оба варианта. И оба варианты правильны? Ссылка на сообщение Поделиться на других сайтах
celsoft 6216 Опубликовано: 10 августа 2018 Рассказать Опубликовано: 10 августа 2018 2 часа назад, radrigo сказал: Работают оба варианта. И оба варианты правильны? Вообще никакой разницы. Разве что первый будет потреблять чуть меньше памяти, но это настолько мизерная разница, что роли никакой не играет. Делайте как вам удобнее, например удобнее править. 1 Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас