Ajax в LS

Есть плагин, он делает AJAX запрос к файлу /plugins/plugin_name/templates/ajax/ajax_file.php

Как сделать так, чтоб из файла ajax_file.php были доступны все настройки и модули LS.

Листинг файла ajax_file.php

set_include_path(get_include_path().PATH_SEPARATOR.dirname(dirname(dirname(__FILE__))));
$sDirRoot=dirname(dirname(dirname(__FILE__)));
	$oEngine->PluginName_ModuleName_FunctionName();

Выдает ошибку

Fatal error: Call to a member function PluginName_ModuleName_FunctionName()

6 комментариев

avatar
а взять любой стандартный аякс-скрипт и сделать так же, не?
<?php
/*-------------------------------------------------------
*
*   LiveStreet Engine Social Networking
*   Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
*   Official site: www.livestreet.ru
*   Contact e-mail: rus.engine@gmail.com
*
*   GNU General Public License, version 2:
*   http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/

/**
 * Выводит информацию о блоге(description)
 */

set_include_path(get_include_path().PATH_SEPARATOR.dirname(dirname(dirname(__FILE__))));
$sDirRoot=dirname(dirname(dirname(__FILE__)));
require_once($sDirRoot."/config/config.ajax.php");

$sBlogId=getRequest('idBlog',null,'post');
$bStateError=true;
$sText='';
$oBlog=null;
if ($sBlogId==0) {
	if ($oEngine->User_IsAuthorization()) {
		$oUserCurrent=$oEngine->User_GetUserCurrent();
		$oBlog=$oEngine->Blog_GetPersonalBlogByUserId($oUserCurrent->getId());
	}	
} else {
	$oBlog=$oEngine->Blog_GetBlogById($sBlogId);
}

if ($oBlog) {
	$bStateError=false;
	$sText=$oBlog->getDescription();
} 


$GLOBALS['_RESULT'] = array(
"bStateError"     => $bStateError,
"sText"   => $sText,
);

?>


у вас как минимум нет require_once($sDirRoot."/config/config.ajax.php");
  • xyz
  • 0
avatar
Дак вот в чем и проблема то… если файл ложить в директорию со всеми остальными аякс-скриптами то все норм, а если нет то ошибка… Я понимаю, что что-то с этим
set_include_path(get_include_path().PATH_SEPARATOR.dirname(dirname(dirname(__FILE__))));
$sDirRoot=dirname(dirname(dirname(__FILE__)));
require_once($sDirRoot."/config/config.ajax.php");

Связанно, а что?
require_once($sDirRoot."/config/config.ajax.php");
Ставил, и указывал путь до config.ajax.php толку нет… только при прямом обращении пишет Hacking attemp!
avatar
как я понял проблема в
set_include_path(get_include_path().PATH_SEPARATOR.dirname(dirname(dirname(__FILE__))));

Какой данные нужно указать для папки /plugins/plugin_name/templates/ajax/
avatar
а абсолютный путь прописать?
и при чем здесь templates? set_include_path нужен для указания на папку движка
avatar
а абсолютный путь прописать?
До куда?
До config прописал
и при чем здесь templates? set_include_path нужен для указания на папку движка
Все вкурил… У меня в set_include_path стоит bla/папка движка/plugins/ а надо чтоб стояло /папка движка/
avatar
Лучше не использовать отдельные файлы для обработки ajax, вместо этого проводить обработку в экшене. Вот пример эвента для обработки ajax trac.lsdev.ru/livestreet/browser/tags/0.4.2/classes/actions/ActionBlog.class.php#L125
  • ort
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.