SEQUEL.ONE

SEQUEL.ONE

С нами с 16 июня 2015; Место в рейтинге пользователей: #85
SEQUEL.ONE
26 сентября 2018, 11:53
0
Дома попробую и отпишусь сюда. Спасибо. Как же не хватает мануала по этой заготовке)
SEQUEL.ONE
26 сентября 2018, 10:45
0
Просто у меня в этой таблице тоже заголовок name
SEQUEL.ONE
26 сентября 2018, 10:44
0
Тут вопрос скорее как в extjs в файле categories.grid.php это провернуть. Что делать с
dataIndex: 'repository_id'
SEQUEL.ONE
26 сентября 2018, 08:57
0
Каким образом в таблицу выводить название категории вместо его ID? Не понимаю. :|
SEQUEL.ONE
25 сентября 2018, 22:35
0
Редактирование отключили, не могу изменить. Там по идее вставить нужно то, что в секции name

hiddenName: 'manager',
SEQUEL.ONE
25 сентября 2018, 21:48
0
hiddenName: 'name',
вообщем укажи поле из таблицы своей только, тогда должно показываться выбранное значение
SEQUEL.ONE
25 сентября 2018, 21:14
+1
Огромное спасибо, хоть понял как это делать, а потом увидел, что в папке assets/components/extras/js/mgr/misc/combo.js есть пример)))

Получилось сделать так, добавил в combo.js

Extras.combo.Repository = function (config) {
    config = config || {};

    Ext.applyIf(config, {
        name: 'repository_id',
        fieldLabel: _('repositories_' + config.name || 'repository'),
        hiddenName: 'repository_id',
        displayField: 'name',
        valueField: 'id',
        anchor: '99%',
        fields: ['name', 'id'],
        pageSize: 20,
        url: Extras.config['connector_url'],
        typeAhead: true,
        editable: true,
        allowBlank: true,
        emptyText: _('no'),
        minChars: 1,
        baseParams: {
            action: 'mgr/repository/getlist',
            combo: true,
            id: config.value,
        }
    });
    Extras.combo.Repository.superclass.constructor.call(this, config);
    this.on('expand', function () {
        if (!!this.pageTb) {
            this.pageTb.show();
        }
    });
};
Ext.extend(Extras.combo.Repository, MODx.combo.ComboBox);
а xtype в categories.window.js вышел такой:

{
            xtype: 'extras-combo-repository',
            fieldLabel: _('extras_category_repository'),
            anchor: '99%',
            allowBlank: true,
        },
Да, процессоры вообще не трогал, ну кроме изменения классов и лексиконов под себя, всё из дефольтной версии modExtras выводится. Теперь встала задача вывести в grid вместо id название)))
SEQUEL.ONE
25 сентября 2018, 16:17
0
Можно, но нужно понимать что плейсхолдеры это названия полей в таблице. Соответственно вывести можно у текущего ресурса только те поля, что в таблице modx_site_content к примеру:

[[*pagetitle]]
А если TV-параметр, то через
[[*tv.tv1]]
А приведенный пример выше работает, если включить Fenom в системных настройках pdoTools.

А вообще поле контента, для контента, лучше остальное вставлять в шаблон.
SEQUEL.ONE
22 сентября 2018, 21:14
0
Написано же

\r\n
Обычно так в базу сохраняется текст с отступами через Enter. Обычно этот отступ скрыт и не маркируется никакими html-тэгами.
SEQUEL.ONE
22 сентября 2018, 20:36
0
Всё оказалось куда проще, надо было сделать так:

{if $_modx->getPlaceholder('my_tpls') == 1}
					<div id="mse2_tpl" class="span4 pr-0">
						<a href="#" data-tpl="0" class="[[+tpl0]] form-btn form-btn-x1"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
		 viewBox="0 0 290 290" style="enable-background:new 0 0 290 290;" xml:space="preserve">
	<g>
		<rect y="220" width="70" height="70"/>
		<rect y="110" width="70" height="70"/>
		<rect width="70" height="70"/>
		<rect x="110" y="220" width="70" height="70"/>
		<rect x="110" y="110" width="70" height="70"/>
		<rect x="110" width="70" height="70"/>
		<rect x="220" y="220" width="70" height="70"/>
		<rect x="220" y="110" width="70" height="70"/>
		<rect x="220" width="70" height="70"/>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	</svg></a> 
						<a href="#" data-tpl="1" class="[[+tpl1]] form-btn form-btn-x2"><?xml version="1.0" encoding="iso-8859-1"?>
	<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
	<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
	<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
		 width="344.339px" height="344.339px" viewBox="0 0 344.339 344.339" style="enable-background:new 0 0 344.339 344.339;"
		 xml:space="preserve">
	<g>
		<g>
			<g>
				<rect y="46.06" width="344.339" height="29.52"/>
			</g>
			<g>
				<rect y="156.506" width="344.339" height="29.52"/>
			</g>
			<g>
				<rect y="268.748" width="344.339" height="29.531"/>
			</g>
		</g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	<g>
	</g>
	</svg>
	</a>
					</div>
				{/if}
SEQUEL.ONE
22 сентября 2018, 18:02
0
А что делать с параметром tpls? Как выводить его? Сейчас вот как выглядит вызов mFilter:

{'!mFilter2' | snippet : [
    'parents' => $_modx->resource.id,
    'limit' => 21,
    'class' => 'msProduct',
    'element' => 'msProducts',
    'tpls' => '@FILE components/msearch2/mfilter/item.tpl, @FILE components/msearch2/mfilter/item-ext.tpl',
    'tplPageWrapper' => '@INLINE <ul class="pages-list d-flex justify-content-center">[[+pages]]</ul>',
    'tplPage' => '@INLINE <li><a href="[[+href]]">[[+pageNo]]</a></li>',
    'tplPageActive' => '@INLINE <li class="current"><a href="[[+href]]">[[+pageNo]]</a></li>',
    'suggestions' => 'true',
	'toPlaceholders' => 'my_',
	'toSeparatePlaceholders' => 'my_',
    'filters' => '
		ms|price:number,
		msoption|gender:select,
		msoption|clothes_type:select,
		ms|season:select,
		ms|composition:select,
		ms|textile:select,
		ms|collection:select,
		msoption|color:select,
		msoption|size:radio,
        ms|hypoallergenic:boolean,
		ms|design:boolean,
		ms|sleeve:boolean,
		ms|lightning:boolean,
		ms|chevron:boolean,
		ms|formaldehydes:boolean,
		ms|cotton:boolean
    ',
    'sort' => '
        ms|product_num:asc
    ',
	'tplFilter.outer.default' => '@FILE components/msearch2/mfilter/options/outer.tpl',
	'tplFilter.outer.ms|price' => '@FILE components/msearch2/mfilter/options/slider.tpl',
	'tplFilter.outer.msoption|gender' => '@FILE components/msearch2/mfilter/options/select.tpl',
	'tplFilter.row.msoption|gender' => '@FILE components/msearch2/mfilter/options/option.tpl',
	'tplFilter.outer.ms|season' => '@FILE components/msearch2/mfilter/options/select.tpl',
	'tplFilter.row.ms|season' => '@FILE components/msearch2/mfilter/options/option.tpl',
    'tplFilter.row.ms|price' => 'tpl.mFilter2.filter.number',
    'suggestionsRadio' => 'ms|hypoallergenic,ms|design,ms|sleeve,ms|lightning,ms|chevron,ms|formaldehydes,ms|cotton'
]}
А сами чанки из параметра tpls выводятся ниже вот таким образом:

[[+tpls:notempty=`
    			<div id="mse2_tpl" class="span4 pr-0">
    				<a href="#" data-tpl="0" class="[[+tpl0]] form-btn form-btn-x1"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 290 290" style="enable-background:new 0 0 290 290;" xml:space="preserve">
<g>
	<rect y="220" width="70" height="70"/>
	<rect y="110" width="70" height="70"/>
	<rect width="70" height="70"/>
	<rect x="110" y="220" width="70" height="70"/>
	<rect x="110" y="110" width="70" height="70"/>
	<rect x="110" width="70" height="70"/>
	<rect x="220" y="220" width="70" height="70"/>
	<rect x="220" y="110" width="70" height="70"/>
	<rect x="220" width="70" height="70"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg></a> 
    				<a href="#" data-tpl="1" class="[[+tpl1]] form-btn form-btn-x2"><?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="344.339px" height="344.339px" viewBox="0 0 344.339 344.339" style="enable-background:new 0 0 344.339 344.339;"
	 xml:space="preserve">
<g>
	<g>
		<g>
			<rect y="46.06" width="344.339" height="29.52"/>
		</g>
		<g>
			<rect y="156.506" width="344.339" height="29.52"/>
		</g>
		<g>
			<rect y="268.748" width="344.339" height="29.531"/>
		</g>
	</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a>
    			</div>
    			`]]
Кнопки с изменениями вывода товаров в блоках отсутствуют. Как это поправить?
SEQUEL.ONE
22 сентября 2018, 16:19
+1
Не знал что можно форму задать общему блоку. Работает как надо. Этот параметр ещё не приходиломь юзать, по этому было немного не понятно как оно всё функционирует, а посидев минут 10 уже разобрался. Спасибо.
SEQUEL.ONE
16 сентября 2018, 19:04
+1
Я отфильтровал это дело через htmlspecialchar(). А какого рода проверки делать? Что проверять?
SEQUEL.ONE
12 сентября 2018, 12:37
0
Неудачный коммент, сейчас посмотрел как настроенно у меня. Вот скажем нужно в подвале копирайт перевести на несколько языков статично. Вот так мы будем переводить статично:

[[++cultureKey:is=`ru`:then=`<p>Все права защищены.</p>`]]
								    [[++cultureKey:is=`en`:then=`<p>All rights reserved.</p>`]]
								    [[++cultureKey:is=`de`:then=`
    								    [[pdoMenu?
    								        &parents=`113`
    								        &outerClass=`about`
    								        &firstClass=``
    								    ]]
								    `]]
Как мы видим в немецкой версии сайта выводим только ссылки из родителя, т.к. в Германии все сайты должны иметь набор из 3ёх страниц Impressum, AGB и Datenschutzt. А вот ещё пример вывода pdoPage с Babel:

{'!pdoMenu' | snippet : [
                                    'parents' => '4,85,86', 
                                    'level' => 1,
                                    'displayStart' => 1,
                                    'firstClass' => '',
                                    'tplStart' => '@INLINE <li class="first"><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a></li>[[+wrapper]]',
                                    'context' => $_modx->context.key
                                ]}
В parents указываем родителей желаемых для вывода разделов из разных контекстов.

P.S. Я вот про такие примеры писал)
SEQUEL.ONE
12 сентября 2018, 11:58
+1
Спасибо за труд. Для новичков самое то. Не хватает только примеров как в шаблонах например переводить pagetitle и другие плейсхолдеры, там же можно в том числе через модификаторы. Вот на Fenom бы примеры написать, было бы супер.
SEQUEL.ONE
08 сентября 2018, 21:17
0
На немецкий бы еще) У меня как раз цель популизировать MODX в Германии)
SEQUEL.ONE
30 августа 2018, 22:10
0
А что мешает задать ссылку для рассылки c диапозоном значений modx.pro/users/{1-1000000}? Ссылки же на пользователей здесь сделаны цифрами у многих modx.pro/users/100
SEQUEL.ONE
30 августа 2018, 21:58
0
Так спам рассылка это и не взлом, а имитация пользовательских поведений. Программно распознаётся до 85% всевозможных капч с первого раза. У меня куплен Xrumer и есть доступ в закрытый форум, где столько информации по рассылкам и спаму. Есть целые курсы по имитации поведенческих факторов и текста составляют с максимально динамической структурой (подбор синонимов на лету каждого слова). Есть даже возможность составления от 1 до 100 рандомных профилей и регистрация e-mail'ов.
SEQUEL.ONE
30 августа 2018, 20:37
0
На Xrumer или похожих спамелок есть что-то типа конструктора, можно под любой сайт настроить рассылку. Скорее всего тут бот нашёл форму после регистрации и в нее отправлял спам.