Tickets 0.9.0 beta

Выпустил новую версию Tickets, которая должна нормально работать с php 5.4.

Конечно, есть и другие интересные изменения.

Замечательный pdoTools вынесен из компонента, и устанавливается теперь отдельно, из репозитория. Сделано это по двум причинам:
1. pdoTools будут использовать и другие мои разработки, например, miniShop2.
2. Его гораздо лучше и проще обновлять, если он распространяется отдельно.

Новый сниппет getTickets, используется по умолчанию для вывода тикетов секции. Все параметры смотрите в его свойствах, но вот самые важные:
— Очень быстрый, за счет работы через pdoTools.
— Не понимает ТВ параметры, вообще, никак.
— Зато понимает кучу дополнительных плейсхолдеров — см. обновлённый чанк tpl.Tickets.list.row.
— Есть плейсхолдеры [[+section_name]] и [[+section_uri]] — имя и адрес родительской секции, для вывода на главной.
— Показывает количество непрочитанных комментариев для авторизованного юзера — [[+new_comments]].
— Выводит лог запроса в БД, для авторизованного в «mgr» юзера, с показом времени на каждый этап.

Новый сниппет getTicketsSections. То же самое, что и предыдущий, только для вывода секций тикетов, отсюда некоторая специфика:
— Новый чанк tpl.Tickets.sections.row
— Плейсхолдеры [[+tickets]], [[+comments]] и [[+views]] — это сумма всех тикетов, комментариев и просмотров секции.

Оба сниппета понимают fastMode, который, по умолчанию, отключен. То есть, в их чанках можно запускать сниппеты и фильтры, если очень нужно.
Для дополнительного ускорения рекомендую заменить в чанках тикетов и секций все [[~[[+id]]]] на [[+uri]].

Исправлена ошибка с невозможностью редактирования тикета, если отключены «automatic_alias».

В целом, основные изменения — это специальные быстрые сниппеты, багфиксы и работа в PHP 5.4.

Предыдущая заметка
Tickets 0.8.0 \ 0.8.1 beta


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

  1. Андрей Пущаенко 22 января 2013, 19:03 # 0
    Огромное спасибо за замечательный компонент!
    1. Василий Наумкин 22 января 2013, 19:54 # 0
      На здоровье!
    2. Виталий Сентяков 23 января 2013, 10:47 # 0
      Вы проделали колоссальную работу, спасибо вам.
      1. Василий Наумкин 23 января 2013, 11:43 # 0
        На здоровье!

        Работа еще не окончена. В версии 1.0.0 планирую голосование за комменты и тикеты + прокрутка по новым комментам.
      2. Антон Соловьёв 27 января 2013, 18:41 # 0
        Проверить обновления — > Пакет уже обновлён до последней версии: tickets-0.8.2-beta
        Я что-то не понимаю в механизме обновления Revo? Каким образом можно обновиться?
        1. Andrei Kilin 27 января 2013, 19:27 # 0
          Чтобы автоматическое обновление работало — пакет должен его поддерживать.
          Удали старую и поставь новую сам. Чанки останутся от старой версии.
          1. Василий Наумкин 27 января 2013, 19:37 # 0
            Не надо вводить людей в заблуждение.

            Это распространённая проблема и от пакетов она не зависит. Вот тема на форуме.
            1. Andrei Kilin 27 января 2013, 19:46 # 0
              Оуч! Не со зла, сам был введен в заблуждение недоброжелателями, вспомнить бы где…
          2. Василий Наумкин 27 января 2013, 19:39 # 0
            Управление пакетами -> Загрузить дополнения -> набрать Tickets и увидишь последнюю версию.

          3. Антон Соловьёв 27 января 2013, 20:35 # 0
            Что-то до чёрта всяких красных строк
            xPDOCacheManager->copyFile(): Could not copy file /home/t/tihomir/svned.ru/public_html/core/packages/tickets-0.9.0-beta/modCategory/f50425fb822720b7399ab894f9191f91/1/tickets/controllers/section/update.class.php to /home/t/tihomir/svned.ru/public_html/core/components/tickets/controllers/section/update.class.php
            Хоть и написано что «Успешно установлен пакет tickets-0.9.0-beta»
            Такое может быть из-за неверных прав на папки?
            Сниппеты новые вроде добавились.
            1. Василий Наумкин 27 января 2013, 21:28 # 0
              Да, что-то с правами.
            2. Антон Соловьёв 27 января 2013, 23:03 # 0
              На папки 755, на файлы 644, специфические права в папки packages/tickets-0.9.0-beta/ и core/components/tickets/, assets/components/tickets не требуются?
              Да, всё благополучно установилось, завтра чанки обновлю.
              1. Василий Наумкин 28 января 2013, 03:48 # 0
                Нет, ничего не требуется.

                У меня на тестовом сервере такое иногда бывает — просто исправляю все права небольшим скриптом и сразу нормально.
                #!/bin/bash
                
                echo "Set permissions for /var/www/test/www...";
                echo "CHOWN files...";
                chown -R test:test "/var/www/test/www";
                echo "CHMOD directories...";
                find "/var/www/test/www" -type d -exec chmod 0755 '{}' \;
                echo "CHMOD files...";
                find "/var/www/test/www" -type f -exec chmod 0644 '{}' \;
                

                Директория test, юзер и группа — тоже.
              2. Александр Донский 28 января 2013, 21:25 # 0
                Скажите, если проверка обновления в «Управление пакетами» не работает, то предыдущую версию Tickets надо сначала деинсталлировать потом удалить, и скачать свежий пакет и установить?
                  1. Александр Донский 28 января 2013, 22:41 # 0
                    хм-м…
                1. Александр Донский 28 января 2013, 22:37 # 0
                  Использую Tickets для комментирования страниц. Пишет
                  Вы должны авторизоваться, чтобы оставлять комментарии.
                  на странице, хотя я авторизован.
                  Хотя нет, новые созданные страницы комментировать можно, а старые нет. Хотя это не важно, все равно просто тестирование.
                  1. Александр Донский 28 января 2013, 22:57 # 0
                    И комментарии не все видны в админке
                    1. Володя 26 марта 2013, 14:08 # 0
                      если пользователь не авторизован то getTickets выдает вот такой мусор
                      0.0004280: xPDO query object created
                      0.0006020: Added where condition: class_key=Ticket, published=1, deleted=0, parent=10
                      0.0004921: leftJoined TicketView as View
                      0.0004029: leftJoined TicketView as LastView
                      0.0003979: leftJoined TicketVote as Vote
                      0.0003970: leftJoined TicketThread as Thread
                      0.0004041: leftJoined TicketComment as Comment
                      0.0004199: leftJoined TicketsSection as Section
                      0.0004151: leftJoined modUser as User
                      0.0013740: leftJoined modUserProfile as Profile
                      0.0000319: Grouped by Ticket.id
                      0.0004361: Added selection of Ticket: SQL_CALC_FOUND_ROWS `Ticket`.`id`, `Ticket`.`type`, `Ticket`.`contentType`, `Ticket`.`pagetitle`, `Ticket`.`longtitle`, `Ticket`.`description`, `Ticket`.`alias`, `Ticket`.`link_attributes`, `Ticket`.`published`, `Ticket`.`pub_date`, `Ticket`.`unpub_date`, `Ticket`.`parent`, `Ticket`.`isfolder`, `Ticket`.`introtext`, `Ticket`.`content`, `Ticket`.`richtext`, `Ticket`.`template`, `Ticket`.`menuindex`, `Ticket`.`searchable`, `Ticket`.`cacheable`, `Ticket`.`createdby`, `Ticket`.`createdon`, `Ticket`.`editedby`, `Ticket`.`editedon`, `Ticket`.`deleted`, `Ticket`.`deletedon`, `Ticket`.`deletedby`, `Ticket`.`publishedon`, `Ticket`.`publishedby`, `Ticket`.`menutitle`, `Ticket`.`donthit`, `Ticket`.`privateweb`, `Ticket`.`privatemgr`, `Ticket`.`content_dispo`, `Ticket`.`hidemenu`, `Ticket`.`class_key`, `Ticket`.`context_key`, `Ticket`.`content_type`, `Ticket`.`uri`, `Ticket`.`uri_override`, `Ticket`.`hide_children_in_tree`, `Ticket`.`show_in_tree`, `Ticket`.`properties`
                      0.0000379: Added selection of Vote: SUM(Vote.value) AS votes
                      0.0000291: Added selection of View: COUNT(DISTINCT View.uid) as views
                      0.0000329: Added selection of LastView: LastView.timestamp as new_comments
                      0.0000300: Added selection of Comment: COUNT(DISTINCT Comment.id) as comments
                      0.0000310: Added selection of Section: Section.pagetitle as section_name, Section.uri as section_uri
                      0.0000310: Added selection of User: User.username
                      0.0000300: Added selection of Profile: Profile.fullname
                      0.0000250: Sorted by createdon, desc. Limited to 10, offset 0
                      0.0012231: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `Ticket`.`id`, `Ticket`.`type`, `Ticket`.`contentType`, `Ticket`.`pagetitle`, `Ticket`.`longtitle`, `Ticket`.`description`, `Ticket`.`alias`, `Ticket`.`link_attributes`, `Ticket`.`published`, `Ticket`.`pub_date`, `Ticket`.`unpub_date`, `Ticket`.`parent`, `Ticket`.`isfolder`, `Ticket`.`introtext`, `Ticket`.`content`, `Ticket`.`richtext`, `Ticket`.`template`, `Ticket`.`menuindex`, `Ticket`.`searchable`, `Ticket`.`cacheable`, `Ticket`.`createdby`, `Ticket`.`createdon`, `Ticket`.`editedby`, `Ticket`.`editedon`, `Ticket`.`deleted`, `Ticket`.`deletedon`, `Ticket`.`deletedby`, `Ticket`.`publishedon`, `Ticket`.`publishedby`, `Ticket`.`menutitle`, `Ticket`.`donthit`, `Ticket`.`privateweb`, `Ticket`.`privatemgr`, `Ticket`.`content_dispo`, `Ticket`.`hidemenu`, `Ticket`.`class_key`, `Ticket`.`context_key`, `Ticket`.`content_type`, `Ticket`.`uri`, `Ticket`.`uri_override`, `Ticket`.`hide_children_in_tree`, `Ticket`.`show_in_tree`, `Ticket`.`properties`, SUM(Vote.value) AS votes, COUNT(DISTINCT View.uid) as views, LastView.timestamp as new_comments, COUNT(DISTINCT Comment.id) as comments, Section.pagetitle as section_name, Section.uri as section_uri, User.username, Profile.fullname FROM `modxsite_content` AS `Ticket` LEFT JOIN `modxtickets_views` `View` ON Ticket.id=View.parent LEFT JOIN `modxtickets_views` `LastView` ON Ticket.id=LastView.parent AND LastView.uid = 1 LEFT JOIN `modxtickets_votes` `Vote` ON Ticket.id=Vote.parent AND Vote.class='Ticket' LEFT JOIN `modxtickets_threads` `Thread` ON Thread.resource=Ticket.id LEFT JOIN `modxtickets_comments` `Comment` ON Comment.thread=Thread.id LEFT JOIN `modxsite_content` `Section` ON Section.id=Ticket.parent LEFT JOIN `modxusers` `User` ON User.id=Ticket.createdby LEFT JOIN `modxuser_attributes` `Profile` ON Profile.internalKey=User.id WHERE  ( `Ticket`.`class_key` = 'Ticket' AND `Ticket`.`published` = 1 AND `Ticket`.`deleted` = 0 AND `Ticket`.`parent` = 10 )  GROUP BY Ticket.id ORDER BY createdon desc LIMIT 10 "
                      0.0001988: SQL executed
                      0.0001471: Total rows: 0
                      0.0000288: Rows fetched
                      0.0000081: Returning raw data
                      0.0000761: Returning processed chunks
                      0.0077299: Total time
                      
                      1. Василий Наумкин 26 марта 2013, 14:12 # 0
                        Это только для тебя мусор.
                        Для нормальных людей это лог запроса, который показывается менеджеру, авторизованному в админке.

                        Подсказывать, как отключить «вот такой мусор» не буду.
                        1. Володя 26 марта 2013, 14:17 # 0
                          Простите за безграмотность)))
                          отключил удалив
                          if ($modx->user->hasSessionContext('mgr') && !empty($showLog)) {
                          	$output .= '<pre>' . print_r($pdoFetch->getTime(), 1) . '
                          ';
                          }
                      Добавление новых комментариев отключено.