Eugen 29 января 2015 0 3
Здравствуйте.Бьюсь уже две недели.Установил MODX 2.3.2 sdk.
Галерея на аяксе после обновления кэша пишет в лог ошибку (ERROR @ /index.php) `` is not a valid integer and may not be passed to makeUrl(). Страница доступна после перезагрузки до следующего обновления кэша.
Буду благодарен за любую идею
3 комментария
Fi1osof1
Fi1osof 30 января 2015г в 02:08 #
Лоуконтекст.
Никто вам не сможет помочь, если вы так мало информации выдаете. Во-первых, нужна ссылка на проблемную страницу. Во-вторых, хорошо бы код видеть, где именно проблема возникает. Смысл ошибки только в одном: в метод $modx->makeUrl() передано пустое значение, вместо валидного числового. Но ведь надо еще разобраться почему там пустое значение передано.
E
Eugen 30 января 2015г в 19:29 #
Загружаю выбранную галерею:

function loadProject() {
        if(!ajaxLoading) {
            ajaxLoading = true;
            $('.project-details .project-content').load( targetFile + ' div.page', function(xhr, statusText, request) {
                if(statusText == "success") {
                    showProject();
                }
                if(statusText == "error") {
                    alert("An error as occurred"); ajaxLoading = false;
                    /* ==============================================
     Если делаю здесь перезагрузку location.reload(); всё работает                      
    =============================================== */
                  
                 
                }
            });
        }
    }

Вызываю из шаблона так:
[[!getResources?
                &level=`1`
                &limit=`0`
                &parents=`[[*id]]`
                &tpl=`base.html-portfolio-item`
                &includeTVs=`1`
                &processTVs=`1`
                &sortdir=`ASC`
                &showHidden=`1`
            ]]


При первом обращении после обновления кэша ошибка makeUrl().
Видимо в кэш записывается валидное числовое значение. Далее всё работает до обновления кэша.
Пробывал вылавливать ошибку, как описано здесь,
Вот такой лог:
[2015-01-30 21:13:02] (ERROR @ /index.php) #0 /pub/home/shorttra/omsk/core/cache/includes/elements/modsnippet/30.include.cache.php(180): modX->makeUrl('', '', Array)
#1 /pub/home/****/core/model/modx/modscript.class.php(70): include('/pub/home/short...')
#2 /pub/home/****/core/model/modx/modparser.class.php(513): modScript->process('&tv=`base.proje...')
#3 /pub/home/****/core/model/modx/modparser.class.php(247): modParser->processTag(Array, true)
#4 /pub/home/****/core/model/modx/modresponse.class.php(83): modParser->processElementTags('', '<!DOCTYPE html>...', true, false, '[[', ']]', Array, 10)
#5 /pub/home/****/core/model/modx/modrequest.class.php(145): modResponse->outputContent(Array)
#6 /pub/home/****/core/model/modx/modrequest.class.php(129): modRequest->prepareResponse()
#7 /pub/home/****/core/model/modx/modx.class.php(1412): modRequest->handleRequest()
#8 /pub/home/****/index.php(69): modX->handleRequest()
#9 {main}


Всё работало на 2.3.2 Traditional…
Благодарен за любой совет.
Fi1osof1
Fi1osof 30 января 2015г в 23:52 #
Ajax-ом вызываете?

1. Убедитесь, что у вас обязательно текущий контекст идет (обычно web).
2. Скорее всего у вас неверная последовательность тегов идет. К примеру, отрабатывается какой-нибудь кешируемый тег, для которого значения еще нет. Для получения галереи его значения еще нету. Но потом он еще раз где-то отрабатывается, и MODX уже имеет его значение в кеше, оно уже помогает найти нужную галерею. После сброса кеша опять этой переменной нет.
Дайте полный листинг сниппета #30 и того места, где он вызывается.

Всё работало на 2.3.2 Traditional…
P.S.: может в него обновиться? :) Кстати, 2.3.3. вышла.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.