Перейти к публикации

Мой модуль и переменные


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

Добрый вечер, собрал свой модуль - маленький "парсер погоды"

В шаблоне обращаюсь к нему

{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

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

Например так 

{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

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

Спасибо - да так где то и сделал, вопрос был вызова в разных местах один модуль, пришлось код разбить на 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 );

Но ничего не вышло и пришлось кустарными способами, как выше...  Вот и вопрос - может есть "правильный" способ вывода инфы с модуля... ? что бы его не запрашивать несколько раз

 

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

Это и есть правильный вывод. Зачем эти данные писать в БД? Закешируйте их в файл в виде json строки и делайте с ними что хотите. Раз в час пусть себе эта строка обнровляется и все.

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...