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

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

В новой версии появилась возможность перенести модификации в отдельные файлы и подключать их из шаблона. Так вот, столкнулся с такой проблемой. (Сразу скажу, что я не профессионал в php)

Файл myblock.php подключается в шаблоне так {include file="engine/modules/myblock.php?block=soft"} и так {include file="engine/modules/myblock.php?block=games"} и имеет следующие содержание:

if ($block == 'soft') {


	$topsoft = $dle_api->load_from_cache ("topsoft");


	if (!$topsoft) {


		$db->query ("Select id, title, category, news_read from dle_post where category IN (1) order by news_read desc limit 0,10");


		while ($row = $db->get_row()) {


			$topsoft .= "<li>".$i++.". <a href='".$config['http_home_url'].get_url($row['category'])."/".$row['id'].".html'>".$row['title']."</a><span>".$row['news_read']." просмотров</span></li>";


		}


	}


	$dle_api->save_to_cache ( "topsoft", $topsoft);


	echo $topsoft;


}




if ($block == 'games') {


	$topgames = $dle_api->load_from_cache ("topgames");


	if (!$topgames) {


		$db->query ("Select id, title, category, news_read from dle_post where category IN (2) order by news_read desc limit 0,10");


		while ($row = $db->get_row()) {


			$topgames .= "<li>".$i++.". <a href='".$config['http_home_url'].get_url($row['category'])."/".$row['id'].".html'>".$row['title']."</a><span>".$row['news_read']." просмотров</span></li>";


		}


	}


	$dle_api->save_to_cache ( "topgames", $topgames);


	echo $topgames;


}

При использование обоих блоков на одной странице появляется следующая ошибка - "Fatal error: Call to a member function load_from_cache() on a non-object in D:\home\localhost\www\engine\modules\myblock.php on line 36". Т.е. на строку $topgames = $dle_api->load_from_cache ("topgames").

Вопрос думаю и так ясен. Почему ошибка и как сделать так, чтобы работало? :)

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

TopSoft,

покажите как вы подключаете файл API, целиком нужен файл вашего мода.

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

Файл myblock.php целиком:

<?php


include_once ('engine/api/api.class.php');


$i = 1;


if ($block == 'soft') {


	$topsoft = $dle_api->load_from_cache ("topsoft");


	if (!$topsoft) {


		$db->query ("Select id, title, category, news_read from dle_post where category IN (1) order by news_read desc limit 0,10");


		while ($row = $db->get_row()) {


			$topsoft .= "<li>".$i++.". <a href='".$config['http_home_url'].get_url($row['category'])."/".$row['id'].".html'>".$row['title']."</a><span>".$row['news_read']." просмотров</span></li>";


		}


	}


	$dle_api->save_to_cache ( "topsoft", $topsoft);


	echo $topsoft;


}


if ($block == 'games') {


	$topgames = $dle_api->load_from_cache ("topgames");


	if (!$topgames) {


		$db->query ("Select id, title, category, news_read from dle_post where category IN (2) order by news_read desc limit 0,10");


		while ($row = $db->get_row()) {


			$topgames .= "<li>".$i++.". <a href='".$config['http_home_url'].get_url($row['category'])."/".$row['id'].".html'>".$row['title']."</a><span>".$row['news_read']." просмотров</span></li>";


		}


	}


	$dle_api->save_to_cache ( "topgames", $topgames);


	echo $topgames;


}


?>

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

проблема в API, в дистрибутив внесены изменения, замените файл engine/api/api.class.php

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

celsoft, кстати если в тег costom добавить параметр "sort", то его можно использовать как topnews в разных разделах с нужных категорий, что очень полезно и отпадет необходимость в модификации которая выше.

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

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

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

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

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

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

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

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

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

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