Обновил сайт

Ну что, факир протрезвел и вопросы переехали на компонент 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 построим свою систему.

Следующая заметка
Новые комментарии
Предыдущая заметка
Факир был пьян!


Комментарии ()

  1. Denys Butenko 04 ноября 2012, 19:33 # 0
    Годные комментарии) Hypercomments блочится AdBlock'ом по умолчанию. Только кнопку Post русифицировать нужно)
    1. Василий Наумкин 04 ноября 2012, 19:51 # 0
      Да, меня это очень удивило дня 2 назад. Собственно, отсюда и спешка.
    2. Виталий Киреев 04 ноября 2012, 19:57 # 0
      Тест
      1. Василий Наумкин 04 ноября 2012, 20:31 # 0
        Нормально, работает =)

        Можно и код вставлять теперь:
        <?php
        echo "hello World!";
      2. Александр Наумов 04 ноября 2012, 23:00 # 0
        Супер!!!
        1. Abu 05 ноября 2012, 00:07 # 0
          Действительно круто!
        2. Viktor Minator 05 ноября 2012, 03:59 # 0
          Жалко, что Лайка нету, поэтому пишу словами — супер, мне нравится!
          1. Василий Наумкин 05 ноября 2012, 05:39 # 0
            Рейтингов, скорее всего, и не будет — этой социальной херни развелось вокруг слишком много.

            На Хабре и в других местах с каждым годом видно ухудшении качества заметок из-за минусующего большиества. Так что, если и будет что-то, то без минусов вообще.
            1. Василий Наумкин 05 ноября 2012, 17:56 # 0
              Решили — прикручу +1. Минусов не будет.
              1. Viktor Minator 05 ноября 2012, 18:02 # 0
                +1 =)
            2. Виталик 05 ноября 2012, 12:57 # 0
              «Проверка связи» — проверка связи
              код


              — Можно добавить нумерованные и маркированные списки, кнопки табуляции вправо-влево, цитаты, выбор типа заголовка и т.д.? d.pr/i/wXxa
              Загрузить файл нельзя будет?
              — Ну и я за "+1".
              1. Виталик 05 ноября 2012, 13:00 # 0
                + Может добавить возможность отредактировать сообщение в течение какого-то времени (как в basecamp)?
                + Руссифицировать тайтлы у кнопок.

                Все остальное — чудесно.
                1. Василий Наумкин 05 ноября 2012, 15:22 # 0
                  Про редактирование надо как следует подумать, пока отложил.

                  А тайтлы русифицировал — это быстро. Можно хоть что добавлять вот таким массивом:
                  {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:"</code>"}
                  	,{name:"Вставить ссылку", className: "btn-link", openWith:"<a href=\"[![Link:!:http://]!]\">", closeWith:"</a>" }
                  	,{name:"Вставить картинку", className: "btn-picture", replaceWith:"<img src=\"[![Source:!:http://]!]\" />" }
                  ]}

                  Редактор — замечательный MarkItUp, но ничего не мешает и TinyMCE подключить — было бы желание.
                2. Виталик 05 ноября 2012, 13:06 # 0
                  Но самая прикольная реализация у нового basecamp-а мне кажется. d.pr/i/Kuav

                  Есть поле для драгндропа файлов, а ссылки на картинки и имэдж-хостинги сами распознаются и вставляются в пост.
                  1. Василий Наумкин 05 ноября 2012, 14:32 # 0
                    Что-то мне подсказывает, что там работает целая толпа специалистов покруче меня, поэтому пока просто завидовать.

                    Если и делать, то в последнюю очередь.
                    1. Виталик 05 ноября 2012, 15:00 # 0
                      Да, само собой. Пусть вектором развития будет дальнейшим
                  2. Василий Наумкин 05 ноября 2012, 13:08 # 0
                    Писать можно любой html, Jevix отфильтрует все согласно текущих правил.
                    В редакторе все кнопки гибко настраивается, прям в админке.

                    Загрузки файлов пока не будет, а там посмотрим. Можно грузить хоть куда и давать ссылку

                    +1 сделаем
                  3. Viktor Minator 05 ноября 2012, 15:24 # 0
                    И если можно добавить в функционал возможность отписки от комментариев. Типа «Отписаться от рассылки данного треда».
                    1. Василий Наумкин 05 ноября 2012, 15:26 # 0
                      При отправке коммента есть чекбокс «Уведомлять о новых ответах». Щас уберу его чекнутость по умолчанию.

                      Ну а в будущем планирую личный кабинет и там все подписанные темы списком, с чекбоксами.
                      1. Viktor Minator 05 ноября 2012, 15:27 # 0
                        Спасибо. А то я не заметил как чекнул и теперь «я в курсе всех событий» =)
                        1. Viktor Minator 05 ноября 2012, 15:28 # 0
                          бляха снова чекнул =))))
                    2. Виталик 05 ноября 2012, 15:36 # 0
                      d.pr/i/YgS6 — отступ нужно добавить от «Пользователь» и убрать «Спасибо, Квип»
                      1. Василий Наумкин 05 ноября 2012, 16:34 # 0
                        Уведомления буду переделывать позже, вместе с подпиской отпиской на темы.

                        В Quip это вообще как то странно сделано — либо ты получаешь все ответы из темы, либо никаких. Закончу с кэшированием ветки комментов и займусь этим.
                      2. Виталик 05 ноября 2012, 15:37 # 0
                        Сменил имя
                        1. Виталик 05 ноября 2012, 17:06 # 0
                          d.pr/i/eCeK — переделать бы в «5 ноября 2012 в 15:37»
                          1. Василий Наумкин 05 ноября 2012, 17:31 # 0
                            Виталь, это все чисто эстетические украшения, которые не имеют никакого значения, если 100 комментариев грузятся 6 секунд. Точнее, они еще и увеличат это время.,

                            Так что, все потом.
                          2. Александр Наумов 05 ноября 2012, 19:49 # 0
                            Ко­неч­но, несрав­нен­но про­ще при­кру­тить LiveStreet, но для ме­ня это ста­ло бы про­фес­сио­наль­ным по­зо­ром. Луч­ше мы вме­сте с Simple Dream по­стро­им свою си­сте­му.
                            ++ Много!!!
                            1. Василий Наумкин 05 ноября 2012, 20:24 # 0
                              Ну правда, иначе я это не могу расценивать. Так ведь можно и с Joomla сайт скрестить, и с Bitrix.

                              В чем тут преимущество MODX? Это же LiveStreet работает, а MODX только запросы передаёт. Про дизайн я вообще молчу — на modx.com он отлично смотрится, но там «сайт-визитка», а тут блоги с комментариями.

                              Было что? LiveStreet + Evolution.
                              А стало что? LiveStreet + Revolution + дизайн, похожий на официальный сайт. Прогресс, етить.

                              Кстати, спасибо вам за то, что напомнили мне про
                              тег для цитаты
                              Добавил в редактор кнопочку. Если не выводится — Ctrl+F5.
                            2. Alex Vakhitov 08 ноября 2012, 15:07 # 0
                              Для себя отметил, что иконки очень расплывчатые в редакторе, раздражает аж пипец (:
                              А так все очень круто, сам уже долгий срок мечтаю сделать свои комментарии с блекджеком и ш… преферансом и дамами.
                              1. Виталик 08 ноября 2012, 15:09 # 0
                                d.pr/i/bgtH

                                Как вам такой вариант?
                                1. Alex Vakhitov 08 ноября 2012, 15:22 # 0
                                  d.pr/i/WmUQ
                                  Вот как у меня выглядят значки просто, тут фактор привыкания к хорошему играет и уже автоматически на глаза попадает и раздражения вызывает.
                                  А на вашем скриншоте все более четкое
                                  1. Василий Наумкин 08 ноября 2012, 15:29 # 0
                                    А у меня вот так — четко и красиво.

                                    Видно у вас какой-то новомодный retina или еще не знаю что.
                                    1. Alex Vakhitov 08 ноября 2012, 15:42 # 0
                                      Вот у вас на скриншоте выглядит нормально, а у меня видимо из-за ретины размазано.
                                      1. Василий Наумкин 08 ноября 2012, 15:48 # 0
                                        Для ретины вроде как то надо извращаться.

                                        Я не умею, и проверить не на чем. Если пришлете такие иконки для ретины — сделаю.
                                        Кстати, брал я их отсюда, бесплатные.
                                        1. Alex Vakhitov 08 ноября 2012, 16:03 # 0
                                          Я еще сам не до конца понимаю почему так. В бутстрапе все иконки не размазаны хотя из той же коллекции, а вот этот сет который у вас выглядит смазанным.

                                          Вообще в css есть специальное свойство для подмены картинок в ретине на более крупные, можно провести у вас эксперимент с этим. Я могу сделать тот же сет толь в два раза больше а вы пропишите свойство и посмотрим как это работает
                                          1. Александр Наумов 08 ноября 2012, 16:08 # 0
                                            У меня тоже размытые.
                                            А еще, так же и лого здесь размыто и иконка твитера из футера смазана.
                                            1. Василий Наумкин 08 ноября 2012, 16:29 # 0
                                              — По моему, вы слишком много кушать.
                                              — В каком смысле?
                                              — В смысле, зажрались!

                                              © Ширли-Мырли
                                              1. Виталик 08 ноября 2012, 16:31 # 0
                                                +1
                                                1. Александр Наумов 08 ноября 2012, 16:42 # 0
                                                  Я от вас ничего не требую!
                                                  Пример:
                                                  https://dl.dropbox.com/u/49531936/modx/bez.png
                                                  и
                                                  https://dl.dropbox.com/u/49531936/modx/bez.png
                                                  разница чувствуется, стало самому интересно, почиму так.
                                                  1. Александр Наумов 08 ноября 2012, 16:44 # 0
                                                    Вторая правильная ссылка https://dl.dropbox.com/u/49531936/modx/atl.png
                                                    1. Василий Наумкин 08 ноября 2012, 16:44 # 0
                                                      На скрине смазана как раз иконка Хабра — я ее сам рисовал.
                                                      А твиттерная и гугловая шли вместе с купленной темой.

                                                      Я ж программист, а не дизайнер. Делаю так, чтобы у меня на компе смотрелось хорошо. Ретин под рукой нет, талантов верстальщика тоже. Поэтому — как могу.
                                                      1. Василий Наумкин 08 ноября 2012, 16:49 # 0
                                                        Иконки MODX одинакового размера должны быть, а у вас — разные.

                                                        Может просто масштаб моего сайта увеличен в браузере? Они же запоминают, даже если случайно Ctrl+scroll.
                                                        1. Александр Наумов 08 ноября 2012, 17:55 # 0
                                                          Извиняюсь, мой косяк.
                                                          Почему-то в первый раз Ctrl+0 не сработал, отсюда и сделал неверные выводы.
                                                      2. Alex Vakhitov 08 ноября 2012, 16:36 # 0
                                                        Все остальное нормально выглядит, учитывая 90% совсем не приспособленных сайтов. Даже отлично все!
                                                      3. Василий Наумкин 08 ноября 2012, 16:26 # 0
                                                        Конечно, присылайте!

                                                        Иконки я сам собирал в спрайт, а я еще тот умелец в этих вопросах.
                                                        1. Alex Vakhitov 08 ноября 2012, 16:50 # 0
                                                          Кстати, сейчас делая спрайт заметил что иконки в Про версии отличаются от обычной
                                                          1. Alex Vakhitov 08 ноября 2012, 16:56 # 0
                                                            Куда вам отправить кстати?
                                                            1. Василий Наумкин 08 ноября 2012, 16:58 # 0
                                                              Да хоть сюда, ссылкой прицепить.

                                                              Ну или на мыло — ya@bezumkin.ru
                                                              1. Виталик 08 ноября 2012, 17:21 # 0
                                                                Вот сейчас бы прикрепление файлов пригодилось :)
                                                                1. Василий Наумкин 08 ноября 2012, 17:51 # 0
                                                                  Рррррррр!
                                                            2. Виталик 08 ноября 2012, 16:27 # 0
                                                              1. Василий Наумкин 08 ноября 2012, 16:33 # 0
                                                                Прочитал по диагонали и снова понял, насколько верстка «не мое» =)
                                                                1. Василий Наумкин 08 ноября 2012, 16:38 # 0
                                                                  И ваще, это все фигня!

                                                                  Вот у меня без Quip комментарии уже грузятся в режиме полного процессинга 0,9 сек, а без процессинга (то есть не понимая фильтры и сниппеты в чанках) — 0,15 сек.

                                                                  На почти 200 комментариев, без кэша.
                                                    2. Василий Наумкин 08 ноября 2012, 15:20 # 0
                                                      У меня все отлично выглядит, может из-за FullHD экрана.

                                                      Присылайте свой вариант иконок — прикрутить недолго.
                                                      1. Виталик 08 ноября 2012, 16:43 # 0
                                                        Попросил дизайнера сделать нужные иконки. Какие еще нужны?
                                                        1. Василий Наумкин 08 ноября 2012, 16:47 # 0
                                                          Все нынешние кнопки видны при создании тикета.
                                                          Но добавить можем любые кнопки, ограничений нет.

                                                          Для начала, думаю, достаточно эти правильно перерисовать.
                                                      2. Василий Наумкин 08 ноября 2012, 19:16 # 0
                                                        Делаем Ctrl+f5 пару раз и должны появиться новые иконки.
                                                      3. Viktor Minator 08 ноября 2012, 19:09 # 0
                                                        да, действительно были расплывчатые, а сейчас более четчё стали…
                                                        1. Viktor Minator 08 ноября 2012, 19:22 # 0
                                                          в общем у меня B & T & I расплывчатые…
                                                        2. Denys Butenko 08 ноября 2012, 19:24 # 0
                                                          По моему после обновления хуже стало)
                                                          1. Denys Butenko 08 ноября 2012, 19:25 # 0
                                                            1. Denys Butenko 08 ноября 2012, 19:25 # 0
                                                              Не хочет с ДБ картинки показывать :(
                                                              1. Василий Наумкин 08 ноября 2012, 19:29 # 0

                                                                https надо убирать.

                                                                Заменил картинки на старые, а для ретиноводов оставил новые. И нашим и вашим, короче.
                                                            2. Alex Vakhitov 08 ноября 2012, 19:31 # 0
                                                              Сравните две картинки d.pr/i/WmUQ и d.pr/i/DkVu
                                                              1. Василий Наумкин 08 ноября 2012, 19:45 # 0
                                                                Исправил этот недостаток с https адресами для картинок.

                                                                Заодно и ftp добавил =)
                                                              2. Denys Butenko 08 ноября 2012, 19:58 # 0
                                                                А font-awesome не пробовали?
                                                                1. Denys Butenko 08 ноября 2012, 19:59 # 0
                                                                  Хотя, по иконкам это он и есть, видимо. Тогда вопрос, использовать как шрифт)
                                                                2. Denys Butenko 08 ноября 2012, 20:08 # 0
                                                                  Вот такое предложение:
                                                                  Добавить кнопку «вверх» и «вниз», когда открываешь страницу, хочется в самый вниз, а когда все комментарии прочитаны хочется вверх, колесиком утомительно крутить, приходится ползунок справа двигать.
                                                                  И как вариант, на главной странице, там где количество комментариев сделать или дополнительную ссылку или текущую исправить на последний комментарий, но возникнет проблема с актуальностью данных из-за кеширования. Как-то так.
                                                                  1. Василий Наумкин 08 ноября 2012, 20:10 # 0
                                                                    Спасибо конечно, только я немного занят переписыванием кода комментариев, чтобы избавиться от тормозного Quip.

                                                                    Как закончу — сразу примусь за стрелочки.
                                                                    1. Denys Butenko 08 ноября 2012, 20:11 # 0
                                                                      Я не настаиваю и не тороплю, просто, еще одна идея в копилку)
                                                                      1. СикретНаме 14 ноября 2012, 13:19 # 0
                                                                        Ещё идея «в копилочку» — кнопочки «home» и «end» — отлично себя зарекомендовали ещё на эоны назад :0))))

                                                                        Опережая разговоры об удобстве, скорости итд — поверьте на слово, хоткеи намного быстрее — я изучил их и мышу юзаю только в двух случаях -, если криво сделано и кнопки не пашут (например, space не снимает/не ставит галочу в чекбоксе «чужой комп» на входе ВКонтакте, а энтерит) или, если позу менять лениво, а мыша рядом.

                                                                        В итоге — ненужный функционал. Для юзверя. Но мы же не такие?! :0)

                                                                        П.С.
                                                                        Даже в MODX наковырял хокеи на какие-то, как раз на наиболее частые телодвижения — ммм :0)
                                                                        1. Василий Наумкин 14 ноября 2012, 13:24 # 0
                                                                          Вот тут есть про хоткеи в Рево.

                                                                          Туда еще надо добавить как минимум Ctrl+Shift+S (сохранить и закрыть окно).
                                                                          Про обычный Ctrl+S, думаю, все и так знают.
                                                                  Добавление новых комментариев отключено.