tools

tools

С нами с 21 января 2017; Место в рейтинге пользователей: #453
tools
28 августа 2017, 08:29
0
Можно, конечно, вывести новые поля таким образом:
case 'OnDocFormRender':
        $modx->controller->addLastJavascript('/assets/js/ms2g.js');
	break;
Содержимое файла:
Ext.extend(ms2Gallery.window.Image, MODx.Window, {

    getFields: function (config) {
        var src = config.record['type'] == 'image'
            ? config.record['url']
            : config.record['thumbnail'];
        var img = MODx.config['connectors_url'] + 'system/phpthumb.php?src='
            + src
            + '&w=333&h=198&f=jpg&q=90&zc=0&far=1&HTTP_MODAUTH='
            + MODx.siteId + '&wctx=mgr&source='
            + config.record['source'];

        var fields = {
            ms2gallery_source: config.record['source_name'],
            ms2gallery_size: config.record['size'],
            ms2gallery_createdon: config.record['createdon'],
            ms2gallery_exif_date: config.record['exif_date'],
            //ms2gallery_rank: config.record['rank'],
        };
        var details = '';
        for (var i in fields) {
            if (!fields.hasOwnProperty(i)) {
                continue;
            }
            if (fields[i]) {
                details += '<tr><th>' + _(i) + ':</th><td>' + fields[i] + '</td></tr>';
            }
        }

        return [
            {xtype: 'hidden', name: 'id', id: this.ident + '-id'},
            {
                layout: 'column',
                border: false,
                anchor: '100%',
                items: [{
                    columnWidth: .5,
                    layout: 'form',
                    defaults: {msgTarget: 'under'},
                    border: false,
                    items: [{
                        xtype: 'displayfield',
                        hideLabel: true,
                        html: '\
                        <a href="' + config.record['url'] + '" target="_blank" class="ms2gallery-window-link">\
                            <img src="' + img + '" class="ms2gallery-window-thumb" />\
                        </a>\
                        <table class="ms2gallery-window-details">' + details + '</table>'
                    }]
                }, {
                    columnWidth: .5,
                    layout: 'form',
                    defaults: {msgTarget: 'under'},
                    border: false,
                    items: [{
                        layout: 'column',
                        border: false,
                        anchor: '100%',
                        items: [{
                            columnWidth: .75,
                            layout: 'form',
                            items: [{
                                xtype: 'textfield',
                                fieldLabel: _('ms2gallery_file_name'),
                                name: 'file',
                                id: this.ident + '-file',
                                anchor: '100%'
                            }]
                        }, {
                            columnWidth: .25,
                            layout: 'form',
                            items: [{
                                xtype: 'xcheckbox',
                                fieldLabel: _('ms2gallery_file_active'),
                                name: 'active',
                                id: this.ident + '-active',
                                anchor: '100%',
                                ctCls: 'ms2gallery-cba'
                            }]
                        }]
                    }, {
                        xtype: 'textfield',
                        fieldLabel: _('ms2gallery_file_title'),
                        name: 'name',
                        id: this.ident + '-name',
                        anchor: '100%'
                    }, {
                        xtype: 'textfield',
                        fieldLabel: _('ms2gallery_file_alt'),
                        name: 'alt',
                        id: this.ident + '-alt',
                        anchor: '100%'
					}, {
                        xtype: 'numberfield',
                        decimalPrecision: 0,
                        fieldLabel: _('ms2gallery_top'),
                        name: 'top',
                        id: this.ident + '-top',
                        anchor: '100%',
                        value: 100
                    }, {
                        xtype: 'numberfield',
                        decimalPrecision: 0,
                        fieldLabel: _('ms2gallery_left'),
                        name: 'left',
                        id: this.ident + '-left',
                        anchor: '100%'
                    }, {
                        xtype: 'ms2gallery-combo-tags',
                        fieldLabel: _('ms2gallery_file_tags'),
                        name: 'tags',
                        id: this.ident + '-tags',
                        anchor: '100%',
                        value: config.record['tags']
                    }]
                }]
            }, {
                layout: 'column',
                border: false,
                anchor: '100%',
                items: [{
                    columnWidth: .5,
                    layout: 'form',
                    defaults: {msgTarget: 'under'},
                    border: false,
                    items: [{
                        xtype: 'textarea',
                        fieldLabel: _('ms2gallery_file_add'),
                        name: 'add',
                        id: this.ident + '-add',
                        anchor: '100%',
                        height: 50
                    }]
                }, {
                    columnWidth: .5,
                    layout: 'form',
                    defaults: {msgTarget: 'under'},
                    border: false,
                    items: [{
                        xtype: 'textarea',
                        fieldLabel: _('ms2gallery_file_description'),
                        name: 'description',
                        id: this.ident + '-description',
                        anchor: '100%',
                        height: 50
                    }]
                }]
            }
        ];
    },

    getKeys: function () {
        return [{
            key: Ext.EventObject.ENTER,
            shift: true,
            fn: this.submit,
            scope: this
        }];
    }
});
Но мне кажется это не совсем правильно, не выводится содержимое этих полей из БД (но если ввести значения и сохранить, запись в БД идёт).

Думаю, нужно сделать добавление полей, как в статье Дополнительные поля профиля юзера (не extended), но не могу найти событие в документации extJS, по которому вызывается попап окно.

Кто знает подсказки?)
tools
05 июля 2017, 18:25
0
Здравствуйте, Эмиль. Кнопка для связи в профиле. Интересно посмотреть в ТЗ. Спасибо!
tools
20 июня 2017, 22:14
0
В профиле кнопка для связи по почте, пишите, обсудим.
tools
25 апреля 2017, 09:52
0
В профиле есть кнопка отправки email, пишите, помогу
tools
24 апреля 2017, 21:20
0
Иван, поделись, пожалуйста, правильным конфигом для php7 :)
tools
13 апреля 2017, 18:47
0
Добрый день, если ещё не определились, контакты в профиле (кнопка для отправки email), пишите, обсудим.
tools
11 апреля 2017, 16:21
0
Присоединить вроде присоединил, а как вывести в окошко, не сообразил ещё)
switch ($modx->event->name){
	case "OnMODXInit":
        $map = array(
            'ms2Gallery' => array(
                'fields' => array(
                    'newfield' => 1,
                ),
                'fieldMeta' => array(
                    'newfield' => array(
                        'dbtype' => 'decimal',
                        'precision' => '12,2',
                        'phptype' => 'float',
                        'null' => true,
                        'default' => 0.0,
                    ),
                ),
            ),
        );
        
        $ms2Gallery = $modx->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/');
        
        foreach ($map as $class => $data) {
            $modx->loadClass($class);
            foreach ($data as $tmp => $fields) {
                if ($tmp == 'fields') {
                    foreach ($fields as $field => $value) {
                        foreach (array('fields', 'fieldMeta', 'indexes') as $key) {
                            if (isset($data[$key][$field])) {
                                $modx->map[$class][$key][$field] = $data[$key][$field];
                            }
                        }
                    }
                }
            }
        }
        break;
}
tools
03 апреля 2017, 07:53
0
Василий, уже достал тебя, знаю, но не выходит у меня) Нашел файл с изменениями (pdopage.js) по умолчанию подключается к вызову pdopage.min.js, указал
&frontend_js=`[[+assetsUrl]]js/pdopage.js`
Вот ссылка на первую страницу при первой загрузке страницы:

Так выглядит ссылка на первую стр. при переходе на вторую (и последующие) страницы:

Вызов такой:
<div id="pdopage">
    <div class="rows">
        [[!pdoPage?
        	&element=`pdoResources`
        	&parents=`0`
        	&useWeblinkUrl=`1`
        	&ajaxMode=`default`
        	&ajaxHistory=``
        	&frontend_js=`[[+assetsUrl]]js/pdopage.js`
        	&tpl=`@INLINE <p>[[+idx]]. <a href="[[+link]]">[[+pagetitle]]</a></p>`
        	&tplPageWrapper=`@INLINE <ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul>`
        ]]
    </div>
    [[!+page.nav]]
</div>
Что нужно сделать, чтобы page=1 не было?

p.s. При отключенном ajaxMode всё хорошо. На сайте используется подгрузка по кнопке, пагинация скрыта от посетителей, но поисковые роботы всё равно видят в коде ссылку на первую страницу с параметром page=1
tools
30 марта 2017, 20:08
0
в общем, надо смотреть. В самой базе запрос проверял?
tools
30 марта 2017, 19:49
0
я имел в виду, чтобы прямо ID сюда перечислил, чтобы с базой сравнить
tools
30 марта 2017, 18:30
0
какие ids в запросе перечислены?
tools
30 марта 2017, 10:42
0
дело в том, что обновил, проверяю, ссылка на первую страницу с page=1 также есть, если отключаю ajaxMode, всё хорошо. Завел на modhost сегодня сайтик, чтобы проверить, мало ли, может что-то у меня, и вот:


Вызов сниппета такой:
<div id="pdopage">
    <div class="rows">
        [[!pdoPage?
        	&element=`pdoResources`
        	&parents=`0`
        	&ajaxMode=`default`
        	&tpl=`@INLINE <p>[[+idx]]. <a href="[[+link]]">[[+pagetitle]]</a></p>`
        ]]
    </div>
    [[!+page.nav]]
</div>

Версия pdoTools 2.8.3-pl
Что я делаю не так?
tools
29 марта 2017, 17:36
0
Василий, скажи пожалуйста, если сегодня оплачу, когда будет время сделать:
Нужно убрать ссылку с параметром (site.ru/link?page=1) на первую страницу, чтобы было так: (site.ru/link), на остальные – как обычно. Цель, чтобы не было редиректов 302/301.
tools
26 марта 2017, 21:25
0
Мурад, в профиле почта, можно тоже ссылку на сайт, спасибо!
tools
26 марта 2017, 21:24
0
Сложно сказать) Может там функционал какой-то хитрый будет. В профиле есть кнопка для отправки почты – напишите, пожалуйста, туда, обсудим стоимость и сроки.
tools
24 марта 2017, 16:34
0
Привет, в профиле кнопка для отправки почты – пиши, обсудим!
tools
23 марта 2017, 18:31
0
в профиле почта – пишите