не, ты фишку не просек :-] если от юзера в $_COOKIE прилетит нечто похожее на '; DELETE FROM prefix_user; /*
или '; INSERT INTO prefix_administrators ('user_id') VALUES ('НАШ_ЮЗЕР_ИД'); /* или еще чтонибудь в этом духе, то будет ох и ах ;-)
мессадж коммерческим разработчикам: можете попытаться сделать свои продукты массовыми — продавать сильно обфускированный вариант дешевле (скажем по 1000р), с полностью открытым кодом — дороже. в результаты кто хочет просто юзать — покупает дешево, кто не просто — дороже.
Опять же известный факт: снижение цены часто вызывает рост спроса. демпинг иногда вообще выливается в лавинообразный рост спроса на продукт/услугу с которым иногда даже продавец/исполнитель не могут справиться, т.е. удовлетворить спрос.
Почему бы не прикрутить возможность оплаты VISA-й/MasterCard-ом, вебманями, я.деньгами? :)
Получился бы нормальный интернет-магазин проверенных расширений ЖУ.
Ну и возможны всякие скидка, типа «разместил лайт-версию платного — получи x% скидку на размещение» или «разместил 10 бесплатных расширений — получи бесплатное размещение одного платного». вариантов можно много придумать.
//Собираем начальные сведения о комментах
$sql = $oDbSimple->select("SELECT comment_id FROM ".DB_TABLE_TOPIC_COMMENT."");
//Получаем количество строк в таблице комментов
$rows=count($sql);
Мама, роди меня обратно! :))
бедный, бедный сервер которому придется выполнять это+нижеследующие запросы на каждый результирующий ряд этого. да еще и периодически.
веб студия, блин.
сделали сайт на дефолтном шаблоне ЖУ (оренпланет). сфинкс поставить на сервер не удосужились, но, в тоже время, не затруднили себя удалением соответствующей формы из шаблона…
а закладку сделать очень просто — смотри текущий шаблон в папке ActionSearch. Естественно чтобы добавить поиск по полям профиля еще нужно дописать в модуле и экшене соответствующий функционал. но об этом в вопросе выше не было не слова.
вопрос был только про конфиг Сфинкса
я думал, что в первом своем ответе расписал максимально подробно чего не так и что нужно сделать :-)
в твоем текущем конфиге надо всего-лишь написать первый запрос с условием WHERE user_id>=$start AND user_id<=$end вместо того, что сейчас написано.
ЗЫ: еще раз перечитал свой ответ предыдущий — всетаки то, что написано выше является единственным его следствием :-) Разве нет?
sql_query и sql_query_range друг другу противоречат.
во втором запросе получаются минимальное и максимальное значения атрибута, по которому будет разбиваться процесс индексации по шагам, а потом начинает выполняться 1ый запрос с подстановкой переменных start и end через заданный 3им свойством шаг.
Смотримс что согласно твоему конфигу получается:
1. получили минимальное и максимальное значение юзер_ид.
2. начали выполнять запрос
<code>SELECT user_id, user_login, UNIX_TIMESTAMP(user_date_register) as user_date_register \
FROM prefix_user \
WHERE user_date_register>=МИНИМУМ_ИЗ_ПЕРВОГО_ПУНКТА AND user_date_last<=МИНИМУМ+ШАГ(5000)</code>
.
потом переменные инкрементируются на значение шага (5000) и запрос выполняется снова. и тд до максимального значения юзер_ид.
Гениальная мысль: почему это указана разбивка по юзер_ид (что вообщем-то логично), но значения айдишников подставляются для сравнения с датой регистрации юзера в формате временной метки юникс (количество секунд, прошедшее с 1.01.1970г — число на данный момент сильно большое).
Логично предположить, что юзеров с регистрацией 1...5000...10000… сек на сайте, созданном в 2009 году быть не может :-), следовательно, 1ый запрос выдает 0 рядов результата. Отрабатывая при этом совершенно верно, как написано :-)
Резюме: в 1м запросе необходимо указать условие по user_id. Как переписать запрос для этого, я думаю, подсказывать нет необходимости =)
дело в том, что для выдачи списка комментов/топиков используются стандартные движковые шаблоны, а в них передается только плоский список объектов соответствующего типа. смешивать — это лишние затраты ресурсов и костылей получается.
К тому же, имхо, ценность найденного топика сииильно больше, чем комментария — поэтому топики и выдаются по-дефолту :)
Достаточно в файле include/functions.php изменить функцию шифрования (по умолчанию там однократный мд5 стоит). движок ее вызывает для получения хеша пароля.
А слегка переписав класс User можно интегрировать ЖУ с чем=нибудь наподобие ActiveDirectory, чтобы все что можно от туда бралось. и авторизация была единая :)
Уже озвучивал идею: сделать ЖУ-специфичный хостинг. За деньги :)
Чтоб одной кнопкой создавался сайт (в смысле настройка поиска, мемкеша) гуй-конфигуратор настроек. Популярность движка растет — можно немного подзаработать, особенно если сервер не особо нагружен.
А, ну да. В качестве склонятора существительных при числительных можно заюзать как стандартный способ расчета формы существительного. а можно какнить попробовать Яндекс.Склонятор
Добавление у себя в профиле какого-либо места в посещенные не отражается на странице этого места (по урл-у область/нас.пункт). т.е. там пишется что никто не посещал и желающих также нет. Обратное тоже верно )
или '; INSERT INTO prefix_administrators ('user_id') VALUES ('НАШ_ЮЗЕР_ИД'); /* или еще чтонибудь в этом духе, то будет ох и ах ;-)
и это называется SQL-инъекция
Опять же известный факт: снижение цены часто вызывает рост спроса. демпинг иногда вообще выливается в лавинообразный рост спроса на продукт/услугу с которым иногда даже продавец/исполнитель не могут справиться, т.е. удовлетворить спрос.
Получился бы нормальный интернет-магазин проверенных расширений ЖУ.
Ну и возможны всякие скидка, типа «разместил лайт-версию платного — получи x% скидку на размещение» или «разместил 10 бесплатных расширений — получи бесплатное размещение одного платного». вариантов можно много придумать.
Мама, роди меня обратно! :))
бедный, бедный сервер которому придется выполнять это+нижеследующие запросы на каждый результирующий ряд этого. да еще и периодически.
сделали сайт на дефолтном шаблоне ЖУ (оренпланет). сфинкс поставить на сервер не удосужились, но, в тоже время, не затруднили себя удалением соответствующей формы из шаблона…
вопрос был только про конфиг Сфинкса
в твоем текущем конфиге надо всего-лишь написать первый запрос с условием WHERE user_id>=$start AND user_id<=$end вместо того, что сейчас написано.
ЗЫ: еще раз перечитал свой ответ предыдущий — всетаки то, что написано выше является единственным его следствием :-) Разве нет?
во втором запросе получаются минимальное и максимальное значения атрибута, по которому будет разбиваться процесс индексации по шагам, а потом начинает выполняться 1ый запрос с подстановкой переменных start и end через заданный 3им свойством шаг.
Смотримс что согласно твоему конфигу получается:
1. получили минимальное и максимальное значение юзер_ид.
2. начали выполнять запрос
.
потом переменные инкрементируются на значение шага (5000) и запрос выполняется снова. и тд до максимального значения юзер_ид.
Гениальная мысль: почему это указана разбивка по юзер_ид (что вообщем-то логично), но значения айдишников подставляются для сравнения с датой регистрации юзера в формате временной метки юникс (количество секунд, прошедшее с 1.01.1970г — число на данный момент сильно большое).
Логично предположить, что юзеров с регистрацией 1...5000...10000… сек на сайте, созданном в 2009 году быть не может :-), следовательно, 1ый запрос выдает 0 рядов результата. Отрабатывая при этом совершенно верно, как написано :-)
Резюме: в 1м запросе необходимо указать условие по user_id. Как переписать запрос для этого, я думаю, подсказывать нет необходимости =)
Гениальная догадка:
К тому же, имхо, ценность найденного топика сииильно больше, чем комментария — поэтому топики и выдаются по-дефолту :)
А слегка переписав класс User можно интегрировать ЖУ с чем=нибудь наподобие ActiveDirectory, чтобы все что можно от туда бралось. и авторизация была единая :)
Чтоб одной кнопкой создавался сайт (в смысле настройка поиска, мемкеша) гуй-конфигуратор настроек. Популярность движка растет — можно немного подзаработать, особенно если сервер не особо нагружен.