[frontendManager] Первая версия

Ввиду того что были утеряны все прошлые исходники пришлось написать заного.





Демо
http://s5830.h5.modhost.pro/manager/ s5830 lz249FCKEwW4

Собственно все что компонент умеет это грузить фрейм админки добавляя в нее немного css для скрытия ненужных блоков.

Нет никаких настроек, только чанк и плагин, чанк tpl.frontendmanager.panel для вывода панели и ссылок и плагин frontendmanager для вставки панели на страницу (доступен естественно залогиненным в админку пользователям).

На панель вынесены
— редактирование страницы
— пользователи
— настройки контекста (я например туда пихаю телефоны, скрипты группы вк и тд)
— настройки контекста




Требуется pdoTools и fenom!

Исходники на github: https://github.com/but1head/frontendmanager

Пожелания можно писать сюда, потихоньку буду добавлять.
but1head
30 июня 2016, 20:51
modx.pro
14
11 130
+20

Комментарии: 94

Евгений Webinmd
01 июля 2016, 00:27
0
Это феноменально!!!

Этак можно же для различных блоков нацеплять ссылок на редактирование (если они являются ресурсами)
    but1head
    01 июля 2016, 00:30
    1
    +1
    <a href="manager/?a=resource/update&id={$_modx->resource.id}" data-action="iframe">Редактировать страницу</a>
    По сути да, вообще поидее можно много чего выжать.
    Павел Гвоздь
    01 июля 2016, 01:38
    +2
    Очень классно получилось! Ещё было бы круто, чтоб после редактирования обновлялось содержимое страницы. :)
      Илья Уткин
      01 июля 2016, 15:26
      +3
      Отправил автору пулл-реквест с этой фишкой. Надуюсь, одобрит и включит в пакет…
        but1head
        01 июля 2016, 15:40
        +1
        Как добавлю вынос css и чанка в настройки выложу новый пакет в модстор, гит обновил
      t3mnikov
      01 июля 2016, 08:46
      0
      Спасибо! Крутой компонент получился!
        Илья Уткин
        01 июля 2016, 10:46
        0
        Еще бы возможность в любое место вставить ссылку на редактирование конкретного чанка… Я, например, как разработчик, в сайдбар вставляю чанк с каким-то текстом, а рядом ссылку «Редактировать». Тогда клиенту не надо будет объяснять, что такое чанк, как его найти и прочее…
          Илья Уткин
          01 июля 2016, 10:57
          0
          А, пардон, оказывается, можно)))
            but1head
            01 июля 2016, 14:06
            0
            Коммитнул твои доработки, даже не подумал о такой возможности, спасибо!
              lexikon
              12 октября 2016, 01:34
              0
              а почему в версии 1.0.9 нет возможности комментировать чанки? или это надо как то реализовать дополнительно?
              Олег
              13 сентября 2017, 21:49
              0
              Привет! Подскажи, пожалуйста, как ты это делаешь — я не додумался :(
                Илья Уткин
                14 сентября 2017, 10:58
                1
                +1
                [[!+modx.user.id:eq=`1`:then=`
                  <a href="manager/?a=element/chunk/update&id=8" data-action="iframe">Редактировать</a>
                `:else=``]]

                Только вместо восьмёрки id нужного чанка. Ну и оформить ссылку уже можно как угодно с помощью стилей.
                  Олег
                  15 сентября 2017, 12:59
                  0
                  Понятно, спасибо!
                  Да, такой вариант мне в голову приходил, но я думал есть что-то более интересное.
              Василий Столейков
              01 июля 2016, 12:17
              0
              Спасибо — очень круто!!!
              А можно вынести путь к css-файлу в настройки, чтобы при обновлении не затёрся? Или где можно изменить CSS, который прячет левую и верхние панели?
              Они мне не особо мешают если есть (я про левую), но вот если спрятаны, и панелька слева в админке не была задвинута кнопкой, то в модалке получается пустое некрасивое пространство.
                but1head
                01 июля 2016, 12:20
                1
                +2
                Вынесу css который вставляется в фрейм, и который грузится на фронтэнд в настройки
                Echo
                01 июля 2016, 16:18
                +1
                При установке плагина сайт игнорирует тэг «base», в результате чего у меня пропали шрифты-иконки с сайта. А в целом — круто и удобно.
                  but1head
                  01 июля 2016, 17:49
                  +4
                  1.0.3-beta
                  ==============
                  — Стили, скрипты, чанк вынесены в настройки
                  — Перезагрузка страницы после сохранения
                  https://modstore.pro/packages/utilities/frontendmanager
                    SEQUEL.ONE
                    02 июля 2016, 02:54
                    0
                    А так же кастомные таблицы можно редактировать которые выгружены на страницу через VirtualPage?
                      but1head
                      02 июля 2016, 03:08
                      +1
                      Если у них есть ссылка в админке и ее можно как-то подставить на фронтэнде — да.

                      Повторюсь, открывается просто iframe админ панели по ссылке которая висит на кнопке.

                      Редактирование товара, список заказов, пользователей, группы пользователей, конкретного пользователя и тд.

                      Можно в чанке списка товара/тикета подставить кнопку редактирования, у каждого коментария ссылку на редактирование пользователя и тд.
                      Евгений Webinmd
                      06 июля 2016, 20:57
                      0
                      Может кому пригодится. У меня сайт в подпапке (на время разработки) и стили для фрейма не подгружались, в плагине поменял пути:

                      if ($_GET['frame']) {
                      			$modx->regClientCSS(MODX_ASSETS_URL.'components/frontendmanager/css/mgr/'.$modx->getOption('frontendmanager_manager_css', NULL, 'manager.css'));
                      			$modx->regClientStartupScript(MODX_ASSETS_URL.'components/frontendmanager/js/mgr/'.$modx->getOption('frontendmanager_manager_js', NULL, 'manager.js'));
                              }
                        but1head
                        06 июля 2016, 21:03
                        +1
                        Обновил git
                        but1head
                        07 июля 2016, 17:07
                        +1
                        Исправил серьезный баг с кэшем, рекомендую всем кто использует компонент срочно обновиться.
                          Aleksandr Huz
                          08 июля 2016, 10:41
                          0
                          Привет, Никита!
                          Иконки компонента, конфликтуют (перебивают) с иконками, которые установлены на сайте.
                          Я исправил для себя, но было бы круто, если бы ты исправил и в компоненте.
                          Файл:
                          assets/components/frontendmanager/css/fonts/style.css
                          Было:
                          [class^="icon-"], 
                          [class*=" icon-"] {
                              /* use !important to prevent issues with browser extensions that change fonts */
                              font-family: 'frontendmanager' !important;
                              speak: none;
                              font-style: normal;
                              font-weight: normal;
                              font-variant: normal;
                              text-transform: none;
                              line-height: 1; 
                          
                              /* Better Font Rendering =========== */
                              -webkit-font-smoothing: antialiased;
                              -moz-osx-font-smoothing: grayscale;
                          }
                          Стало:
                          .fm-panel [class^="icon-"], 
                          .fm-panel [class*=" icon-"] {
                              /* use !important to prevent issues with browser extensions that change fonts */
                              font-family: 'frontendmanager' !important;
                              speak: none;
                              font-style: normal;
                              font-weight: normal;
                              font-variant: normal;
                              text-transform: none;
                              /* line-height: 1; */
                          
                              /* Better Font Rendering =========== */
                              -webkit-font-smoothing: antialiased;
                              -moz-osx-font-smoothing: grayscale;
                          }
                          Спасибо за компонент!
                            but1head
                            11 июля 2016, 00:44
                            0
                            Обновил modstore и git
                              Valikhan
                              05 ноября 2016, 23:00
                              0
                              Точно? Че то я не углядел… Версия 1.0.9beta
                            Андрей
                            16 июля 2016, 11:01
                            0
                            Как его включить то? Установил, но никакой панели не появляется. Версия modx 2.5.0, версия плагина 1.0.7-beta, pdoTools тоже последней версии.
                              Евгений Webinmd
                              19 июля 2016, 12:17
                              0
                              в версии 1.0.7-beta дополнения frontendManager, события плагина отмеченные галочками, не совпадают с теми что прописаны в условиях самого плагина, поэтому пока не переставишь галки, будет казаться что плагин не работает. Надо зайти в плагин и в списке событий отметить OnWebPagePrerender
                                but1head
                                19 июля 2016, 12:35
                                +2
                                Обновил
                              but1head
                              19 июля 2016, 12:49
                              +1
                              У компонента уже 70 скачек, хотелось бы услышать как он проявляет себя в работе и всего-ли хватает. А то вроде бы и пользуются, а фидбэков почти никаких.
                                Maxim
                                19 июля 2016, 18:06
                                +1
                                Спасибо за компонент, давно не хватало подобного решения.
                                Из мелочей. Замените класс «logo» на какой-нибудь менее популярный, например «fm-logo». У меня, например, логотип modx уплыл вниз из-за того, что такой класс уже был присвоен к логотипу сайта.
                                  but1head
                                  19 июля 2016, 19:40
                                  +1
                                  Поправлю
                                  Александр Котлов
                                  19 июля 2016, 18:48
                                  0
                                  Установил последнюю версию на голый сайт. Лого класс действительно стоит изменить, даже с обычной приветственной страницей MODX конфликтует. При клике на пункт меню открывается с админка, а не окно модальное. В консоли пишет что jquery undefined.
                                    but1head
                                    19 июля 2016, 19:40
                                    0
                                    Подключите jquery к сайту, постараюсь сегодня сделать проверку на наличие.
                                    Sergey Perepechin
                                    20 июля 2016, 13:42
                                    0
                                    Если не использовать base href в шаблоне страниц то логотип редактора не грузиться. надо бы абсолтным путь сделать? ну или fullurl…

                                    Продолжаем тестирование )
                                    Спасибо!
                                      Maxim
                                      20 июля 2016, 13:53
                                      0
                                      Ещё одно пожелание. Возможность менять расположение панели. Например, слева вертикально, или просто кнопка, которая раскрывается при наведении.
                                      Сейчас очень много адаптивных дизайнов, при котором верхнее меню при скролинге постоянно плавает, а панель иногда мешает навигации.
                                      Вот как-то так:
                                        @ndrew
                                        26 июля 2016, 06:18
                                        0
                                        Компонент супер! Автору респект!
                                        Есть пожелание — было бы замечательно скрывать панель и при наведении курсора её показывать.
                                          @ndrew
                                          27 июля 2016, 02:52
                                          0
                                          Сделал костыль в виде скрывающейся панели. Панель скрывается не полностью и при наведении курсора она выдвигается. Адаптивному дизайну не мешает.

                                          assets/components/frontendmanager/css/web/frontend.css
                                          Скопировать для возможности отката и заменить на измененный.

                                          @import "../fonts/style.css";
                                          
                                          .fm-panel {
                                              background-image: linear-gradient(to right,#3f4850 0,#365462 46%,#3e5554 60%,#42554d 68%,#573d4e 100%);
                                              box-shadow: 0 2px 0 #E4E4E4;
                                              height: 40px;
                                          	line-height: 40px;
                                          	font-size: 13px;
                                              position: fixed;
                                              z-index: 1040;
                                              top:-37px; // Величина отвечает на сколько будет торчать панель
                                              left: 0;
                                              right: 0;
                                              display: block;
                                              overflow-y: hidden;
                                              -webkit-transition: top 0.4s ease-in-out 0.1s;
                                              -moz-transition: top 0.4s ease-in-out 0.1s;
                                              transition: top 0.4s ease-in-out 0.1s;
                                          }
                                          
                                          .fm-panel:hover{
                                          	top: 0px;
                                          	-webkit-transition: top 0.4s ease-in-out 0.1s;
                                          	-moz-transition: top 0.4s ease-in-out 0.1s;
                                          	transition: top 0.4s ease-in-out 0.1s;
                                          }
                                          
                                          body.fm {padding-top: 0px !important;}
                                          .fm-panel a {color:#fff !important; border-right: 1px solid #2F4150;padding: 0 20px; display: inline-block; outline: 0 !important; text-decoration: none !important;    float: left;}
                                          .fm-panel a:hover {    background: #3B5C69;}
                                          
                                          .fm-panel a span {
                                              display: block;
                                              float: left;
                                              line-height: 40px;
                                              margin: 0 10px 0px 0;
                                          }
                                          
                                          .fm-panel a.logo img {height: 20px;}
                                          .fm-panel.button {
                                              display: inline-block;
                                              position: static;
                                              padding: 0 15px;
                                              color: #fff;
                                          }
                                          .fm-panel.button:hover {
                                              background: #3B5C69;
                                              text-decoration: none;
                                          }
                                          
                                          
                                          body .mfp-iframe-scaler iframe {
                                          	padding: 30px;
                                              background: #F2F2F2;
                                              border-radius: 5px;
                                          }
                                          
                                          @media all and (max-width: 768px) {
                                              .fm-text {
                                                  display:none !important;
                                              }
                                              .fm-panel a span {
                                                  margin:0;
                                              }
                                              body .mfp-iframe-scaler iframe {
                                              	margin:5px;
                                              }
                                          }
                                          
                                          
                                          /* Magnific Popup CSS */
                                          .mfp-bg {
                                            top: 0;
                                            left: 0;
                                            width: 100%;
                                            height: 100%;
                                            z-index: 1042;
                                            overflow: hidden;
                                            position: fixed;
                                            background: #0b0b0b;
                                            opacity: 0.8; }
                                          
                                          .mfp-wrap {
                                            top: 0;
                                            left: 0;
                                            width: 100%;
                                            height: 100%;
                                            z-index: 1043;
                                            position: fixed;
                                            outline: none !important;
                                            -webkit-backface-visibility: hidden; }
                                          
                                          .mfp-container {
                                            text-align: center;
                                            position: absolute;
                                            width: 100%;
                                            height: 100%;
                                            left: 0;
                                            top: 0;
                                            padding: 0 8px;
                                            box-sizing: border-box; }
                                          
                                          .mfp-container:before {
                                            content: '';
                                            display: inline-block;
                                            height: 100%;
                                            vertical-align: middle; }
                                          
                                          .mfp-align-top .mfp-container:before {
                                            display: none; }
                                          
                                          .mfp-content {
                                            position: relative;
                                            display: inline-block;
                                            vertical-align: middle;
                                            margin: 0 auto;
                                            text-align: left;
                                            z-index: 1045; }
                                          
                                          .mfp-inline-holder .mfp-content,
                                          .mfp-ajax-holder .mfp-content {
                                            width: 100%;
                                            cursor: auto; }
                                          
                                          .mfp-ajax-cur {
                                            cursor: progress; }
                                          
                                          .mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
                                            cursor: -moz-zoom-out;
                                            cursor: -webkit-zoom-out;
                                            cursor: zoom-out; }
                                          
                                          .mfp-zoom {
                                            cursor: pointer;
                                            cursor: -webkit-zoom-in;
                                            cursor: -moz-zoom-in;
                                            cursor: zoom-in; }
                                          
                                          .mfp-auto-cursor .mfp-content {
                                            cursor: auto; }
                                          
                                          .mfp-close,
                                          .mfp-arrow,
                                          .mfp-preloader,
                                          .mfp-counter {
                                            -webkit-user-select: none;
                                            -moz-user-select: none;
                                            user-select: none; }
                                          
                                          .mfp-loading.mfp-figure {
                                            display: none; }
                                          
                                          .mfp-hide {
                                            display: none !important; }
                                          
                                          .mfp-preloader {
                                            color: #CCC;
                                            position: absolute;
                                            top: 50%;
                                            width: auto;
                                            text-align: center;
                                            margin-top: -0.8em;
                                            left: 8px;
                                            right: 8px;
                                            z-index: 1044; }
                                            .mfp-preloader a {
                                              color: #CCC; }
                                              .mfp-preloader a:hover {
                                                color: #FFF; }
                                          
                                          .mfp-s-ready .mfp-preloader {
                                            display: none; }
                                          
                                          .mfp-s-error .mfp-content {
                                            display: none; }
                                          
                                          button.mfp-close,
                                          button.mfp-arrow {
                                            overflow: visible;
                                            cursor: pointer;
                                            background: transparent;
                                            border: 0;
                                            -webkit-appearance: none;
                                            display: block;
                                            outline: none;
                                            padding: 0;
                                            z-index: 1046;
                                            box-shadow: none;
                                            touch-action: manipulation; }
                                          
                                          button::-moz-focus-inner {
                                            padding: 0;
                                            border: 0; }
                                          
                                          .mfp-close {
                                            width: 44px;
                                            height: 44px;
                                            line-height: 44px;
                                            position: absolute;
                                            right: 0;
                                            top: 0;
                                            text-decoration: none;
                                            text-align: center;
                                            opacity: 0.65;
                                            padding: 0 0 18px 10px;
                                            color: #FFF;
                                            font-style: normal;
                                            font-size: 28px;
                                            font-family: Arial, Baskerville, monospace; }
                                            .mfp-close:hover,
                                            .mfp-close:focus {
                                              opacity: 1; }
                                            .mfp-close:active {
                                              top: 1px; }
                                          
                                          .mfp-close-btn-in .mfp-close {
                                            color: #333; }
                                          
                                          .mfp-image-holder .mfp-close,
                                          .mfp-iframe-holder .mfp-close {
                                            color: #FFF;
                                            right: -6px;
                                            text-align: right;
                                            padding-right: 6px;
                                            width: 100%; }
                                          
                                          .mfp-counter {
                                            position: absolute;
                                            top: 0;
                                            right: 0;
                                            color: #CCC;
                                            font-size: 12px;
                                            line-height: 18px;
                                            white-space: nowrap; }
                                          
                                          .mfp-arrow {
                                            position: absolute;
                                            opacity: 0.65;
                                            margin: 0;
                                            top: 50%;
                                            margin-top: -55px;
                                            padding: 0;
                                            width: 90px;
                                            height: 110px;
                                            -webkit-tap-highlight-color: transparent; }
                                            .mfp-arrow:active {
                                              margin-top: -54px; }
                                            .mfp-arrow:hover,
                                            .mfp-arrow:focus {
                                              opacity: 1; }
                                            .mfp-arrow:before,
                                            .mfp-arrow:after {
                                              content: '';
                                              display: block;
                                              width: 0;
                                              height: 0;
                                              position: absolute;
                                              left: 0;
                                              top: 0;
                                              margin-top: 35px;
                                              margin-left: 35px;
                                              border: medium inset transparent; }
                                            .mfp-arrow:after {
                                              border-top-width: 13px;
                                              border-bottom-width: 13px;
                                              top: 8px; }
                                            .mfp-arrow:before {
                                              border-top-width: 21px;
                                              border-bottom-width: 21px;
                                              opacity: 0.7; }
                                          
                                          .mfp-arrow-left {
                                            left: 0; }
                                            .mfp-arrow-left:after {
                                              border-right: 17px solid #FFF;
                                              margin-left: 31px; }
                                            .mfp-arrow-left:before {
                                              margin-left: 25px;
                                              border-right: 27px solid #3F3F3F; }
                                          
                                          .mfp-arrow-right {
                                            right: 0; }
                                            .mfp-arrow-right:after {
                                              border-left: 17px solid #FFF;
                                              margin-left: 39px; }
                                            .mfp-arrow-right:before {
                                              border-left: 27px solid #3F3F3F; }
                                          
                                          .mfp-iframe-holder {
                                            padding-top: 40px;
                                            padding-bottom: 40px; }
                                            .mfp-iframe-holder .mfp-content {
                                              line-height: 0;
                                              width: 100%;
                                              max-width: 1100px; }
                                            .mfp-iframe-holder .mfp-close {
                                              top: -40px; }
                                          
                                          .mfp-iframe-scaler {
                                            width: 100%;
                                            height: 0;
                                            overflow: hidden;
                                            padding-top: 56.25%; }
                                            .mfp-iframe-scaler iframe {
                                              position: absolute;
                                              display: block;
                                              top: 0;
                                              left: 0;
                                              width: 100%;
                                              height: 100%;
                                              box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
                                              background: #000; }
                                          
                                          /* Main image in popup */
                                          img.mfp-img {
                                            width: auto;
                                            max-width: 100%;
                                            height: auto;
                                            display: block;
                                            line-height: 0;
                                            box-sizing: border-box;
                                            padding: 40px 0 40px;
                                            margin: 0 auto; }
                                          
                                          /* The shadow behind the image */
                                          .mfp-figure {
                                            line-height: 0; }
                                            .mfp-figure:after {
                                              content: '';
                                              position: absolute;
                                              left: 0;
                                              top: 40px;
                                              bottom: 40px;
                                              display: block;
                                              right: 0;
                                              width: auto;
                                              height: auto;
                                              z-index: -1;
                                              box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
                                              background: #444; }
                                            .mfp-figure small {
                                              color: #BDBDBD;
                                              display: block;
                                              font-size: 12px;
                                              line-height: 14px; }
                                            .mfp-figure figure {
                                              margin: 0; }
                                          
                                          .mfp-bottom-bar {
                                            margin-top: -36px;
                                            position: absolute;
                                            top: 100%;
                                            left: 0;
                                            width: 100%;
                                            cursor: auto; }
                                          
                                          .mfp-title {
                                            text-align: left;
                                            line-height: 18px;
                                            color: #F3F3F3;
                                            word-wrap: break-word;
                                            padding-right: 36px; }
                                          
                                          .mfp-image-holder .mfp-content {
                                            max-width: 100%; }
                                          
                                          .mfp-gallery .mfp-image-holder .mfp-figure {
                                            cursor: pointer; }
                                          
                                          @media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
                                            /**
                                                 * Remove all paddings around the image on small screen
                                                 */
                                            .mfp-img-mobile .mfp-image-holder {
                                              padding-left: 0;
                                              padding-right: 0; }
                                            .mfp-img-mobile img.mfp-img {
                                              padding: 0; }
                                            .mfp-img-mobile .mfp-figure:after {
                                              top: 0;
                                              bottom: 0; }
                                            .mfp-img-mobile .mfp-figure small {
                                              display: inline;
                                              margin-left: 5px; }
                                            .mfp-img-mobile .mfp-bottom-bar {
                                              background: rgba(0, 0, 0, 0.6);
                                              bottom: 0;
                                              margin: 0;
                                              top: auto;
                                              padding: 3px 5px;
                                              position: fixed;
                                              box-sizing: border-box; }
                                              .mfp-img-mobile .mfp-bottom-bar:empty {
                                                padding: 0; }
                                            .mfp-img-mobile .mfp-counter {
                                              right: 5px;
                                              top: 3px; }
                                            .mfp-img-mobile .mfp-close {
                                              top: 0;
                                              right: 0;
                                              width: 35px;
                                              height: 35px;
                                              line-height: 35px;
                                              background: rgba(0, 0, 0, 0.6);
                                              position: fixed;
                                              text-align: center;
                                              padding: 0; } }
                                          
                                          @media all and (max-width: 900px) {
                                            .mfp-arrow {
                                              -webkit-transform: scale(0.75);
                                              transform: scale(0.75); }
                                            .mfp-arrow-left {
                                              -webkit-transform-origin: 0;
                                              transform-origin: 0; }
                                            .mfp-arrow-right {
                                              -webkit-transform-origin: 100%;
                                              transform-origin: 100%; }
                                            .mfp-container {
                                              padding-left: 6px;
                                              padding-right: 6px; } }
                                            Виктор
                                            29 июля 2016, 23:50
                                            0
                                            Отлично! Пользуюсь и радуюсь.
                                              @ndrew
                                              30 июля 2016, 19:28
                                              0
                                              Допилил панель. Теперь она открывается и закрывается по триггеру.

                                              Кому интересно просто сделайте копию каталога assets/components/frontendmanager и скачайте мой архив

                                              Распакуйте и замените каталог frontendmanager.

                                              Автор если будешь развивать компонент, просьба вшить в него мою наработку, думаю она оптимальна. )
                                                @ndrew
                                                30 июля 2016, 19:52
                                                0
                                                Самое главное забыл, в чанке tpl.frontendmanager.panel добавить сам триггер
                                                <div class="fm-trigger"><span class="icon-trigger"></span></div>
                                                  but1head
                                                  30 июля 2016, 19:55
                                                  0
                                                  Пул регвест сделвюайте на гитхаб, добавлю. Там жэ куки выставляются что панельку закрыли?
                                                    @ndrew
                                                    30 июля 2016, 20:01
                                                    0
                                                    «Там жэ куки выставляются что панельку закрыли?» — не понял вопроса.
                                                    Честно не охото заморачиваться с гитхабом. Но если очень надо то заморочусь.
                                                    Могу подробно расписать что и где менял, а Вы можете добавить из моего архива.
                                                      but1head
                                                      30 июля 2016, 20:05
                                                      0
                                                      После обновы страницы/перехода панель снова открывается (если была скрыта и наоборот). Через куки можно запомнить ее состояние, открыта/закрыта

                                                      По гиту — хотелось бы, компонент развивается совместными усилиями, я лишь сделал оболочку, от этого он и бесплатный
                                                        @ndrew
                                                        30 июля 2016, 20:06
                                                        0
                                                        После обновы страницы/перехода панель в свернутом состоянии что бы не мешалась, открыть кликом по триггеру и делов)) У меня реализовано на jquery+css и добавил еще иконку в fonts. Выложу на гитхаб, а там надо думать как лучше.
                                                  @ndrew
                                                  30 июля 2016, 21:32
                                                  0
                                                  Выложил на гитхаб
                                                  Видел предложение на гитхабе по дополнению ссылок. Хорошее дополнение!
                                                  Особенно «Очистить кэш» будет очень удобно! Осталось только иконки прикрутить.
                                                    @ndrew
                                                    31 июля 2016, 01:18
                                                    0
                                                    Обновил на гитхабе. Добавил работу панели с куками)
                                                      @ndrew
                                                      31 июля 2016, 11:08
                                                      0
                                                      Для работы панели с куками требуется библиотека query.cookie.js
                                                        lexikon
                                                        15 августа 2016, 11:07
                                                        +1
                                                        огромное человеческое спасибо! надеюсь дополнение будет развиваться!
                                                        2 нюанса: обновите в modstore до 1.0.9
                                                        и может вы сможете поправить ксс и воспользоватся наименованием по БЭМ?
                                                        чтобы не случилось пересечения классов.
                                                        На дефолтной странице modx после установки треш.
                                                          Александр
                                                          15 августа 2016, 15:54
                                                          0
                                                          На тестовый сайт установил — почему-то главная страница стала недоступна. Если разлогиниться, то сайт открывается.
                                                            Александр Котлов
                                                            16 августа 2016, 10:08
                                                            0
                                                            Столкнулся с проблемой — не на всех страницах нужна панель — например на экспорте в яндекс маркет. Было бы здорово иметь возможность отключить ее для отдельных ресурсов настройкой.
                                                              lexikon
                                                              16 августа 2016, 10:16
                                                              0
                                                              на странице с типом содержимого xml, к примеру /sitemap.xml выдаёт ошибку!!!

                                                              This page contains the following errors:

                                                              error on line 1 at column 187: Extra content at the end of the document
                                                              Below is a rendering of the page up to the first error.
                                                                Илья Уткин
                                                                16 августа 2016, 10:56
                                                                +1
                                                                Вот коммит, который решает эту проблему: github.com/but1head/frontendmanager/commit/3a6980436065c7fa0a4d3f058bb9ffd7b01bdfde
                                                                  lexikon
                                                                  17 августа 2016, 18:57
                                                                  0
                                                                  видимо его не достаточно. Скачал исходники с гита — всё завелось.

                                                                  К тому же обращу ваше внимание на использование в стилях [class^=«icon-»] селектора! Это слишком обширное применение. Ломает верстку везде если есть классы icon-!
                                                                    but1head
                                                                    17 августа 2016, 20:21
                                                                    0
                                                                    Сделайте пулрегвест на гитхаб, это никому из пользователей компонента не повредит.
                                                                Павел
                                                                01 ноября 2016, 16:00
                                                                0
                                                                Автор, а подскажи пожалуйста, зачем в плагине «frontendmanager» написано:

                                                                if ($modx->resource->content_type == 1) {
                                                                    $modx->resource->_output .=  $frontendManager->initialize($modx->context->key);
                                                                }
                                                                Т.е. проверка на content_type с id 1? Ведь многие создают новый тип содержимого, где нет .html в расширении и получается если я хочу использовать другой тип содержимого для своих url, то у меня панелька не выходит.

                                                                Как вариант предлагаю системную настройку добавить, где через запятую можно указывать типы содержимого с которым панелька будет работать.
                                                                  but1head
                                                                  01 ноября 2016, 16:04
                                                                  +1
                                                                  в xml и robots выезжала панелька, некоторые думали, что от этого файл ломается, но по факту видит только админ. чуть позже добавлю, сейчас занят другим компонентом. исходники на гитхабе, если есть предложения можно туда пулять.
                                                                  Василий Столейков
                                                                  08 ноября 2016, 14:47
                                                                  1
                                                                  0
                                                                  Невозможно сменить шаблон страницы в модалке — идёт перезагрузка без изменений…
                                                                  Не критично, но интересно, можно ли как-то перехватить перезагрузку…
                                                                    Василий Столейков
                                                                    11 ноября 2016, 09:22
                                                                    1
                                                                    0
                                                                    Нигде в статье не было указано, что не проверяются никакие права — тупо выдаётся чанк всем авторизованным пользователям! В итоге я не сразу это понял и поставил на несколько сайтов с пользователями разных групп. И (караул!) пользователи видели панель администратора, правда по ссылкам переходить не могли, т.к. у них не было доступа…

                                                                    1. Нужно ограничивать доступ по группам пользователей (в настройках указать для каких, по умолчанию только для Administrator)
                                                                    2. Иконкам указать другие префиксы, чтобы стилизация других иконок на сайте не ломалась
                                                                    3. Хорошо бы верхнее меню сделать в виде обычного ul-списка с вложенностью, чтобы можно было распологать подменюшки, т.к. много ссылок напрашиваются.
                                                                    4. Если поставить ссылку на CSS или JS файл (удобно быстро что-то поменять), то как-то указать таким ссылкам (может в data-параметре) необходимость перезагрузки страницы после сохранения, как это реализовано при редактировании ресурса.
                                                                    5. Предложение давать возможность менять положение панели (верх и лево), а также при необходимости собирать её кажется разумным.
                                                                      but1head
                                                                      11 ноября 2016, 09:26
                                                                      0
                                                                      Если мне память не изменяет там былапроверка на контекст mgr, да и впервые такой фидюэк вижу.

                                                                      Я смогу заняться ближе к концу ноября, сегодня улетаю в отпуск.

                                                                      Upd: почему-то нету проверки, хз как так произошло и никто не говорил. Постараюсь в субботу обновить.
                                                                        Василий Столейков
                                                                        11 ноября 2016, 09:31
                                                                        1
                                                                        0
                                                                        Если мне память не изменяет там былапроверка на контекст mgr, да и впервые такой фидюэк вижу.
                                                                        Может дело в том, что у меня при авторизации на фронте пользователь авторизуется сразу в нескольких контекстах, в том числе и mgr? Это я сделал, чтобы авторизовавшись через фронт у админов сразу был доступ в админку. Обычный же пользователь, хоть и авторизован в mgr, но прав ни на что не имеет, а значит админка для него закрыта.

                                                                        сегодня улетаю в отпуск.
                                                                        Отдохни, наберись энергии и приезжай обратно к нам, ты нам тут нужен! ;) =P
                                                                          but1head
                                                                          11 ноября 2016, 09:40
                                                                          +1
                                                                          пользователь авторизуется сразу в нескольких контекстах, в том числе и mgr?
                                                                          Так вот где собака зарыта)
                                                                          Проверка есть
                                                                          if (!$modx->user->hasSessionContext('mgr')) return;
                                                                          Добавлю еще и проверку группы.

                                                                          Отдохни, наберись энергии и приезжай обратно к нам, ты нам тут нужен! ;) =P
                                                                          Спасибо)
                                                                            ViktorK
                                                                            26 апреля 2017, 22:42
                                                                            0
                                                                            Подскажите как настроить для manager c ограниченным доступом в админку? Проверку на доступ в контекст mgr проходит, но панель на фронет не видит.
                                                                              but1head
                                                                              26 апреля 2017, 22:51
                                                                              0
                                                                              Там еще проверка на группу Administrator, можете закоментировать в плагине
                                                                          Василий Столейков
                                                                          11 ноября 2016, 09:33
                                                                          1
                                                                          0
                                                                          почему-то нету проверки и никто не говорил. Постараюсь в субботу обновить.
                                                                          Похоже я первый осмелился подать голос ))))
                                                                          Ок, спасибо!
                                                                        Андрей
                                                                        01 декабря 2016, 13:28
                                                                        0
                                                                        Подскажите, а создавать страницы с фронта с помощью этого компонента можно? Мне нужно реализовать добавление новостей с фронта. Кстати, может еще чего посоветуете.
                                                                          but1head
                                                                          01 декабря 2016, 14:00
                                                                          0
                                                                          Добавить такую ссылку на панель
                                                                          manager/?id={parent}&a=resource/create&class_key=modDocument&parent={parent}&context_key=web
                                                                          Компонент это iframe админки, можно делать все, что можно в админке, в разумных пределах конечно.
                                                                          but1head
                                                                          10 декабря 2016, 23:22
                                                                          +1
                                                                          1.1.0
                                                                          Добавил возможность скрыть панель
                                                                          Проверка на content_type (в настройках)
                                                                          Переписан css на .fm-селекторы

                                                                          Скрытая панель теперь выглядит так (сохраняется по кукам)


                                                                          Пытался отключить обновление модалки при смене шаблона, но при обновлении страницы в менеджере трется параметр frame=1, если кто-нибудь знает как его сохранить буду признателен
                                                                            mngatoff
                                                                            11 декабря 2016, 02:05
                                                                            0
                                                                            Уважаемый, спасибо, супер вещь.
                                                                            У себя дописал в плагин вот такое (строка 5):
                                                                            <?php
                                                                            if (!$modx->user->hasSessionContext('mgr')) return;
                                                                            switch ($modx->event->name) {
                                                                                case 'OnWebPagePrerender':
                                                                                    if (!$modx->resource->get('template')) break;

                                                                            дело в том, что на ресурсах без шаблона панель не то что не нужна, она мешает) например, наглухо ломает страницу, если ресурс заведен чисто для аякс запроса. Кроме того, хорошо бы проверять на тип — например, к sitemap.xml или robots.txt, если они сделаны ресурсами, совершенно не в кассу панель)
                                                                              but1head
                                                                              11 декабря 2016, 02:26
                                                                              0
                                                                              Впервые вижу страницу для аякс запроса, обычное такое через OnPageNotFound делают. По поводу роботс и сайтмап стоит проверка на тип ресурса (у роботс — txt, у сайтмап — xml) и на них панели нет в версии 1.1.0.
                                                                                mngatoff
                                                                                11 декабря 2016, 02:36
                                                                                0
                                                                                поподробнее про OnPageNotFound можно?
                                                                                у меня были случаи, когда было удобнее всего сделать ресурс без шаблона, который откликается только на аякс-запрос, а при прямом открытии редиректит. Например, корзина во всплывающем окне с полноценным редактором количества и удалением товаров. При прямом обращении она в обычную корзину отправляет.
                                                                                  but1head
                                                                                  11 декабря 2016, 02:43
                                                                                  0
                                                                                  Если корзина то согласен, быстрое решение, так же делал. Панелька только админу выводится, на страницы без шаблона добавлю проверку.
                                                                                  А вообще bezumkin.ru/sections/tips_and_tricks/2918/ для не существующих страниц и oNHandleRequest для всяких аякс запросов, пример завтра смогу скинуть если напомнишь
                                                                                    mngatoff
                                                                                    11 декабря 2016, 02:46
                                                                                    0
                                                                                    напомню, спасибо
                                                                                      mngatoff
                                                                                      13 декабря 2016, 14:26
                                                                                      0
                                                                                      напоминаю :)
                                                                                      спасибо за оперативные обновления
                                                                                Павел
                                                                                11 декабря 2016, 13:02
                                                                                +1
                                                                                Автор, большая просьба сделать системную настройку, через которую можно будет выбирать, где меню будет зафиксировано, либо сверху, либо снизу… просто бывает на сайте фиксированное верхнее меню и оно может перебить панельку или наоборот, панелька перебьёт меню.
                                                                                  but1head
                                                                                  11 декабря 2016, 22:11
                                                                                  +3
                                                                                  Добавил, можно обновляться
                                                                                    Павел
                                                                                    11 декабря 2016, 23:12
                                                                                    0
                                                                                    Быстро, спасибо)
                                                                                    mngatoff
                                                                                    13 декабря 2016, 14:26
                                                                                    0
                                                                                    а я пару строчек дописывал в css, тоже довольно удобно. типа так:
                                                                                    .h_menu {
                                                                                    	position: fixed;
                                                                                    	top: 0;
                                                                                    }
                                                                                    .fm .h_menu {
                                                                                    	top: 40px;
                                                                                    }
                                                                                    Николай
                                                                                    24 декабря 2016, 10:25
                                                                                    0
                                                                                    Есть глюк в много язычных сайтах, не отображается по такому пути site.ru/ru/stranica или site.ru/en/stranica, а по адресу site.ru/stranica всё замечательно.

                                                                                    Видимо его пугает мой контекст:
                                                                                    base_url: /ru/
                                                                                    http_host: site.ru
                                                                                    site_url: http://site.ru/ru/
                                                                                      Александр
                                                                                      24 февраля 2017, 19:26
                                                                                      0
                                                                                      Доброго дня!
                                                                                      А как сделать в нём редактирование чанков?
                                                                                        Елена Бредова
                                                                                        11 июня 2017, 22:43
                                                                                        0
                                                                                        Чудесный компонент!!! :) Автору респект!!!

                                                                                        Вот только не нашла, где указать, чтобы панель была снизу, а не сверху?
                                                                                            Елена Бредова
                                                                                            11 июня 2017, 22:58
                                                                                            0
                                                                                            А у меня нету :( joxi.ru/vAW1kXC1XX6omW

                                                                                            Версия 1.1.0-beta
                                                                                              Александр Котлов
                                                                                              11 июня 2017, 23:11
                                                                                              0
                                                                                              у меня 1.1.1 версия
                                                                                                Елена Бредова
                                                                                                11 июня 2017, 23:24
                                                                                                0
                                                                                                Спасибо! Нашла на github.com/but1head/frontendmanager версию 1.1.1 но не понятно как ее ставить…
                                                                                                    Елена Бредова
                                                                                                    12 июня 2017, 17:59
                                                                                                    0
                                                                                                    :) если было все так просто, я бы не спрашивала.
                                                                                                    Но через пакетную установку ставит joxi.ru/4AkwVyuyBEjBAq 1.1.0-beta

                                                                                                    Удаляла и переустанавливала уже 5 раз, та же картина.
                                                                                                      Александр Котлов
                                                                                                      12 июня 2017, 21:25
                                                                                                      0
                                                                                                      Елена, пакет нужно устанавливать не с modx.com — там похоже устаревшая версия а с modstore.pro. Вот тут как подключить репозиторий modstore modstore.pro/info/connection

                                                                                                      Далее при установке нужно выбрать поставщика пакетов modstore, и установить.

                                                                                                      ВТорой вариант закинуть пакет 1.1.1 версии в /core/packages и выбрать «Искать пакеты локально». Пакет могу прислать на почту.
                                                                                                        Елена Бредова
                                                                                                        13 июня 2017, 14:26
                                                                                                        0
                                                                                                        Супер! Спасибо Вам большое!!! Я не обратила внимание, откуда ставится пакет, теперь вручную выбрала поставщика (он уже был занесен) и все ОК :) встала версия 1.1.1
                                                                                                    man
                                                                                                    man
                                                                                                    12 июня 2017, 19:54
                                                                                                    0
                                                                                                    Полагаю что нужно просто скачать и установить, не?! Справа сверху «download or clone»-> «Download ZIP» -> загружаете в "/core/packages/" -> идем в «установщик» -> тыкаем на стрелочку в «загрузить дополнение» и выбираем «искать пакеты локально»… ну и ищем новый пакет и устанавливаем)
                                                                                            Евгений
                                                                                            30 июля 2017, 03:11
                                                                                            0
                                                                                            Всем привет.
                                                                                            Ставил пакет и через modx.com и через modstore.pro версия в установщике 1.1.1
                                                                                            но пакет как то криво работает, нажимаю на редактирования, переходит в админку на редактирование этого ресурса, никакое окно во фронтенде не открывается ((

                                                                                            стоит pdoTools 2.9.1-pl, версия модх — MODX Revolution 2.5.7-pl
                                                                                              Евгений
                                                                                              30 июля 2017, 03:28
                                                                                              0
                                                                                              проблему решил подгрузкой в head — jquery-1.10.2.min.js
                                                                                                Александр Сенькин
                                                                                                13 июля 2022, 10:26
                                                                                                0
                                                                                                А у меня не сработало? — jquery-1.10.2.min.js
                                                                                                Может не там беру? Подскажите где вы брали — jquery
                                                                                                я здесь releases.jquery.com/jquery/
                                                                                                  Александр Сенькин
                                                                                                  13 июля 2022, 10:58
                                                                                                  0
                                                                                                  На одном сайте помогло подключение версии
                                                                                                  <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
                                                                                                  а на другом не сработало!
                                                                                              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                                                              94