We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 52752
    • 2 Posts
    Всем доброго времени суток!
    Задача: ajax'ом вызывать php файл, в котором вызывается снипет Gallery (для вывода галереи), собственно он вызывается, параметры передаются, все дела. НО, если перед вызовом Gallery поменять параметр чанка (tpl) для вывода результата, то аджакс запросу возвращается 500 ошибка, а если запускать в консоли то код просто работает вечно!

    НОООО, если попробовать сделать такой же вызов в ресурсе, иначе говоря вызвать галерею с одними параметрами, а потом с другими то всё окей!

    Вот и сам вопрос, в чём может быть проблема?

    PS: Я нуб полнейший, не кидайте камнями! smiley
    PPS: Приложу файлик к которому обращаюсь аджаксом.
    PPPS: Да, знаю я что html в php это плохо, но я только учусь.
    PPPPS: MODX Revo 2.5.0

    <?php
    // Если запрос не AJAX или не передано действие, выходим
    if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest' || empty($_REQUEST['action'])) {exit();}
    
    $action = $_REQUEST['action'];
    
    define('MODX_API_MODE', true);
    require_once $_SERVER['DOCUMENT_ROOT'].'/index.php';
    
    $modx->getService('error','error.modError');
    $modx->getRequest();
    $modx->setLogLevel(modX::LOG_LEVEL_ERROR);
    $modx->setLogTarget('FILE');
    $modx->error->message = null;
    
    $res = '';
    switch ($action) {
        case 'getAlbumContent':
            // Если не передан id страницы, тоже выходим
            $id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : 0;
            if (empty($id)) {
                exit();
            };
            
            $params = array();
            $params['album'] = filter_input(INPUT_POST,'id');
            $params['thumbTpl'] = 'photo-page-gall-item-block-1';
            $res = '<div id="sync1" class="owl-carousel">';
            $res .= $modx->runSnippet('Gallery', $params);
            $res .= '</div>    			<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
        				<div class="col-lg-5 col-md-5 col-sm-4 col-xs-4 divide-drk"></div>
        				<div class="col-lg-2 col-md-2 col-sm-4 col-xs-4 b-vinet"></div>
        				<div class="col-lg-5 col-md-5 col-sm-4 col-xs-4 divide-drk"></div>
        			</div><div id="sync2" class="owl-carousel">';
        	$params['thumbTpl'] = 'photo-page-gall-item-block-2'; // Вот он, тут и таистся косяк, если строку закоментить то всё ок!
    // но сжатия не будет!
            $res .= $modx->runSnippet('Gallery', $params);
            $res .= '</div>';
    
    }
    
    
    @session_write_close();
    exit($res);
    
      • 50304
      • 3 Posts
      Приветствую, зачем создавать свой PHP файл, если MODx обладает функциями полной абстракции ресурсов. Вам необходимо создать документ с пустым шаблоном и вызвать в нем сниппет, затем обратиться к нему. По сути то же самое получится, только используя API MODx полностью. Здесь можете посмотреть как это реализовано на примере формы обратной связи http://artemblog.ru/articles/modxrevo/ajax-v-modx-revo.html
        • 52752
        • 2 Posts
        Quote from: mot9imodx at Sep 13, 2016, 05:38 AM
        Приветствую, зачем создавать свой PHP файл, если MODx обладает функциями полной абстракции ресурсов. Вам необходимо создать документ с пустым шаблоном и вызвать в нем сниппет, затем обратиться к нему. По сути то же самое получится, только используя API MODx полностью. Здесь можете посмотреть как это реализовано на примере формы обратной связи http://artemblog.ru/articles/modxrevo/ajax-v-modx-revo.html
        Если честно то смысл вашего сообщения я не очень то и понял! В том-то и суть что в modx можно использовать что ресурсы, что файл, и работает это на сколько я знаю одинаково. Из этого можно сделать вывод что всё отработает с такой же проблемой.
        И ещё не понял утверждения что я использовал API MODX'а на полную, а в пример вы скинули ссылку на создание формы обратной связи, ещё и на сторонем снипете, у меня к примеру сделана так же AJAX форма связи именно таким способом... Вот поэтому я и не понял вашего ответа, может вы хотели уличить меня в глупости и не знании чего-то, извините если выразился грубо. НО к сожалению я не получил не ответ на свою проблему, ни вектор направления решения проблемы, не тем более новых знаний! Хотелось бы услышать от вас, хотя бы почему это не работает, и что я сделал не так.
        Но всё же спасибо хоть за какой-то ответ, ибо все форумы и сообщества MODX мертвы, в них перекати-поле гуляет, и это очень странно и печально ведь система как мне показалось очень хорошая и интересная, а комьюнити то ли матёрые web разработчики которым не интересно не с кем общаться и помогать, то ли очень вялое!
        Кароче куда меня не в ту степь понесло! smiley