Александр Туниеков

Александр Туниеков

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
21 марта 2021, 13:17
0
'loadModels'=>'pdoUsers', не надо
{'getTable' | snippet : [
    'table'=>[
        'class'=>'modUser',
        'actions'=>[
            'create'=>[
            ],
            'update'=>[
                'icon' => 'fa fa-edit',
            ],
        ],
        'pdoTools'=>[
            'class'=>'modUser',
            'leftJoin'=>[
                'modUserProfile'=>[
                    'class' => 'modUserProfile',
                    'on' => 'modUserProfile.internalKey = modUser.id',
                ],
            ],
            'select'=>[
                'modUser' => 'modUser.id',
                'modUserProfile'=>'*',
            ],
        'decodeJSON'=>1,
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
                'id'=>[
                    ],
                 'fullname'=>[
                    'class'=>'modUserProfile'
                    ], 
                 'oc_name'=>[
                     'label'=>'extended поле не редактируется',
                     'edit'=>['type'=>'view']
                    ],
            ],
    ],
]}
Александр Туниеков
14 марта 2021, 16:08
0
Отправил тебе 200р за Автоустановщик шаблонов BELISSIMO. Еще не тестировал, но сама идея нравиться :-). Не верстальщик и все время мучаюсь с шаблонами.
Александр Туниеков
11 марта 2021, 17:07
0
Еще можно перегнать код массива femom в JSON.
В конфиге записать 2 параметра toJSON и showLog и в логе будет массив в json.
{'getTable' | snippet : [
    'showLog'=>1,
    'toJSON'=>1,
    'loadModels'=>'raschets',
    'table'=>[
toFenom преобразует json массив в fenom массив
Александр Туниеков
11 марта 2021, 16:58
0
На вывода как tv на ресурсе ничего пока не сделано. MIGX выводить только.
Можно в компонентах вывести несколько таблицу или несколько таблиц в табах.
Только здесь конфиг надо в системных настройках MODX в формате JSON прописывать.
Например системная настройка gtsreview_admin. В ней код 2 табов с таблицами в них:
{
            "loadModels": "gtsreview",
            "tabs": {
              "Orgs": {
                "label": "Фирмы",
                "table": {
                  "class": "gtsReviewOrg",
                  "actions": {
                    "create": [],
                    "update": []
                  },
                  "pdoTools": {
                    "class": "gtsReviewOrg"
                  },
                  "checkbox": 1,
                  "autosave": 1,
                  "row": {
                    "id": {
                      "cls": "",
                      "edit": {
                        "type": "hidden"
                      }
                    },
                    "name": {
                      "label":"Имя",
                      "filter": 1
                    },
                    "site": {
                      "label":"Сайт",
                      "filter": 1
                    },
                    "manager": {
                      "label":"Фио менеджера",
                      "filter": 1
                    },
                    "description": {
                      "label":"Описание",
                      "edit": {
                        "type": "textarea",
                        "skip_sanitize": 0
                      }
                    }
                  }
                }
              },
              "Leed": {
                
                "label": "Сделки",
                "table": {
                 
                  "pdoTools": {
                    "class": "gtsReviewLeed",
                    "leftJoin":{
                        "gtsReviewOrg":{
                            "class":"gtsReviewOrg",
                            "on":"gtsReviewOrg.id = gtsReviewLeed.org_id"
                        }
                    },
                    "select":{
                        "gtsReviewLeed":"*",
                        "gtsReviewOrg":"gtsReviewOrg.name as org"
                    }
                  },
                  "checkbox": 1,
                  "autosave": 1,
                  "row": {
                    "id": {
                      "cls": "",
                      "edit": {
                        "type": "hidden"
                      }
                    },
                    "org_id":{
                      "label":"Фирма",
                      "filter": 1,
                      "edit":{
                          "type":"select",
                          "select":"org",
                          "field_content":"org"
                      }
                    },
                    "name": {
                      "label":"Название сделки",
                      "filter": 1
                    },
                    "date": {
                      "label":"Дата сделки",
                      "filter": 1,
                      "edit": {
                        "type": "date"
                      }
                    },
                    "description": {
                      "label":"Описание",
                      "edit": {
                        "type": "textarea",
                        "skip_sanitize": 0
                      }
                    },
                    "rating": {
                      "label":"Рейтинг",
                      "filter": 1
                    },
                    "active": {
                      "label":"Активно",
                        "filter": 1,
                        "edit": {
                            "type": "checkbox"
                        },
                        "default":1
                    }
                  }
                }
              }
            }
          }
Для подключения в админке делаем меню, где прописываем Действие: home Параметры: &config=gtsreview_admin Пространство имён: gettables


Получиться вот:
Александр Туниеков
11 марта 2021, 16:38
0
Я тут изобретаю параметры default и force, а оказывается можно просто value указать :-).
Вообще можно:
'resource_id'=>[
                                'label'=>'Ресурс ID',
                                'edit'=>['type'=>'hidden',
                                        'default'=>$_modx->resource.id
                    ],
или
'resource_id'=>[
                                'label'=>'Ресурс ID',
                                'edit'=>['type'=>'hidden',
                                        'force'=>$_modx->resource.id
                    ],
default записывает, если записываемое значение пустое. А force всегда перезаписывает значение чтобы юзер не написал.
Александр Туниеков
11 марта 2021, 16:32
0
Ошибки не критичные. Не могу добраться все их обработать :-(. их много при работе компонента вылазит. Весь журнал забивают.
Александр Туниеков
10 марта 2021, 21:13
0
Наверно, кстати, я не верно первоначальный вопрос понял. Если tv MIGX создавать в базе через migxdb, то вывести эту табличку можно через getTables без проблем. Я просто тв уже редко использую и обычно таблицы к ресурсам MODX не привязываю.
Пример вывода для таблицы https://www.tale.by/assets/docs/default.schema.xml из из статьи Товары из отдельной таблицы (migxdb:
{'getTable' | snippet : [
    'loadModels'=>'pages',
    'table'=>[
        'class'=>'CustomPages',
        'actions'=>[
            'create'=>[
            ],
            'update'=>[
                
            ],
        ],
        'pdoTools'=>[
            'class'=>'CustomPages',        
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
                'id'=>[
                    ],
                'resource_id'=>[
                    'label'=>'Ресурс ID',
                    'edit'=>['type'=>'hidden',
                    ],
                    'filter'=>[
                     'edit'=>['type'=>'text',],
                     ],
                ],
                'pagetitle'=>[
                    'label'=>'Имя',
                    'filter'=>1
                ],
                'longtitle'=>[
                    'label'=>'Описание',
                    'edit'=>['type'=>'textarea',
                    ],
                ],
                'published'=>[
                    'label'=>'Опубликован',
                    'edit'=>['type'=>'checkbox',],
                ],
            ],
    ],
]}
Примерный сокращенный код. Не проверял его работу. Если разместить его на какой-либо странице и зайти на неё с get или post параметром resource_id=15, то покажет покажет CustomPages прикрепленные к ресурсу с id=15.
Александр Туниеков
10 марта 2021, 17:14
0
Ну я бы точно на геттаблес делал. Но для вас смотрите сами что вам удобной. Я сейчас на геттаблес табель учета рабочего времени делаю :-).
Только для вашей задачи было бы хорошо если геттаблес еще дерево мог строить, но он этого пока не умеет. Времени не хватает сделать. А подгружать subtable на 3 уровня не очень хорошая идея. А так бы все можно было бы на компоненте сделать.
Несколько вопросов есть:
1) «основные разделы общие для всех проектов» — то есть могут создаваться и другие разделы?
2) Создавать проект через ajax или перезагрузка таблицы?
3) открывать to-do лист по ajax или можно ссылку на отделную страницу?

Можно связаться по скайп. Мой скайп touols
Александр Туниеков
10 марта 2021, 16:11
0
Ок. Помощь в освоении нужна? Компонент достаточно сложный и даже я не все инструкции не помню.
Александр Туниеков
10 марта 2021, 16:09
0
даже не знаю как объяснить :-). Ваш уровень владения MODX не понятен.
Есть таблица в базе mysql. Есль классы в MODX для связи с таблицей в базе. Таблицу и классы проще создать через MIGX.
Компонент getTables чтобы вывести таблицу пользователю чтоб он мог редактировать в ней данные. Это аналог MIGX, только без ExtJs. Использовать можно и на фронте и в админке.
Надеюсь понятно. Можно по скайпу связаться если не понятно.
Александр Туниеков
10 марта 2021, 15:53
0
Добрый день! Сами таблицы компонента с MIGX не связанны. С MIGX просто быстрей таблицы в базе mysql сделать. А потом все без MIGX.
Александр Туниеков
03 февраля 2021, 18:10
0
Вообще планирую в течении месяца обновить компоненты. Не хватает статусов онлайн-офлайн и другие моменты поправить.
Александр Туниеков
03 февраля 2021, 17:48
0
Любой файл. Картинка как файл видна. Прикрепление файлов это компонент UserFiles
Александр Туниеков
02 февраля 2021, 20:25
0
Мне непонятно почему данный функционал нельзя реализовать независимо на своём сайте?
Я одну причину только вижу. shared хостинг не дает открывать лишние порты. То есть, сайт должен быть на VDS, либо служба уведомлений на отдельном от сайта VDS.
Сервис уведомлений проще всего подымать на nodejs + https://github.com/websockets/ws. От Workerman я использую только websocket php клиента.
Александр Туниеков
31 января 2021, 08:05
0
Извняюсь, принял ваш крик души на свой счет. 3 дня на нервах сижу. Компонент не стал полностью бесплатным. Оплату перенес на сервис. Так что reMessages купят. И, возможно, будут пользоваться и RealMessenger. Просто продавать компоненты без modstore не удобно и мне проще сделать сам компонент сделать бесплатным.
Александр Туниеков
31 января 2021, 02:57
0
Ну блин. сервис gtsnotify.ru платный 300р в месяц. Если поставят realMessenger, то это все равно 300р в месяц, а reMessages 1990р за один раз. И он окупится за 6 месяцев :-). Компоненты бесплатные потому, что без Modstore мне их продавать не удобно. Так что все логично :-) просто въехать в тему надо.
Александр Туниеков
28 января 2021, 22:02
0
Ну вот… а я поисковый запрос не смог сформулировать и не нашел. Так бы не парился с сервисом и сделал выложил бы компонент еще полгода назад. Но по любому счас на их сервис добавить настройку надо будет. Свой сервис смысла держать вроде нет. Оплаченных полгода проработает и если клиенты на него не пойдут, то отключу его нафиг :-).