Вы не зашли.
easmik, а что потом с этой выборкой надо делать?
Вообще алгоритм простой:
1. Храним поле xfields в персональном поле БД
2. Делаем выборку на основе значения этого поля
Amarelius, nginx и динамику отлично кеширует (если это позволяет бизнес-логика сайта).
На одном сайте с WP получили ~10-15 кратное ускорение - вместо постоянной 100% загрузки i7-920 и тормозов - получили среднюю нагрузку на процессор в ~20% и полное отсутствие торможения.
legenda, воспользуйся советом хостера - меняй движок
А если серьёзно, то на такой посещаемости варианты "делаем всё по дефолту" уже не работают, нужна более тонкая настройка.
Советы по улучшению производительности - самые обычные:
1. Оперативки у тебя ОЧЕНЬ много - необходимо настроить mySQL чтобы он смог использовать хотябы гиг. Заодно учим его создавать временные таблицы только в памяти.
2. Проверить, что в mysql работает query cache и ему достаточно памяти, проверить что все индексы помещаются в кеш индексов
3. Отключить в новостях учёт кол-ва просмотров новостей, это позволит максимально улучшить работу query cache:
в файле engine/includes/news.php убери строки (достаточно закомментировать строку с $mysql->query())
// Update visits counter if we're not in emulation mode
if ((!$callingParams['emulate'])&&($callingParams['style'] == 'full')&&(intval($_REQUEST['page'])<2))
$mysql->query("update ".prefix."_news set views=views+1 where id = ".db_squote($row['id']));
4. Оптимизируем настройки apache для правильного использования ядер, оптимизируем mysql для хорошей работы в multithreaded режиме (чем чёрт не шутит, вдруг у тебя этот режим вообще отключен?)
5. Если у тебя странички для залогиненных пользователей не отличаются от страниц для незалогиненных, то используем возможности nginx по кешированию страниц. Если отличаются - действий станет заметно больше, но всё-равно решаемо.
Пункты 1-4 могут дать прирост скорости в 5-10 раз (самый главный результат - эти "медленные" запросы будут исполняться единицы ms, а не секунды).
Последний пункт при правильном подходе может ускорить сайт раз в 100 (в реальности - даст прирост в 3-10 раз, всё очень сильно зависит от кол-ва страниц).
easmik, ты точно не обновлял код двига до SVN версии?
В описании ChangeSet'а 938:
[!!!] Изменение структуры таблицы ng_news [!!!]
Для корректной работы вам необходимо вручную выполнить следующие mySQL запросы в БД с установленной NGCMS:
alter table ng_news add column catpinned tinyint(1) default '0'
alter table ng_news drop index news_mainid;
alter table ng_news add index news_mainid (`approve`,`mainpage`,`pinned`,`id`)
alter table ng_news add index news_catid (`approve`,`catpinned`,`id`)
Мой косяк, не учёл это обновление в upgrade.php
Nell, пока не существует.
Работы ведутся (можно будет использовать любую аналогичную прогу, включая указанный тобой Windows Live Writer), но точных сроков сейчас нет.
Давай угадаю - в настройках в параметре "E-mail адрес с которого сайт будет отправлять письма" у тебя стоит email адрес в домене @mail.ru, верно?
В таком случае причина ошибки проста - mail.ru не допускает таких вольностей (когда неизвестно откуда начинают присылать письма где в "From" стоит их домен).
Velaskes, Настройки => Настройки системы => Основные настройки => Реакция на неизвестный URL - определяет что именно увидит пользователь.
А при обращении к несуществующей дате календаря пользователь и так получит 404ю ошибку (не уверен про релиз, но в SVN версии это давно так).
jam214, не поверишь - в интернете
Набираешь в поисковике "TWIG" и читаешь много-много полезных статей по TWIG'у.
блин, дожился до того что отписываюсь в ветке, созданной ботом
Вот поэтому и пришлось его сообщение редактировать, а не просто грохать
Я не представляю способов достоверно отличить человека от бота кроме аля-капча проверок (не обязательно картинка - может быть какой-то вопрос и т.д.).
Я сам тоже нередко регистрировался на ресурсах только тогда, когда возникало желание что-то написать. А читать без регистрации мог месяцами..
Видимо основная задача - сделать бесполезным постинг.
К примеру, не "подсвечивать" ссылки от новых пользователей (пока постов менее X + время с момента первого поста менее Y).
qwas, запроси логи отправки у своего хостинг провайдера.
Возможно по какой-то причине он считает письма неправильными и блокирует их.
Либо - в php не настроена функция отправки email'ов или настроена как-то хитро
В общем, все вопросы к провайдеру, он скорее всего укажет на ошибку и тогда можно будет решить проблему.
legenda, важно - тут должна стоять цифра 0
Так... не то чтобы "должно быть", но работает именно так.
Открой engine/core.php, найди строки:
// Override TimeZone warning generator for PHP >= 5.1.0
if (function_exists('date_default_timezone_get') && function_exists('date_default_timezone_set')) {
date_default_timezone_set ( @date_default_timezone_get() );
}
и замени на:
// Override TimeZone warning generator for PHP >= 5.1.0
if (function_exists('date_default_timezone_get') && function_exists('date_default_timezone_set')) {
date_default_timezone_set ( 'Europe/Moscow' );
}
Если в твоей версии таких строк нет, то просто добавь их в начало core.php
p.s. И ставить Europe/Moscow совершенно не обязательно, можешь выбрать свой регион из этого списка
cmsTester, только если администратор сам в заголовок своей же новости положит JS код для воровства cookie..
cmsTester, проблем не было в разделе "Управление базой данных", уязвимости были.
В принципе самой опасной из них была XSS уязвимость при удалении новости, добавленной недоверенным пользователем.
Остальные в большей мере чисто теоретические.
Velaskes, тогда уж надо делать как на хабрахабре - пользователю даётся X (там стоит x=1) попыток на вход без капчи, все последующие - только после ввода капчи.
И пользователям серьёзно не мешает и брут-форс ограничивает.
Хотя при серьёзном подходе не будет больших проблем сделать авто-распознавалку капчи..
cmsTester, в релизе проблемы не было. Она появилась в процессе разработки и была быстро устранена в ближайших ChangeSet'ах
kolia, есть смысл сделать бекап и обновиться до последней SVN версии:
* заменяешь файлы движка
* запускаешь engine/upgrade.php
* читаешь список изменений в SVN, там чётко указано какие действия необходимо сделать
easmik, перенёс howard'а в группу пользователей, теперь он должен всё видеть сам
Этот шаблон работает только для статических страниц.
1. Создаёшь каталог (если его ещё нет) /templates/ТВОЙ_ШАБЛОН/static/
2. Кладёшь туда шаблон для своей статической странички (опять же - если нет)
3. Создаёшь замену для main.tpl и создаёшь под именем ШАБЛОН_СТРАНИЦЫ.main.tpl
4. В настройках конкретной статической страницы выбираешь шаблон и ставишь галочку "Использовать main.tpl из шаблона"
По файлам у тебя будет выглядеть примерно так:
/templates/myTemplate/static/static1.tpl - шаблон статик странички
/templates/myTemplate/static/static1.mail.tpl - замена main.tpl для данной статик странички
vitaly, файл engine/conf/perm.default.php должен быть до установки или после?
До
и ещё такой вопрос начиная с какой версии в корне появился файл syscron.php? и за что он отвечает?
Появился в SVN ChangeSet 916
+ Добавлен новый скрипт - /syscron.php, позволяющий выносить задачи обслуживания (maintanance) в отдельный поток при наличии доступа к системному планировщику (cron).
Использование: настроить обращение cron к данному скрипту (к примеру, через wget) с периодичностью "каждые 5 минут".
В такой реализации задача по созданию резервной копии БД будет переложена на новый скрипт.
Остальные задачи обслуживания на данный скрипт можно будет перенести чуть позже.
Евгений, к URL'у формы добавляешь в конце &linked_id={news-id} (в шаблонах news.short.tpl / news.full.tpl), а в настройках самой формы выставляешь нужный тебе режим в поле "Привязка к новости"
Все сначала ставится но в самом конце инсталяции у меня вот такой вот облом, дальше ни админка ни сайт неработают
Дай доступ по FTP к хостингу на котором это происходит, посмотрю.
Эту ошибку выводит функция loadPermissions(), но по-нормальному она этой ошибки (при наличии файла perm.default.php) выдавать не должна.
vitaly, а можешь помочь разобраться с прикреплением формы обратной связи к новостям? Был бы очень признателен!
А что именно надо?
Встроить форму в новость или в новости поставить ссылку на форму и присылать админу ссылку на новость с которой переходили на форму?
Второе есть и работает
legenda, а двиг при этом ставится и работает или нет?
В SVN выложена обновлённая версия плагина tags:
[0.23][2012-05-20]
% Исправлена ошибка с кешированием облака тегов (теперь кеш работает корректно)
+ Для облака тегов добавлена возможность выводить теги только по новостям за последние X дней
!!! Перед использованием данной возможности необходимо обновить структуру БД (upgrade.php) и !!!
!!! выполнить "обновить счетчик новостей" в настройках БД !!!