We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 16289
    • 121 Posts
    При работе из Frontenda данные методы получения информации о юзере ($modx->hasPermission,$modx->userLoggedIn,$modx->getWebUserInfo) не работают посредством выполнения на сервере и вывода через AJAX.
    Возможно не передаются данные сессии. Как можно вытащить данные или проверить на принадлежность к админу на стороне сервера из фронтенда через AJAX или хотя бы без него?
      How could number of mysql queries be more than number of tables in DB???
      • 16289
      • 121 Posts
      Мнений нет?
        How could number of mysql queries be more than number of tables in DB???
        • 28814 ☆ 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.
          • 16289
          • 121 Posts
          Исполняемый Фронтенд скрипт:


          $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???