Вы не зашли.
t3s, в голову приходит только патч в xfields, которые будет при выводе нужных тебе переменных пропускать их через необходимое регулярное выражение.
Ага, с пачкой запросов теперь понятно - это работа xfields (обработка приложенных к новости изображений через поле "группа изображений").
На каждую новость делается по одному SQL запросу.
А это значит, что у тебя при отображении страницы показывается 38 новостей, каких-либо вариантов кеширования этой информации нет, да и судя по debug'у - особой нужды в кеше тоже нет (смотри на время исполнения запросов).
Но тут вопрос в другом - к примеру сравниваем ("вариант с включенным similar"):
0.030 0.012 Template engine is activated
0.140 0.110 DB connection established
ЧТО в этот момент происходило с БД ??
У тебя явно какая-то нестабильная нагрузка на БД, что приводит к таким глюкам.
Относительно xfields - я бы не советовал смотреть на кол-во SQL запросов (хотя они тоже роль играют).
Основное всё-таки - время исполнения.
И даже если взять 0.8 сек за время исполнения (и кол-ве одновременных потоков = 4, обычно даже большее кол-во спокойно работает), то нагрузка в пике у тебя выходит порядка (1/0.8)*4 = 5 запросов в секунду.
Это действительно так?
Ну и на последок, обрати внимание на:
0.862 0.463 func EXEC_ACTS (index): call function "showTablesMain" [1 params] for 0.4632 sec
в варианте "с включенным similar" - из он тратит 463ms из 882ms (время исполнения скрипта) = 52% (больше половины времени работы !!!)
Попробуй отключить конкретно эту функцию (не знаю из какого она плагина), скорость работы сайта должна увеличиться в 2+ раз.
Wolverine, этот топик можно скорее считать способ сообщить народу "извне", что их помощь также требуется
Ну и позволит надеяться на адекватное время реагирования от тех, кто осознанно изъявил желание помогать.
Неплохо, если багов нет в разных браузерах, то могу залить в SVN, думаю никто против не будет, смотрится лучше текущего.
Полностью согласен,.. но перед заливкой лучше ещё раз проверить на предмет корректности кода (отсутствие ошибок в именах переменных).
Dimas, тесты (устраивающие всех) сделать крайне сложно, т.к. разные хостеры дают "разные" мегагерцы, технологии виртуализации также по разному кушают ресурсы.
Вот пример - что будет быстрее, VPS с "1GHz CPU", либо твой "211.468 Mhz", отрезанный от одного ядра i7-920.
Очевидно, что если "1GHz" это "в сравнении со старым Celeron'ом", то твои 211 MHz будут намного быстрее.
Того что у тебя есть должно хватить на 3+ запроса в секунду (взято с огромным запасом, в реальности цифры должны быть больше).
3 запроса/сек с учётом неравномерной нагрузки в разное время суток позволят обработать 100+k хитов в сутки (это 10-50k посетителей)... а на такой посещаемости узким местом у тебя станет совершенно неоптимальная настройка Web сервера (которую делают хостеры по умолчанию)
legenda, обрати внимание на слова Wolverine'а.
У тебя на что-то совершенно непонятное уходит 43 секунды!!
При этом сам двиг отрабатывает почти мгновенно.
Причины могут быть 2:
1. Непонятные аппаратные проблемы у хостера (вероятность - не более 2-3%)
2. Кто-то модифицировал код двига. Если не ты, то троян.
Давай доступы, надо проверять файлы в engine/
Wolverine, текущая версия не отслеживает чётко момент запуска и на сайтах с высокой посещаемостью возможен одновременный запуск бекапилки.
legenda, ужас.
Штатно новость показывается в шаблоне первой по счету категории.
Если хочешь, можно научить (патчем) отображать новость в шаблоне той категории куда зашел посетитель,... а у тебя выходит что-то ещё более сложное? Я, честно говоря, даже идею до конца не понял
Wolverine, спасибо за комментарий
Самопальный cron делался в момент, когда серверный крон получить было практически нереально.
Доработаю немного "самопальный" крон чтобы его можно было использовать совместно с серверным
Заодно можно будет решить и проблему с автогенерацией бекапов.
Vaha, если делать доработку плагина, то потребуется его сильно переделывать (тогда уж нужна поддержка изменения любого набора параметров по расписанию).
Могу предложить такой вариант - сделай клон плагина nsched (как ты и предлагал), но клон отвечающий за прикрепление новостей.
Алгоритм:
1. Копируешь содержимое каталога engine/plugins/nsched/ в engine/plugins/nxsched/
2. В файле version исправляешь имя плагина с nsched на nxsched
3. В install.php/uninstall.php/config.php также меняешь nsched на nxsched
4. В nsched.php меняешь все nsched на nxsched, находишь строки:
// Запускаем модификацию новостей
if (count($listActivate)) {
massModifyNews(array('data' => $dataActivate), array('approve' => 1, 'nsched_activate' => ''), false);
}
if (count($listDeactivate)) {
massModifyNews(array('data' => $dataDeactivate), array('approve' => 0, 'nsched_deactivate' => ''), false);
}
и в них заменяешь approve на pinned
5. В админке (engine/skins/default/tpl/ add.tpl и edit.tpl после строки:
{% if (pluginIsActive('nsched')) %}{{ plugin.nsched }}{% endif %}
добавляешь аналогичную с nxsched.
Всё, на первый взгляд у тебя должен получиться корректно работающий клон, который позволит по расписанию управлять галочкой "прикреплено".
а php скрипты поддержка есть?
Нет и сделано это в некоторой мере специально.
Штатно предлагается обёртывать код в плагин для NGCMS.
Но на форуме выложены варианты хаков, которые добавляют поддержку PHP.
kpripper, правильно писать
<!--more-->
Funn, шаблоны от DLE нам не подходят
Просто корни у обоих систем одни, поэтому шаблонная система достаточно похожа.
$tRecs = array();
foreach ($mysql->select($query) as $row) {
$tRecs []= array(
'a' => $row['a'],
'b' => $row['b']
);
}
и используешь $tRecs
legenda, а в БД посмотреть можешь? Там прописываются изменения?
legenda, удалить плагин и установить его заново.
Штатно сделать пока нельзя, в ближайшие дни выложу в SVN патч, который позволит решить данную проблему.
kolia:
1. На каком URL'е у тебя возникает эта ошибка?
2. Есть ли каталог templates/universal ?
kpripper, в настройках категорий есть 2 элемента:
* Заголовок - он отображается в меню
* Информация - этот блок отображается на странице самой категории
Видимо тебе нужно заполнять второе поле.
fedor-jan, самый простой способ - сделать плагин-обёртку.
либо самостоятельно маньячить с cookie пользователя для его идентификации.
С advego можно, интерфейс не слишком крутой правда.
[0.1] [01.12.2011]
- Первый релиз.P.S. Фактически первый шаг к плагину RSS-import.
Может тогда уж проще взять rss_import (так до конца и не доделан) и сделать что-то на его базе?
Нельзя.
Сейчас я экспериментирую с Weblog API, но даже до открытого тестирования пока далеко.
Да, но я не нашел, как изменять и удалять стандартные поля, это возможно?
А смысл?
Поменять отображаемые названия полей (если это вдруг зачем-то нужно) можно в шаблонах (engine/skins/default/tpl/).
Убрать лишние - можно также редактированием шаблонов.
Изменить тип стандартных полей нельзя.
А для всего остального есть xfields
clinoc11, создаёшь обычное текстовое поле.
Называешь, к примеру, extlink.
Дальше в news.full.tpl добавляешь:
[xfield_extlink]Внешняя ссылка: <a href="[xvalue_extlink]">ТУТ</a>[/xfield_extlink]
Данный блок будет выводиться только при заполнении доп. поля extlink.
cmsTester, этот текст лежит в языковом файле.
engine/plugins/feedback/lang/russian/main.ini
form.request = "Отправить запрос"
Используется в шаблоне /engine/plugins/feedback/tpl/site.form.tpl:
<input type="submit" {% if (flags.jcheck) %}onclick="return FBF_CHECK();" {% endif %}value="{{ lang['feedback:form.request'] }}"/>