Я тоже считаю, что руки оторвать. )) Этот параметр bDescPageNumbering принимает значения true или false и отвечает за показ так называемой "обратной навигации". По умолчанию она выключена (false). Обратная - т.е. когда находясь на 1 странице вы на самом деле находитесь на последней. При включённой обратной навигации по каким-то причинам параметр nPageSize не учитывается.
Если же передавать 'Y', то обратная постраничка работает с учётом nPageSize только на последней (реально первой) странице Вывод: неверная обработка типов данных
Большущее спасибо Это тоже решение. Правда, у него ограничение - при кол-ве записей больше 100К будет жесткий тормозняк БД. Сам я такое не проверял, но вот при помощи хэлпа по MySQL нашел статью в блоге, где об этом говорится. Там же предлагается иное решение, код которого я привожу ниже.
//Сколько случайных пользователей мы хотим получить?
$randUserCnt = 3;
//Получить общее кол-во пользователей
$totalUserCnt = CUser::GetCount();
//Вычисление фракции
$fraction = ($randUserCnt/$totalUserCnt);
//Искусственное приращение фракции для борьбы с плохим генератором при маленькой выборке.
$fractionInc = $fraction*1.8;
if ( $fractionInc < 1)
{
$fraction = $fractionInc;
}
//Формирование запроса
$myUserRandQuery = 'SELECT ID FROM b_user WHERE RAND() <= '.$fraction.' LIMIT '.$randUserCnt;
echo $myUserRandQuery."<br>";
//Делаем хитрый запрос к БД при помощи готового экземпляра класса CDataBase : $DB
$result = $DB->Query($myUserRandQuery, true);
while ($arRandUser = $result->Fetch())
{//Печать случайных ID пользователей
echo $arRandUser["ID"]."<br>";
}
Преимущества решения: + есть легкое средство борьбы с плохим генератором чисел. Он на любой ЭВМ имеет линейное распределение только при N > 100, т.к. реализовано на ПСЕВДОслучайном алгоритме. + способ не грузит БД, т.к. не заставляет её сортировать ничего и подходит для больших объемов данных - более 100 тыс пользователей
Недостатки метода: - иногда возвращается меньше пользователей, чем было запрошено. Причина - плохой генератор рандома. С этим легко бороться, если делать повтор и "добирать" нехватающих пользователей.
Решение опробовано для случая, когда кол-во пользователей N = 5 и N = ~30K Результат: пятерка с минусом.
Сейчас на моём сайте 23 тыщи 686 человек... надо выбрать 3 случайных... метод CUser::GetList не имеет возможности сократить кол-во полей в выборке до одного лишь ID.... дальше рассуждения продолжать?
Пойду я читать исходный код - как же рандомом выбирают элементы инфоблоков.
Это не решение. Даже попробовал запустить для спортивного интереса - глупо и не работает. Нельзя писать в фильтр условия сортировки. Они попросту будут пропущены при формировании SQL запроса да и всё.
Ну, буду как-нибудь выкручиваться с этой сортировкой по-другому.
Каждый сайт может иметь столько шаблонов дизайна, сколько вам захочется. После заполнения полей и сохранения появятся ещё поля для вписывания новых шаблонов сайта.
Если на каждой страничке у вас свой шаблон сайта, то выбирайте соотв условие применения шаблона - для папки или файла - и указывайте для какого конкретно.
Сам таким занимаюсь много и часто. Всё прекрасно работает.
Поэтому подсказываю костыль про главную страницу. По умолчанию у вас может быть включена опция, которая отбрасывает /index.php при обращении к главной. Чтобы эту опцию не отключать, сделайте так:
Как вынуть случайного пользователя или нескольких пользователей? Если бы дело касалось инфоблоков, то там есть $arSort = array("RAND"=>""); и дело сделано. А метод CUser::GetList такое не понимает. Может есть способ? Какой-нибудь, как обычно, недокументированный?
1. Выбрать все подразделы. 2. Перебор всех подразделов с выборкой элементов из каждого { 3. Если в выборке элементов данного подраздела 1 элемент, то переход к элементу 4. Если в выборке элементов их больше 1, то переход к разделу }
В хэлпе сказано, что при вызове функции Add должно автоматически отправляться письмо с подтверждением подписки, но этого не происходит. Однако подписчик добавляется в раздел "Подписчики".
Также у нас на сервере введена SMTP авторизация. Может быть из-за этого не отправляется почта??? И какие настройки в Битриксе отвечают за эту самую отправку писем?
У меня такая проблема: создаю форму подписки и заношу данные пользователя в список подписчиков - с этим проблем не возникает. Но эта же функция Add класса CSubscription должна также высылать письмо подписчику с кодом подтверждения подписки. А этого не происходит. Я уже перековырял все настройки Главного модуля и модуля Рассылок - не помогло.
Как мне правильно отправить пользователю письмо с кодом подтверждения рассылки??? Какие настройки для этого нужно сделать?
P.S.: Просто выпуски рассылки отправляются, значит все таки письма Битрикс может отправлять.
У нас имеется каталог квартир. У квартиры может быть несколько комнат вполне определленого типа, но каждая комната для каждого отдельно взятого дома имеет свою площадь. Как это можно реализовать средствами инфоблоков Битрикса???
Вот например, как реализовать структуру для хранения такой информации.