radrigo 180 Опубликовано: 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 942 Опубликовано: 9 августа 2018 Рассказать Опубликовано: 9 августа 2018 1 час назад, radrigo сказал: Подозреваю, что в файле rssinform.php надо где-то прописать что-то подобное. Ну вот конкретно где и как, не знаю. верно подозреваешь, только код информера то покажи Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 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 942 Опубликовано: 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 180 Опубликовано: 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 942 Опубликовано: 10 августа 2018 Рассказать Опубликовано: 10 августа 2018 5 минут назад, radrigo сказал: ID информера взял из базы данных, это целое число. Я правильно понял? Да, все верно. Правда, можно было зайти в редактирование информера, как на твоем скрине, и в адресной строке id посмотреть 1 Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 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 6 081 Опубликовано: 10 августа 2018 Рассказать Опубликовано: 10 августа 2018 2 часа назад, radrigo сказал: Работают оба варианта. И оба варианты правильны? Вообще никакой разницы. Разве что первый будет потреблять чуть меньше памяти, но это настолько мизерная разница, что роли никакой не играет. Делайте как вам удобнее, например удобнее править. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.