При работе из Frontenda данные методы получения информации о юзере ($modx->hasPermission,$modx->userLoggedIn,$modx->getWebUserInfo) не работают посредством выполнения на сервере и вывода через AJAX.
Возможно не передаются данные сессии. Как можно вытащить данные или проверить на принадлежность к админу на стороне сервера из фронтенда через AJAX или хотя бы без него?
How could number of mysql queries be more than number of tables in DB???
How could number of mysql queries be more than number of tables in DB???
-
☆ A M B ☆
- 1,086 Posts
Quote from: kpoxas at Sep 29, 2009, 06:02 PM
При работе из Frontenda данные методы получения информации о юзере ($modx->hasPermission,$modx->userLoggedIn,$modx->getWebUserInfo) не работают посредством выполнения на сервере и вывода через AJAX.
Возможно не передаются данные сессии. Как можно вытащить данные или проверить на принадлежность к админу на стороне сервера из фронтенда через AJAX или хотя бы без него?
Опишите, как Вы делаете AJAX-запрос к серверу?
Разработка сайтов и программных модулей на MODX.
Опыт работы на MODx с 2005 года. Высокое качество.
Компания Baltic Design Colors:
http://www.bdcolors.ru.
Исполняемый Фронтенд скрипт:
$j.ajax({
url: "index-ajax.php", // указываем URL и
dataType : "html", // тип загружаемых данных
data: "q=assets/snippets/ajax/ajax.php&id="+id,
type: "POST",
beforeSend: function(){
preview_img.fadeIn();},
success: function(msg){show(msg);}
});
На стороне сервера (assets/snippets/ajax/ajax.php):
<?php
header(’Content-type: text/html; charset=utf-8’,TRUE);
// Защита от некоторых опасностей при асинхронном вызове
require_once(MODX_MANAGER_PATH . ’/includes/protect.inc.php’);
// Установка режима MODx API
define(’MODX_API_MODE’, true);
// Подключаем необходимые файлы
include_once(MODX_BASE_PATH."manager/includes/document.parser.class.inc.php");
// Создаем объект MODx
$modx = new DocumentParser;
// Включение доступа к базе данных MODx
$modx->db->connect();
$modx->getSettings();
// Включение доступа к основным параметрам MODx
$gal_id=$_POST[’id’];
$result=$modx->runSnippet(’maxigallery’, array(
’display’ => ’normal’,
’embedtype’ => ’normal’,
’pics_per_row’ => 0,
’max_thumb_size’ => 200,
’max_pic_size’ => 0,
’quality_thumb’ => 100,
’thumb_use_dropshadow’ => 1,
’lang’ => ’ru’,
’gal_query_ids’ => $gal_id,
));
$description=$modx->getDocument($gal_id, ’content’, 1);
$result.=’<div class="description">’.$description[’content’].’</div>’;
/// Тут допустим, хочем узнать инфу о юзере и прикреплять кнопку с ссылкой на редактирование галереи
if($modx->hasPermission(’edit_template’))
{
$result.=’код кнопки’;
}
////-------------------------------------------------------
echo $result;
?>
Может в AJAX запросе нужно передавать какие-то параметры, возвращенные другими сниппетами?
How could number of mysql queries be more than number of tables in DB???