Lori

Lori

С нами с 13 октября 2014; Место в рейтинге пользователей: #405
Lori
27 апреля 2021, 04:36
0
За то, что я написал вопрос, что мне Конкретно требуется, а не такой подгон в виде простого перечисления ресурсов. И где тут направление омг? Об этом даже догадываться не надо, чтобы понимать, что есть такой вариант решения. Только наверное если бы я мог свой сниппет написать — уже бы сделал, а раз я вопрос тут задал, то наверное не могу, к сожалению, знания не позволяют. А ты тут предлагаешь 50+ ресурсов (и это пока) перечислить в сниппете, а потом ещё контент менеджеру каждый раз при добавлении страницы, исключать ее из этого сниппета — это же велосипед. А вот ты, обиженное дитя, взял и вопросу просто так в ответ поставил минус, хотя мне в принципе пофиг.
Lori
26 апреля 2021, 09:19
0
вот код. только сомневаюсь, что он вам подскажет как исключить дедушку в where
[[!pdoPage@news?
&elementClass=`modSnippet`
&showHidden=`0` 
&element=`getResources`								 
&parents=`0` 
&depth=`10`
&where=`{"template:=":3}`
&limit=`12` 
&pageVarKey=`page` 
&includeTVs=`1` 
&includeContent=`1` 
&tpl=`news2`
]]
Lori
26 апреля 2021, 09:13
0
омг… так я же написал, что их на текущий момент только 50 и еще будут пополняться в будущем. поэтому я наверное и спрашиваю решению «как исключить дедушку», а не «как перечислить все ресурсы»
Lori
26 апреля 2021, 09:05
0
в getresources так парент не исключается, а только через where
Lori
26 апреля 2021, 06:02
0
это исключает только этот ресурс, а мне нужно исключить всех потомков этого ресурса, которые более 50
Lori
15 апреля 2021, 10:39
0
на тостере я практически на каждый отвечаю по возможности. вот если бы там сделали кураторов, как в топовых тегах
Lori
14 апреля 2021, 22:06
+1
1. При обновлении/изменении заметки после сохранения, чтобы открывалась страница заметки, а не оставалась открытой станица редактора.
2. В поиске сделать возможность выбора раздела, где вести поиск (вопросы, новые дополнения, работа и т… д)
Lori
14 апреля 2021, 05:23
0
спасибо, нашел эту статью вчера, вот пытаюсь применить.
Lori
14 апреля 2021, 05:22
0
да, конечно, главное сделать)
Lori
13 апреля 2021, 21:54
0
я предлагал простой способ в виде дополнения Collections, но он не захотел такой удобный вид. Хочет именно dropdown лист. С другой стороны интересная задача, с которой я уже двое суток сижу)
Lori
13 апреля 2021, 21:08
0
так это итак есть) вся соль в том, что клиент жалуется, мол когда надо редактировать много новостей, то уходит много времени, чтобы открыть новость, вставить нужные id в поле tv и сохранить. Поэтому он и попросил сделать возможность редактирования tv дочерних ресурсов внутри родительского
Lori
13 апреля 2021, 20:36
0
я бы тоже, но клиент есть клиент…
Lori
13 апреля 2021, 10:05
0
возможно дело в том, что плагин работает при событии OnDocFormRender, а в вашем примере OnDocFormPrerender. Сейчас проверю
Lori
13 апреля 2021, 09:54
0
не работает к сожалению ваш пример. теперь вкладка нигде не выводится в принципе
Lori
13 апреля 2021, 09:51
0
правильно ли я сделал:
Ext.ComponentMgr.onAvailable('modx-panel-resource', function(){
//Подключаем по id
if(this.record.id == 452) {
тут остальной код tab.js
}
});
Lori
13 апреля 2021, 09:41
0
а, нет пардон, не получилось.
код плагина:
<?php

if($modx->event->name != 'OnDocFormRender') return '';

$modx->controller->addLastJavascript('/assets/components/mynamespace/js/tab.js');
Код tab.js:
Ext.override(MODx.panel.Resource, {
   getParentFields: MODx.panel.Resource.prototype.getFields,
    
   getFields: function(config){
       
       var parentFields = this.getParentFields.call(this, config);
       
       for(var i in parentFields) {
           var item = parentFields[i];
           
           if(item.id == 'modx-resource-tabs') {
               item.items.push({
                    id: 'my-custom-tab'
                    ,autoHeight: true
                    ,title: 'Редактирование новостей'
                    ,layout: 'form'
                    ,anchor: '100%'
                    ,items: [{
                        html: '<p>Тут можно привязать товары к новостям</p>'
                        ,bodyCssClass: 'panel-desc'
                        ,border: false
                    },{
                        layout: 'column',
                        width: '100%',
                        anchor: '100%',
                        cls: 'main-wrapper',
                        items: [{
                            columnWidth: .5,
                            items: [{
                                xtype: 'numberfield',
                                fieldLabel: '<span>Выберите новость</span>',
                                width: '100%',
                            }]
                        }, {
                            columnWidth: .5,
                            items: [{
                                xtype: 'textfield',
                                fieldLabel: '<span>Введите ID товаров через запятую</span>',
                                width: '100%',
                            }]
                        }]
                    }]
               });
           }
       }
       
       return parentFields;
   } 
});
где мне в tab.js проверить id ресурса?
Lori
13 апреля 2021, 09:30
0
круто, получилось! а не подскажете, можно ли в этом поле выводить значение tv дочернего ресурса, чтобы я мог его тут редактировать? такое возможно?
Lori
13 апреля 2021, 08:46
0
тут просто TV не подойдет. Просто сама суть задачи: вывести два поля: выпадающий список и просто текстовое поле. В выпадающем списке дочерние ресурсы и при их выборе в текстовом выводится значение одной TV-шки выбранного ресурса. Мне бы просто узнать условие какое писать в плагине? Проверять если id ресурса равно условно 3, то добавить ему кастомное поле, верно?
Lori
06 февраля 2021, 14:14
0
Да, конечно.
Ранее я пробовал добавлять по вашей подсказке и в кастомный js, и по разному пытался отловить колбэк, но результата не было. А после теста в консоли решил вместо document.ready попробовать document.addEventListener(«click», function(){ и получилось отловить колбэк. Далее добавил такой скрит в шаблон и теперь все работает:
$('.add-to-cart').bind('click', function() {
    var good = $(this).data("product");
    miniShop2.Callbacks.Cart.add.response.success = function() {
       $('#shopModal').modal('show');
       $(".product-name").html(good);
}
});
add-to-cart — класс кнопки для добавления товара в корзину, а в data-product хранится название товара.
Lori
06 февраля 2021, 08:52
0
Заработало. Добавил document.addEventListener