Добрый день, уважаемые инстантовцы!
Предоставляю вашему вниманию компонент POGODA v 1.0.0 для Instantcms 1.9. Погода парсится с сайта www.weather.ua, заносится в БД и затем на странице компонента выводится с БД.
Компонент небольшой, всего две страницы во фронтенде. Написал давно, думал доведу до ума. Но так и не получается выкроить время на доделку. Поэтому предоставляю в немного сыроватом виде. Имеется ввиду, что придется править файлы компонента для настройки. Админку так и не написал. Инсталлятор есть.
Иструкция по установке:
1.В файлах из архива произвести следующие изменения
— Файл router.php, строки 17 и 22 пропишите в урл название вашего города на латинице вместо "moem-gorode"
— сделайте тоже самое в файле шаблона com_pogoda.tpl, строки 96,98
— В файлах frontend.php(строки 114-120) и в файле шаблона com_pogoda.tpl (строки 8-14) замените везде, где встретите "моем городе" на название своего города
— в файле model.php, строка 21, пропишите id вашего города с сайта www.weather.ua. Чтобы узнать id вашего города, заходите на сайт, поиском находите ваш город и в адресной строке после знака вопроса увидите свой id. Например для города Нефтекамск адресная строка будет такая www.weather.ua/show/?2101, соответственно за место звездочек в файле нужно прописать 2101.
2. Сохраняем изменения в файлах;
3. Заливаем архив в корень сайта;
4. В админке устанавливаем компонент, Компоненты->Установить компоненты;
5. Настройки->Задачи CRON, включаем задачи для компонента "Импорт прогноза погоды" и "Импорт текущей погоды". Если нужно, меняем периодичность выполнения задач. Для выполнения задач необходимо, чтобы был включен в CRON у хостера файл cron.php в корне сайта.
Посмотреть можно здесь.
Приятного пользования!
Предоставляю вашему вниманию компонент POGODA v 1.0.0 для Instantcms 1.9. Погода парсится с сайта www.weather.ua, заносится в БД и затем на странице компонента выводится с БД.
Компонент небольшой, всего две страницы во фронтенде. Написал давно, думал доведу до ума. Но так и не получается выкроить время на доделку. Поэтому предоставляю в немного сыроватом виде. Имеется ввиду, что придется править файлы компонента для настройки. Админку так и не написал. Инсталлятор есть.
Иструкция по установке:
1.В файлах из архива произвести следующие изменения
— Файл router.php, строки 17 и 22 пропишите в урл название вашего города на латинице вместо "moem-gorode"
— сделайте тоже самое в файле шаблона com_pogoda.tpl, строки 96,98
— В файлах frontend.php(строки 114-120) и в файле шаблона com_pogoda.tpl (строки 8-14) замените везде, где встретите "моем городе" на название своего города
— в файле model.php, строка 21, пропишите id вашего города с сайта www.weather.ua. Чтобы узнать id вашего города, заходите на сайт, поиском находите ваш город и в адресной строке после знака вопроса увидите свой id. Например для города Нефтекамск адресная строка будет такая www.weather.ua/show/?2101, соответственно за место звездочек в файле нужно прописать 2101.
2. Сохраняем изменения в файлах;
3. Заливаем архив в корень сайта;
4. В админке устанавливаем компонент, Компоненты->Установить компоненты;
5. Настройки->Задачи CRON, включаем задачи для компонента "Импорт прогноза погоды" и "Импорт текущей погоды". Если нужно, меняем периодичность выполнения задач. Для выполнения задач необходимо, чтобы был включен в CRON у хостера файл cron.php в корне сайта.
Посмотреть можно здесь.
Скачать для версии ICMS 1.9
Возможно, когда-нибудь доработаю. Есть возможность парсить общую базу для всех городов России и выводить по городам. Но смущает одно. База весит более 10 мб и у многих хостеров задача будет отваливаться по тайм-ауту. Пока что только в режиме одного города.Приятного пользования!
На демо - отлично смотрится
Спасибо
-----------------------------
Относительно базы городов:
Пользователь у себя сам же настраивает с какого он города, может брать данные от туда (для зарегистрированного пользователя), сравнивать-находить необходимый город в базе и выводить результат.
Либо в профиль пользователя добавить строчку:
- где родился
- где проживаешь - вот из ходя из неё и выводиться погода.
буду ждать доделки :)
Можете включить отладку мускул и вывод ошибок пхп и запустить задачу. Ошибки тоже покажутся.
Посмотрите, есть ли таблица cms_pogoda_current и есть ли записи в ней.
С шаблона уберите блок, касающийся текущей погоды и в задачах крон выключите парсер текущей погоды.
Итак, если вы только установили компонент, данных не будет. Чтобы данные о погоде появились, нужно с админки запустить выполнение задач cron компонента.
Далее, данные о текущей погоде обновляются по умолчанию каждый час, прогноз погоды раз в 4 часа. Чтобы задачи компонента выполнялись с такой периодичностью, нужно настроить выполнение cron сайта у хостера с периодичностью 1 час. То есть файл cron.php должен выполняться каждый час.
Как уже говорил, в данном виде компонент только для одного города. Какой город установили, такой и будет показывать.
В перспективе можно сделать так, чтобы мог показывать для разных городов, но, как уже говорил, объем обрабатываемого файла будет 10 мб. Надо будет поэксперементировать, при каких значениях max_execution_time скрипт будет работать. В неблизком будущем, постараюсь сделать. А дальше уже, если база всех городов есть, вывод для каждого пользователя и фильтры - это уже дело техники.
Вот даже тему создавали.
В файле install.sql в строках 42-43 нужно заменить cms_cron_jobs на vashprefiks_cron_jobs
У меня пришло вот такое:
Время посл. обновления - может немного быть неточным. Не помню точно. Там используется стандартная функция движка. И после получаса вроде бы округляет вроде бы к часу. Точное время надо смотреть в админке, напротив задачи. Вероятно, что задача у вас не запустилась из-за того, что период стоит 1 ч, и после последнего запуска не прошел ещё 1час.
Всё сделал по инструкции. http://услуги39.рф/pogoda
Можно настроить крон для запуска по vget. В этом случае указываем путь http://site.com/cron.php.
есть возможность перелить?
Но я понял, что нужно вывести текущую погоду на главную... На сайте, которая предоставляет прогноз погоды, есть информеры. Можно воспользоваться ими и вывести при помощи модуля "Внешний файл".
Или вам нужно вывести весь компонент на главную?
Давление: 737 ; Ветер: 3 м/с ; Влажность: 78%
Обновлено 12 часов назад
Если в админке вручную нажать выполнение кронов, то всё появляется. Где собака порылась??
Если всё нормально, то в настройках крон хостера укажите e-mail, на который нужно присылать отчет о выполнении крон. Такая возможность есть при настройке крона. Смотрите, что за ошибки будут на мыло.
Файлы перекодированы в утф-8 и в инсталляционном запросе в БД исправлена кодировка.
в components\pogoda\model.php все weather.co.ua меняем на weather.ua и все работает
1. Компонент создан именно для региональных сайтов. Потому что для любого населенного пункта N запрос "погода в N" является СЧ или даже ВЧ. И компонент позволяет создать страницу этой погоды с нужным uri. Плюс, если добавить на страницу соотвествующий контент и поставить несколько ссылок извне, можно сорвать приличный трафик. А для нерегионального сайта эта страница будет у вас где-нибудь на 50 странице и никто туда не придет.
2. Чтобы держать базу погоды для всех городов, как уже говорил, нужно будет каждый раз парсить базу в 10 с лишним мегабайт. Если учитывать, что парсинг текущей погоды запускается каждый 1 час, а текущей каждые 4 часа, то возможно, что входящий трафик намного превысит исходящий. Сами знаете как это не любят хостеры. Не говорю уже о нагрузке на сервер, которая будет при обработке данных в 10 мб. На шареде точно не покатит.
наверное город подставляется и вся база не парсится, жаль не доделано до конца, вот типа такого, только не с гисметео а с weather.ua , что-бы прогноз на несколько дней вывести
Ну, это тема уже для отдельной разработки. Попробуйте создать тему на форуме, может кто и возьмется. Релизация возможна и не очень то и сложна.
Проблема только по крону (крон работает по wget) - не срабатывает каждые 4 часа, приходится вручную. Другие Задачи CRON в админке обрабатываются как положено...
Но подходит для региональных сайтов, для больших проектов нет
Если б брало для города пользователя, цены б разработчику не было
все задачи выполняются (смотрю по дате посл запуска), но погода не обновляется.
Не обновляется даже если запускаешь напрямую файл cron.php, только с админки на ручном обновлении удается обновить.
Кто сталкивался с таким подскажите что делать?
Только руками обновляется погода
В админке дата запуска задачи меняется? На какой версии icms? После каких действий перестали запускаться задачи крона компонента? В логах что показывается?
Если задача запускается, но не парсятся данные в БД, проверьте есть ли прогноз для вашего города на сайте донора.
Кстати, для моего города прогноз пропал.
На вашем демо сайте тоже последняя дата 27 июня, как и у меня на рабочем
задачи выполнялись последний раз 2015-06-27 09:40:03 и 2015-06-27 11:05:05 все так же как сказал MakArtSoft +1!
Чтобы компонент заработал, откройте файл модели компонента /components/pogoda/model.php и в строках 34 и 73:
Время от времени прогноз не доступен. Как например в данный момент для Нефтекамска. Будем надеяться, что поправят.