v_glove 10 Опубликовано: 7 февраля 2018 Рассказать Опубликовано: 7 февраля 2018 Добрый вечер, собрал свой модуль - маленький "парсер погоды" В шаблоне обращаюсь к нему {include file="engine/modules/meteo.php"} модуль выдает мне несколько моих значений $html =' <span class="t_woter">воздух: '.$row['temp_air'].'</span>'; $html .=' <span class="t_woter">вода: '.$row['temp_water'].'</span>'; $meteo = $html; echo $meteo; Вопрос - как можно вывести отдельно одно значения с модуля? что бы его вставить в другой конец сайта. Спасибо http://test.tatyana.co.ua Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 8 февраля 2018 Рассказать Опубликовано: 8 февраля 2018 Например так {include file="engine/modules/meteo.php?water=1"} и в самом модуле if($water){ //если в подключении модуля передан параметр $water, то выводим только температуру воды echo '<span class="t_woter">вода: '.$row['temp_water'].'</span>'; }else{ //если нет, то выводим как обычно $meteo =' <span class="t_woter">воздух: '.$row['temp_air'].'</span>'; $meteo .=' <span class="t_woter">вода: '.$row['temp_water'].'</span>'; echo $meteo; } https://dle-news.ru/extras/online/modules_include.html Цитата Ссылка на сообщение Поделиться на других сайтах
v_glove 10 Опубликовано: 8 февраля 2018 Рассказать Опубликовано: 8 февраля 2018 Автор Спасибо - да так где то и сделал, вопрос был вызова в разных местах один модуль, пришлось код разбить на 2 части - сам парсинг увести в другой файл что бы его не вызывало более 1го раза, а данные затянутые в бд уже вытягиваю $sql = 'SELECT * from dle_meteo ORDER BY id DESC LIMIT 1'; $row = $db->super_query($sql); if (isset($types)) { $idexes = explode('-',$types); foreach ($idexes as $type) { switch ($type) { case 'temp_air': $html .=' <span class="t_woter">воздух: '.$row['temp_air'].'</span>'; break; case 'temp_water': $html .=' <span class="t_woter">вода: '.$row['temp_water'].'</span>'; break; case 'pressure': $html .=' <span class="t_woter">вода: '.$row['pressure'].'</span>'; break; case 'humidity': $html .=' <span class="t_woter">вода: '.$row['humidity'].'</span>'; break; ......... выводы теперь такие: {include file="engine/modules/meteo.php?types=temp_water-temp_air-pressure-wind"} {include file="engine/modules/meteo.php?types=temp_air"} Не знаю насколько это правильное было решение - думал есть проще решения в ДЛЕ, в модуле объявить переменные и как например в main.php объявить их и использовать $tpl->set( '{my-variable}', $my_variable ); Но ничего не вышло и пришлось кустарными способами, как выше... Вот и вопрос - может есть "правильный" способ вывода инфы с модуля... ? что бы его не запрашивать несколько раз Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 8 февраля 2018 Рассказать Опубликовано: 8 февраля 2018 Это и есть правильный вывод. Зачем эти данные писать в БД? Закешируйте их в файл в виде json строки и делайте с ними что хотите. Раз в час пусть себе эта строка обнровляется и все. Цитата Ссылка на сообщение Поделиться на других сайтах
v_glove 10 Опубликовано: 8 февраля 2018 Рассказать Опубликовано: 8 февраля 2018 Автор спасибо за советы Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.