Пришлите мне на почту n.lanets@modxclub.ru доступ в админку. Я как раз обкатаю новый модуль сбора статистики по нагрузке MODX-сайтов. Посмотрим, что вам там нагрузку дает.
А по поводу формы обратной связи — можно modCaptcha подключить, во многом решит проблему.
Вечер добрый. Подскажите кто знает. modx revo 2.3.2 хостинг beget.ru .
Проблема заключается в том что страницы сайта грузятся долго. Обращение в поддержку проблему не решило, они только сказали что сайт делает очень много запросов в базу и долго выполняет скрипты. Предоставили некую выписку по выполнению этих скрипотов — joxi.ru/BA0v40YSLJp9my Есть некие функции main и ???_op которые загружают сервер, возможен ли вариант что это вирус или еще что-то???
По случаю обращения еще 1 вопрос, дабы не создавать тему. На этом же сайте имеется форма обратной связи, через которую летит постоянный спам такого вида joxi.ru/YmEDka5FN0BKr6, joxi.ru/D2PQBYnSGpB0A3 — прикол с прикрепленным файлом меня вообще убил, в форме нету возможности прикрепить файл, а темболее (в чанках формы и чанка письма) и в помине нету таких имен плейсхолдеров. С этим можно что-то сделать или проект обречен на «успех»?
Так уж получилось, что изначально наши getdata-процессоры были рассчитаны на работу с классами (таблицами), у которых primaryKey — ID. Но случается, что необходимо поработать и с другими таблицами, в которых нет этой колонки. Вот пишу краткую заметочку, которая может помочь в таких случаях. Конечно, можно попробовать решить проблему на уровне $c->select(array("{$alias}.pk as id"));, но и с этим тоже могут возникнуть сложности. Оставляю ссылку на код, который использовался для решения данной проблемы. Только имейте ввиду, что $this->xpdo там фигурирует, это для соединения с другой базой данных, то есть где-то оно и не нужно. Самое главное там — getPK(). Но и это временный костыль, так как рассчитано на таблицы, в которых первичный ключ — только одна колонка.
В общем, все это только на заметку, но в дальнейшем будет использовано для написания обновленной версии процессоров, более универсальных.
Сегодня на modx.pro было небольшое обсуждение MODx.add() VS renderTo, но из-за неподобающего поведения обеих сторон (а может еще чего-то), топик был скрыт с публикации. Тем не менее там была, на мой взгляд, довольно полезная информация. Вот чтобы ее не терять, публикую здесь. Кому-нибудь наверняка пригодится.
Тема касалась компонента modExtra и правильного рендеринга элементов на страницах админки, типа того, что в modExtra используется renderTo, и что это правильней, чем использовать MODx.add(). Вот итоговая выдержка:
Для начала, закомментрируем renderTo. joxi.ru/nAyz3VMFpO5arZ И обновим страницу компонента. Что мы там видим? Все тот же грид. А почему? А просто потому что на самом деле в modextra-panel-home-div ничто не рендерится. Сам смотри HTML-код. joxi.ru/v29QeZnH1EW52G
Можно даже для чистоты эксперимента вообще удалить из шаблона этот див. joxi.ru/DmBXep0uEXpKAP
Так почему же все-таки грид рендерится? Обрати внимание на этот блок кода. Используется элемент components. А теперь заглянем в modx.component.js в метод _loadComponents(). Что мы там видим?
......
var cp = Ext.getCmp('modx-content');
......
cp.add(a);
А теперь заглянем в modx.js в метод add(). Что там мы видим?
.....
var ctr = Ext.getCmp('modx-content');
......
ctr.add(cmp);
Ничего не напоминает?
А теперь возьмем и закомментрируем в modExtra components joxi.ru/p278ek3hyQYYA7, а в контроллере пропишем загрузку компонента именно через renderTo. joxi.ru/E2pv5o9fRd6OrY
И что мы получили? Теперь рендерится именно в modextra-panel-home-div, но скролл пропал. joxi.ru/Y2LjLVESK3oDr6
Резюме: элементы рендерить на админ-страницу лучше через метод MODx.add(). Пример.
Мы не гонимся за WP. У нас другие задачи. Кросспостинг, возможно, появится позже, если будет заказчик.
Спасибо на добром слове, Вячеслав! :)
ВК и ОК, думаю, появятся в обозримом будущем.
Сборку попробуйте в работе, но будьте готовы к сложностям, там не так все просто.
Это немного запутанная история… Дело в том, что теги сохраняются в колонку tags самого класса modResource. По поводу того, как это происходит, читайте внимательно эту статью. В колонку все теги документа записываются с разделителем-запятой. Это чтобы меньше было нагрузке при выборках. А вообще теги хранятся в специальной таблице Документ-Тег, это чтобы можно было делать выборки с подсчетами и т.п. Но на уровне вывода документа, чтобы вывести теги, нам достаточно просто получить колонку $resource->tags и разбить ее методом explode(). Но это делается все на уровне процессора. Смотрите здесь. Как это в шаблоне выводится, смотрите здесь (обратите внимание на передаваемый в процессор параметр process_tags).
В общем, качайте и ковыряйте сборку, а иначе сложно будет разобраться даже с подсказками.
+ автопостинг статей в группы Вконтакте, Фейсбук и ОК увеличит количество установок сборки (на данный момент весь имеющийся функционал NewsModxBox, кроме облака тегов и функции добавить статью, реализован в готовых шаблонах на Word Press)
Николай, огромное спасибо за продукт! Очень кстати и очень впечатляет:) Функия написать статью — это прорвы. Облако тегов — бомба. Вывод последних комментов — лучше чем супер. Также значительно увеличит количество пользователей авторизация через Вконтакте и Одноклассники (будет полезно и на этом блоге).
З.ы — коммент дан на основе тыканья демо-версии, что привело к решению начать работу со сборкой.
Николай, подскажите пожалуйста, как здесь реализованы тэги? Сборку пока не ставил. Ни одного рецепта не нашел в сети, как вывести input для TV auto-tag.