Модуль Blog

if ($mode == 'view') {
    $page_data = Tygh::$app['view']->getTemplateVars('page');
    $is_pagination = !empty($_REQUEST['page']);

    fn_print_r($_REQUEST);

    if ($page_data['page_type'] == PAGE_TYPE_BLOG) {
        list($subpages, $search) = fn_get_pages([
            'parent_id' => $page_data['page_id'],
            'page' => !empty($_REQUEST['page']) ? $_REQUEST['page'] : 0,
            'page_type' => PAGE_TYPE_BLOG,
            'get_image' => true,
            'status' => 'A',
            'sort_by' => 'timestamp',
            'sort_order' => 'desc'
        ], Registry::get('settings.Appearance.elements_per_page'));

        if (
            empty($subpages)
            && $is_pagination
        ) {
            return [CONTROLLER_STATUS_NO_PAGE];
        }

        Tygh::$app['view']->assign('subpages', $subpages);
        Tygh::$app['view']->assign('search', $search);
    }
}

это код контоллера pages.post.php из модуля Blog
Я пытаюсь сделать запрос ajax чтобы отложить загрузку(lazy load), но переменная $page_data
имеет значение null хотя если не делать ajax запрос то в переменной есть нужное значение. Подскажите пожалуйста почему $page_data имеет значение null при Ajax запросе и можно ли это исправить?

По какому URL делаете запрос?

pages.view

Какие еще параметры присутствуют в URL?

(function(_, $) {
    $( document ).ready(function() {
        $.ceAjax('request', fn_url('pages.view'), {
            data: {page: false},
            method: 'GET',
            result_ids: 'test_div',
            success: function(data) {
                console.log(data)
            }
        })
    });       
})(Tygh, Tygh.$);

это весь код запроса

Пообщавшись с chatgpt, с целью избежать токсичных высказываний, я пришёл со следующей информацией.

Для того, чтоб в page_data что-то было нужно передать в запрос параметр по которому отбирается информация по странице. В данном случае – параметр page_id.

(function(_, $) {
    $( document ).ready(function() {
        $.ceAjax('request', fn_url('pages.view?page_id=*сюда нужно прокинуть id текущей странички*'), {
            data: {page: false}, // Вот это какой-то мусор
            method: 'GET',
            result_ids: 'test_div',
            success: function(data) {
                console.log(data)
            }
        })
    });       
})(Tygh, Tygh.$);

открытый вопрос где взять id текущей странички. В js у Вас этой информации не будет, её туда нужно будет самостоятельно передать.
Если же Ваш скрипт пишется где-то в tpl файлах, то можете использовать {$page.page_id} (но я вижу, что Вы пишете код в js файле, а значит думай-те) :slight_smile:

Ну выше все верно написано. Вы ID нужной странице не передаете, поэтому и получаете пустой массив