Евгений Жуков написал: Добрый день! Эта ошибка будет исправлена в обновлении sale 14.11.8. До его выхода Вы можете:
1. Использовать Fetch вместо GetNext 2. Обратиться в ТП за фиксом 3. Самому внести следующие исправления: файл /bitrix/modules/sale/general/delivery.php класс CAllSaleDelivery, метод GetLocationList заменить строку
Код
return new DB\ArrayResult(array());
на
Код
$dbResult = new CDBResult();
$dbResult->InitFromArray(array());
return $dbResult;
Приносим свои извинения.
Воспользовался третим вариантом, внёс изменения в код модуля.
Собственно теперь метод возвращает пустой массив. А как же всё таки получить список местоположений для службы доставки. Нам важно пометить города в списке выбора на которые распространяется эта служба доставки. Соответственно, мне нужно узнать список городов в которых работает эта служба доставки.
Здравствуйте, столкнулся с странной проблемой. Нужно получить список местоположений для службы доставки. Согласно документации для этого служит метод CSaleDelivery::GetLocationList. Пишу следующий код:
Код
<?
CModule::IncludeModule("sale");
$arFilter = array(
'DELIVERY_ID' => 1
);
$cdbLications = CSaleDelivery::GetLocationList($arFilter);
$arLocations = array();
while ( $arLocation = $cdbLications->GetNext() ) { //Ошибка в этой строке, при вызове метода GetNext()
$arLocations[] = $arLocation;
};
?>
<pre>
<?print_r($arLocations);?>
</pre>
где DELIVERY_ID => 1 - это ID реально созданной службы доставки. В итоге получаю ошибку при попытке обработать объект CDBResult:
Код
Fatal error: Call to undefined method Bitrix\Main\DB\ArrayResult::GetNext() in /var/www/test/index.php on line 13
Борис М. написал: Здравствуйте! Почему в форме добавления элемента bitrix:iblock.element.add тип поля "Справочник" не выводится как список? Хотя в аминке как список выводится.
Старый шаблон компонента. Не добавили вывод такого типа свойства.
Алексей Задойный пишет: Группа администраторов случайно не добавлена в настройках композита в "анонимные"? Если да, то система воспринимает её как подлежащую показу композитного сайта. А если композитная страница уже создана для неавторизованной группы... Ну, вы поняли, что происходит )))))
Здравствуйте, Алексей. Нет, администраторы не добавлены в группы котороые считаются анонимными
Цитата
Алексей Задойный пишет: Касательно "не заработал" - кнопка появилась? Самый простой способ проверить заработал ли композит для конкретной страницы - неавторизованным юзером посмотреть есть ли кнопка. Иногда нужно обновить страницу (первый раз отображается старый некомпозитный кеш, бывает)
Кнопки нет, открывал сайт в режиме инкогнито.
Вот так пытаюсь подготовить компонент, может что то делаю не так.
Всем доброго времени суток. Решили попробовать новую, стильную, модную, молодёжную технологию "Композитный сайт". Настроили nginx по инструкции. Вот такой конфиг получился:
Код
server {
server_name mysite.ru www.mysite.ru;
listen 8.8.8.8;
listen 8.8.8.8:443;
charset utf8;
# default path to cache file
set $test_file "bitrix/html_pages/$host$uri/index@$args.html";
set $storedAuth "";
set $usecache "";
# check user auth
if ( $cookie_BITRIX_SM_LOGIN != "" ) { set $storedAuth "A"; }
if ( $cookie_BITRIX_SM_UIDH != "" ) { set $storedAuth "${storedAuth}B"; }
if ( $cookie_BITRIX_SM_CC != "Y" ) { set $storedAuth "${storedAuth}C"; }
# check all conditions for enable composite
if ( $http_bx_action_type = "" ) { set $usecache "A"; }
if ( $request_method = "GET" ) { set $usecache "${usecache}B"; }
if ( $cookie_BITRIX_SM_NCC = "" ) { set $usecache "${usecache}C"; }
if ( $http_x_forwarded_scheme !~ "https" ){ set $usecache "${usecache}D"; }
if ( $storedAuth !~ "ABC" ) { set $usecache "${usecache}E"; }
## cache location
location ~* @.*\.html$ {
internal;
root /var/www/user/data/www/mysite.ru/cache;
}
location / {
root /var/www/user/data/www/mysite.ru;
proxy_pass http://8.8.8.8:81;
proxy_redirect http://8.8.8.8:81/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
if ( -f "$document_root/$test_file" ) { set $usecache "${usecache}F"; }
if ($usecache = "ABCDEF" ){ rewrite .* /$test_file last; }
gzip_min_length 1100;
}
location ~* ^(.*)\.php$ {
root /var/www/user/data/www/mysite.ru;
set $test_file "bitrix/html_pages/$host$1@$args.html";
if ( -f "$document_root/$test_file" ) { set $usecache "${usecache}F"; }
if ($usecache = "ABCDEF" ){ rewrite .* /$test_file last; }
proxy_pass http://www.mysite.ru:81;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root /var/www/user/data/www/mysite.ru;
access_log /var/www/nginx-logs/user isp;
access_log /var/www/httpd-logs/mysite.ru.access.log ;
error_page 404 = @fallback;
}
location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
proxy_pass http://8.8.8.8:81;
proxy_redirect http://8.8.8.8:81/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
location @fallback {
proxy_pass http://8.8.8.8:81;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
include /usr/local/ispmgr/etc/nginx.inc;
ssl_certificate /var/www/httpd-cert/user/mysite.ru.crt;
ssl_certificate_key /var/www/httpd-cert/user/mysite.ru.key;
}
* - url и ip были заменены умышленно
Дополнительно из-за необходимости перенаправления URL с mysite.ru на www.mysite.ru был изменён стандартный .htaccess:
В итоге при авторизации (публичная часть сайта) авторизация проходит успешно (появляется админ. панель), но после следующего обновления\перезагрузки страницы, авторизация слетает. Причём судя по пустой папке /var/www/user/data/www/mysite.ru/cache и пустой (кроме конфиг файлов) папке /bitrix/html_pages композитный режим не заработал. Помогите пожалуйста, очень уж заманчивая технология.
ID созданого агента возвращается. Причём агент выполняется в этот момент. Но его нет в списке агентов в админке /bitrix/admin/agent_list.php?lang=ru. Подумал, что это очень странно и попытался добавить агента руками. После нажатия кнопки сохранить, агента так же нет в списке. Пошёл ещё дальше, полез в базу добавлять агент ручками в таблицу b_agent. Запись создаётся и тут же удаляется. Товарищи знатоки, внимание вопрос. Какого х...я? Что происходит?
Lyubin.Evgeniy пишет: Спасибо за ответ. НО! Так в этом и вопрос, что я не могу получить ID_РОДИТЕЛЯ. Как его достать, если я в результате следующего кода:
Lyubin.Evgeniy пишет: Вставил код из ссылки, в результатах вижу название раздела 1.1, есть также, как Вы и написали, в IBLOCK_SECTION_ID номер родительского раздела 1. Так а вот как вытащить его имя, простите, но не понимаю. Параметр Name для IBLOCK_SECTION_ID либо я не правильно пытаюсь считать, либо он не считывается.
AlexBelkevich пишет: Подскажите... Делаю руками (подключаю модуль) авторизацию на сайте. Прописал вот так (пишу часть html кода, а не полностью): <a class="text" href="/auth.php?register=yes"><a class="text" href="/auth"> После этого вышел из сессии и теперь при нажатии на кнопку Вход мне выдается такая ошибка: Service Temporarily Unavailable. You have made too many requests per second. И как мне теперь войти? и Вообще, что это... Почему не работает? Что не так делаю? Спасибо!
Всё нормально, сработала защита. Вы просто слишком часто обновляли страницу. Через 15 минут всё заработает. Можете отключить это в настройках модуля статистики.
Здравствуйте, использую стандартный комплексный компонент каталога, с шаблоном offers. Есть каталог товаров и пакет торговых предложений. Почему то при просмотре товара (детальная страница), выводятся торговые предложения (цены, кнопка в корзину), а в списке товаров (компонент catalog.section) надпись "Нет на складе". Что я делаю не так, помогите?
Здравствуйте. Возникла проблема, пишу Ajax авторизацию, проблемы возникли с CAPTCHA, точнее с её проверкой. Картинку генерирую нормально, SID подставляю, в консоле смотрел, данные на php обработчик улетают и вставляются из массива $_REQUEST в метод для проверки. Вот тут и проблема, всегда возвращается false. Как так то, объясните.
То что SID у картинке в URL и в скрытом поле соответствует - 100%.
К сожалению, при таком подходе пользователь может задавать только значение ключа, но сам ключик не может. Мне нужно создать массив меню для компонента. Что бы пользователь вводил пару "пункт меню" и "ссылка меню".
Здравствуйте, не могу найти в дефолтных компонентах подобного свойства. Необходимо кастомизированному компоненту в файле .parameters.php добавить множественное свойство типа ключ => значение, где ключ и значение, произвольная пользовательская строка. Подскажите, как это сделать? Может быть кто то видел в каком то компоненте подобное?
Имеется очень модернизированный "прямыми руками" компонент "Каталог". После добавления товара в корзину не передётся DETAIL_PAGE_URL. Зато есть ID торгового предложения. Скажите как можно имея ID торгового предложения получить товар при помощи CIBlockElement::GetList?
P.S.: попробуйте вызвать Fetch() вместо GetNext() в вашем примере
Спасибо Вам, GetFileArray() помог. Но это явно проблема битрикса, полез дебажить модули. Дошёл пока что до того, что метод GetByID класса CAllFile уже возвращает массив без SRC, проблема где то в методе GetFromCache. Если быть точнее где то здесь, потому что дальше $ar уже без SRC.