Обновил сайт

Ну что, факир протрезвел и вопросы переехали на компонент Tickets, версии 0.1.1-beta.
Секрет в том, что если работать на копии сайта - то никуда не спешишь, и все отлично выходит.
Система прав у MODX работает как надо - просто у меня была тупая опечатка, причем, в двух местах.
Quip тоже победился очень просто - комментарии нужно сохранять в БД уже с parent, а не добавлять его после. Тогда он сам прекрасно заполняет таблицу closure и дерево комментариев работает без проблем.
Итак, что нового?
  • Тикеты теперь CRC, то есть class_key у них не не modResource, а Ticket

  • Их можно создавать в разных разделах, но у нас пока только один такой - вопросы.

  • В тикеты добавлена система прав, чтобы разруливать работу в разделах.

  • Тонна исправлений и улучшений, включая редактирование своих вопросов.

  • Самое главное - встроенные комментарии на базе Quip.

Для работы с Quip я написал кучу кода, который подключает его файлы и переопределяет нужные методы. Таким образом сохранена вся админка, при переписанном фронтенде. Комментарии фильтруются Jevix, понимают теги, подписки на треды и полностью на аяксе.
Насколько я знаю, таких комментариев на MODX еще не было.
Недостаток ровно один - к ним (комментариям) пока не прикручен кэш, поэтому некоторые страницы будет загружаться долго. Заборю чуть позже, пока тестируем как есть.
Вся разработка этого компонента оплачена, как обычно, Simple Dream. Версия очень ранняя, могут быть глюки и баги, о которых прошу писать мне.
Исходный код лежит на Github, использовать на свой страх и риск. Документации нет, на вопросы "а как прикрутить" не отвечаю. Только для самостоятельных энтузиастов.

Обновлено 05.11.2012

Прикрутил кэш к комментариям, получилось неплохо, на мой взгляд. Из-за многочисленных особенностей разжиревшего quip, самолета сделать никак не получится. Поэтому, рано или поздно, нынешние модернезированные комментарии превратятся в "чисто свои" комментарии, без лишней фигни.
Когда это будет - не знаю, так что сейчас сделал кэширование комментариев треда.
Суть его в том, что после первого получения комментов, их массив сохраняется в кэш бессрочно, а при добавлении комментария - обновляется. Причем, не весь целиком, а путем запихивания нового коммента в нужное место массива, согласно ветвления.
И обновление кэша, и загрузка почти мгновенные. Теперь время жрет только их рендер, но от него пока никуда не уйти. Хранить оформленные комментарии не хочется, ибо при любом изменении чанка придется чистить все кэшированные ветки и генерировать заново.
А так выходит компромис между скоростью и универсальностью.
Кэш треда можно очистить только вручную, он не реагирует ни на обновление тикета, ни сайта целиком. Конечно, если вы увидите после обновления страницы, что ваш комментарий не на своем месте - пишите мне, исправлю. Хотя, гонял сегодня это дело весь день, и вроде все учёл.
Итак, самый эпичный тред (315 комментариев) грузился 12,6146 s и жрал 25,25 Mb. Теперь - 2,2379 s и 7,75 Mb.
Не супер быстро, конечно, но явно лучше, чем было. Дальше буду отрезать от quip куски функционала, так как его авторы вместо оптимизаций сделали пагинацию да и бросили как есть. Мол, у кого тормозит - выводите поменьше комментов за раз.
Конечно, несравненно проще прикрутить LiveStreet, но для меня это стало бы профессиональным позором. Лучше мы вместе с Simple Dream построим свою систему.

72 комментария

Denys Butenko
Годные комментарии) Hypercomments блочится AdBlock'ом по умолчанию. Только кнопку Post русифицировать нужно)
Василий Наумкин
Да, меня это очень удивило дня 2 назад. Собственно, отсюда и спешка.
Виталий Киреев
Тест
Василий Наумкин
Нормально, работает =)
Можно и код вставлять теперь:
<?php
echo "hello World!";
Александр Наумов
Супер!!!
Действительно круто!
Viktor Minator
Жалко, что Лайка нету, поэтому пишу словами — супер, мне нравится!
Василий Наумкин
Рейтингов, скорее всего, и не будет — этой социальной херни развелось вокруг слишком много.
На Хабре и в других местах с каждым годом видно ухудшении качества заметок из-за минусующего большиества. Так что, если и будет что-то, то без минусов вообще.
Василий Наумкин
Решили — прикручу +1. Минусов не будет.
Viktor Minator
+1 =)
Виталик
«Проверка связи» — проверка связи
код
— Можно добавить нумерованные и маркированные списки, кнопки табуляции вправо-влево, цитаты, выбор типа заголовка и т.д.? d.pr/i/wXxa
— Ну и я за "+1".
Виталик
+ Может добавить возможность отредактировать сообщение в течение какого-то времени (как в basecamp)?
+ Руссифицировать тайтлы у кнопок.
Все остальное — чудесно.
Василий Наумкин
Про редактирование надо как следует подумать, пока отложил.
А тайтлы русифицировал — это быстро. Можно хоть что добавлять вот таким массивом:
{onTab: {keepDefault:false, replaceWith:"   "}
,markupSet: [
    {name:"Жирный", className: "btn-bold", key:"B", openWith:"<b>", closeWith:"</b>" }
    ,{name:"Курсив", className: "btn-italic", key:"I", openWith:"<i>", closeWith:"</i>"  }
    ,{name:"Подчёркнутый", className: "btn-underline", key:"U", openWith:"<u>", closeWith:"</u>" }
    ,{name:"Зачёркнутый", className: "btn-stroke", key:"S", openWith:"<s>", closeWith:"</s>" }
    ,{separator:"---------------"}
    ,{name:"Код", className: "btn-code", openWith:"<code>", closeWith:"
"} ,{name:"Вставить ссылку", className: "btn-link", openWith:"", closeWith:"" } ,{name:"Вставить картинку", className: "btn-picture", replaceWith:"" } ]}
Редактор — замечательный MarkItUp, но ничего не мешает и TinyMCE подключить — было бы желание.
Виталик
Но самая прикольная реализация у нового basecamp-а мне кажется. d.pr/i/Kuav
Есть поле для драгндропа файлов, а ссылки на картинки и имэдж-хостинги сами распознаются и вставляются в пост.
Василий Наумкин
Что-то мне подсказывает, что там работает целая толпа специалистов покруче меня, поэтому пока просто завидовать.
Если и делать, то в последнюю очередь.
Виталик
Да, само собой. Пусть вектором развития будет дальнейшим
Василий Наумкин
Писать можно любой html, Jevix отфильтрует все согласно текущих правил.
В редакторе все кнопки гибко настраивается, прям в админке.
Загрузки файлов пока не будет, а там посмотрим. Можно грузить хоть куда и давать ссылку
+1 сделаем
Viktor Minator
И если можно добавить в функционал возможность отписки от комментариев. Типа «Отписаться от рассылки данного треда».
Василий Наумкин
При отправке коммента есть чекбокс «Уведомлять о новых ответах». Щас уберу его чекнутость по умолчанию.
Ну а в будущем планирую личный кабинет и там все подписанные темы списком, с чекбоксами.
Viktor Minator
Спасибо. А то я не заметил как чекнул и теперь «я в курсе всех событий» =)
Viktor Minator
бляха снова чекнул =))))
Виталик
d.pr/i/YgS6 — отступ нужно добавить от «Пользователь» и убрать «Спасибо, Квип»
Василий Наумкин
Уведомления буду переделывать позже, вместе с подпиской отпиской на темы.
В Quip это вообще как то странно сделано — либо ты получаешь все ответы из темы, либо никаких. Закончу с кэшированием ветки комментов и займусь этим.
Виталик
Сменил имя
Виталик
d.pr/i/eCeK — переделать бы в «5 ноября 2012 в 15:37»
Василий Наумкин
Виталь, это все чисто эстетические украшения, которые не имеют никакого значения, если 100 комментариев грузятся 6 секунд. Точнее, они еще и увеличат это время.,
Так что, все потом.
Александр Наумов
Ко­неч­но, несрав­нен­но про­ще при­кру­тить LiveStreet, но для ме­ня это ста­ло бы про­фес­сио­наль­ным по­зо­ром. Луч­ше мы вме­сте с Simple Dream по­стро­им свою си­сте­му.
++ Много!!!
Василий Наумкин
Ну правда, иначе я это не могу расценивать. Так ведь можно и с Joomla сайт скрестить, и с Bitrix.
В чем тут преимущество MODX? Это же LiveStreet работает, а MODX только запросы передаёт. Про дизайн я вообще молчу — на modx.com он отлично смотрится, но там «сайт-визитка», а тут блоги с комментариями.
Было что? LiveStreet + Evolution.
А стало что? LiveStreet + Revolution + дизайн, похожий на официальный сайт. Прогресс, етить.
Кстати, спасибо вам за то, что напомнили мне про
тег для цитаты
Добавил в редактор кнопочку. Если не выводится — Ctrl+F5.
Alex Vakhitov
Для себя отметил, что иконки очень расплывчатые в редакторе, раздражает аж пипец (:
А так все очень круто, сам уже долгий срок мечтаю сделать свои комментарии с блекджеком и ш… преферансом и дамами.
Виталик
Как вам такой вариант?
Alex Vakhitov
Вот как у меня выглядят значки просто, тут фактор привыкания к хорошему играет и уже автоматически на глаза попадает и раздражения вызывает.
А на вашем скриншоте все более четкое
Василий Наумкин
А у меня вот так — четко и красиво.
Видно у вас какой-то новомодный retina или еще не знаю что.
Alex Vakhitov
Вот у вас на скриншоте выглядит нормально, а у меня видимо из-за ретины размазано.
Василий Наумкин
Для ретины вроде как то надо извращаться.
Я не умею, и проверить не на чем. Если пришлете такие иконки для ретины — сделаю.
Кстати, брал я их отсюда, бесплатные.
Alex Vakhitov
Я еще сам не до конца понимаю почему так. В бутстрапе все иконки не размазаны хотя из той же коллекции, а вот этот сет который у вас выглядит смазанным.
Вообще в css есть специальное свойство для подмены картинок в ретине на более крупные, можно провести у вас эксперимент с этим. Я могу сделать тот же сет толь в два раза больше а вы пропишите свойство и посмотрим как это работает
Александр Наумов
У меня тоже размытые.
А еще, так же и лого здесь размыто и иконка твитера из футера смазана.
Василий Наумкин
Конечно, присылайте!
Иконки я сам собирал в спрайт, а я еще тот умелец в этих вопросах.
Василий Наумкин
— По моему, вы слишком много кушать.
— В каком смысле?
— В смысле, зажрались!
© Ширли-Мырли
Виталик
+1
Василий Наумкин
Прочитал по диагонали и снова понял, насколько верстка «не мое» =)
Alex Vakhitov
Все остальное нормально выглядит, учитывая 90% совсем не приспособленных сайтов. Даже отлично все!
Василий Наумкин
И ваще, это все фигня!
Вот у меня без Quip комментарии уже грузятся в режиме полного процессинга 0,9 сек, а без процессинга (то есть не понимая фильтры и сниппеты в чанках) — 0,15 сек.
На почти 200 комментариев, без кэша.
Александр Наумов
Я от вас ничего не требую!
Пример:
и
разница чувствуется, стало самому интересно, почиму так.
Александр Наумов
Вторая правильная ссылка https://dl.dropbox.com/u/49531936/modx/atl.png
Василий Наумкин
На скрине смазана как раз иконка Хабра — я ее сам рисовал.
А твиттерная и гугловая шли вместе с купленной темой.
Я ж программист, а не дизайнер. Делаю так, чтобы у меня на компе смотрелось хорошо. Ретин под рукой нет, талантов верстальщика тоже. Поэтому — как могу.
Василий Наумкин
Иконки MODX одинакового размера должны быть, а у вас — разные.
Может просто масштаб моего сайта увеличен в браузере? Они же запоминают, даже если случайно Ctrl+scroll.
Alex Vakhitov
Кстати, сейчас делая спрайт заметил что иконки в Про версии отличаются от обычной
Alex Vakhitov
Куда вам отправить кстати?
Василий Наумкин
Да хоть сюда, ссылкой прицепить.
Ну или на мыло — ya@bezumkin.ru
Виталик
Вот сейчас бы прикрепление файлов пригодилось :)
Василий Наумкин
Рррррррр!
Александр Наумов
Извиняюсь, мой косяк.
Почему-то в первый раз Ctrl+0 не сработал, отсюда и сделал неверные выводы.
Василий Наумкин
У меня все отлично выглядит, может из-за FullHD экрана.
Присылайте свой вариант иконок — прикрутить недолго.
Виталик
Попросил дизайнера сделать нужные иконки. Какие еще нужны?
Василий Наумкин
Все нынешние кнопки видны при создании тикета.
Но добавить можем любые кнопки, ограничений нет.
Для начала, думаю, достаточно эти правильно перерисовать.
Василий Наумкин
Делаем Ctrl+f5 пару раз и должны появиться новые иконки.
Viktor Minator
да, действительно были расплывчатые, а сейчас более четчё стали…
Viktor Minator
в общем у меня B & T & I расплывчатые…
Denys Butenko
По моему после обновления хуже стало)
Denys Butenko
Denys Butenko
Не хочет с ДБ картинки показывать :(
Василий Наумкин
https надо убирать.
Заменил картинки на старые, а для ретиноводов оставил новые. И нашим и вашим, короче.
Alex Vakhitov
Сравните две картинки d.pr/i/WmUQ и d.pr/i/DkVu
Василий Наумкин
Исправил этот недостаток с https адресами для картинок.
Заодно и ftp добавил =)
Denys Butenko
А font-awesome не пробовали?
Denys Butenko
Хотя, по иконкам это он и есть, видимо. Тогда вопрос, использовать как шрифт)
Denys Butenko
Вот такое предложение:
Добавить кнопку «вверх» и «вниз», когда открываешь страницу, хочется в самый вниз, а когда все комментарии прочитаны хочется вверх, колесиком утомительно крутить, приходится ползунок справа двигать.
И как вариант, на главной странице, там где количество комментариев сделать или дополнительную ссылку или текущую исправить на последний комментарий, но возникнет проблема с актуальностью данных из-за кеширования. Как-то так.
Василий Наумкин
Спасибо конечно, только я немного занят переписыванием кода комментариев, чтобы избавиться от тормозного Quip.
Как закончу — сразу примусь за стрелочки.
Denys Butenko
Я не настаиваю и не тороплю, просто, еще одна идея в копилку)
СикретНаме
Ещё идея «в копилочку» — кнопочки «home» и «end» — отлично себя зарекомендовали ещё на эоны назад :0))))
Опережая разговоры об удобстве, скорости итд — поверьте на слово, хоткеи намного быстрее — я изучил их и мышу юзаю только в двух случаях -, если криво сделано и кнопки не пашут (например, space не снимает/не ставит галочу в чекбоксе «чужой комп» на входе ВКонтакте, а энтерит) или, если позу менять лениво, а мыша рядом.
В итоге — ненужный функционал. Для юзверя. Но мы же не такие?! :0)
П.С.
Даже в MODX наковырял хокеи на какие-то, как раз на наиболее частые телодвижения — ммм :0)
Василий Наумкин
Вот тут есть про хоткеи в Рево.
Туда еще надо добавить как минимум Ctrl+Shift+S (сохранить и закрыть окно).
Про обычный Ctrl+S, думаю, все и так знают.
bezumkin.ru
Personal website of Vasily Naumkin
Прямой эфир
Александр Наумов
23.07.2024, 00:20:37
Василий, спасибо большое!!
Василий Наумкин
01.07.2024, 11:56:41
Да, верно, именно так. А в контроллере, скорее всего, ловить данные методом post.
Василий Наумкин
26.06.2024, 09:38:15
О, точно, вылезает если не залогинен. Спасибо, исправил!
Василий Наумкин
09.04.2024, 04:45:01
> Ошибка 500 Это не похоже на ошибку Nginx, это скорее всего ошибка PHP - надо смотреть его логи. ...
Василий Наумкин
20.03.2024, 21:21:52
Volledig!
Андрей
14.03.2024, 13:47:10
Василий! Как всегда очень круто! Моё почтение!
russel gal
09.03.2024, 20:17:18
> А этот стоило написать хотя бы затем, чтобы получить комментарий от юзера, который ничего не писал...
Александр Наумов
27.01.2024, 03:06:18
Василий, спасибо! Извини, тупанул.
Василий Наумкин
22.01.2024, 07:43:20
Давай-давай!
Василий Наумкин
24.12.2023, 14:26:13
Спасибо!