Andrey

Andrey

С нами с 08 августа 2016; Место в рейтинге пользователей: #215
Andrey
21 сентября 2016, 11:48
0
:( собственно в этом и вся загвоздка!
Andrey
21 сентября 2016, 10:57
0
Ну имеется ввиду как при этом должна выглядеть форма добавления на фронте? Т.е. как должна выглядеть обертка для такого вызова? нашел, что то вроде вот:
[[migxJsonToPlaceholders? &prefix=`tv.` &value=`[[+tv_json]]`]]
 
<input id="tv[[+tv.id]]" name="tv[[+tv.id]]"
    type="text" class="textfield"
    value="[[+tv.value]]"
    tvtype="[[+tv.type]]"
/>
 
<script type="text/javascript">
// <![CDATA[
 
Ext.onReady(function() {
    var fld = MODx.load({
        xtype: 'textfield'
        ,applyTo: 'tv[[+tv.id]]'
        ,width: '30%'
        ,enableKeyEvents: true
        ,msgTarget: 'under'
        //,allowBlank: {if $params.allowBlank == 1 || $params.allowBlank == 'true'}true{else}false{/if}
        //{if $params.maxLength},maxLength: {$params.maxLength}{/if}
        //{if $params.minLength},minLength: {$params.minLength}{/if}
     
        ,listeners: { 'keydown': { fn:MODx.fireResourceFormChange, scope:this}}
    });
    Ext.getCmp('modx-panel-resource').getForm().add(fld);
    MODx.makeDroppable(fld);
});
 
// ]]>
</script>
И вот:
[[migxJsonToPlaceholders? &prefix=`tv.` &value=`[[+tv_json]]`]]
 
<div style="float:left;">
<label for="tv[[+tv.id]]" class="x-form-item-label modx-tv-label" style="width: auto;margin-bottom: 10px;">
<div class="modx-tv-label-title"> 
<span class="modx-tv-caption" id="tv[[+tv.id]]-caption">[[+tv.caption]]</span>
</div>    
</label>
<div class="x-form-clear-left"></div>
[[+tv_formElement]]
</div>
При использовании штатного migx сниппета migxJsonToPlaceholders. Но как я понял, эта фигня сделана для добавления через бэкенд или я чего то недопонял!
Andrey
20 сентября 2016, 20:42
0
Приветствую! А можно небольшой вопросик, как должен выглядеть чанк обертка для данного вывода? И можно ли использовать этот метод с TicketForm? Заранее благодарю за помощь!
Andrey
20 сентября 2016, 20:42
0
Приветствую! А можно небольшой вопросик, как должен выглядеть чанк обертка для данного вывода? И можно ли использовать этот метод с TicketForm? Заранее благодарю за помощь!
Andrey
18 сентября 2016, 20:03
1
+1
Тут все достаточно просто!

Страница формируется при помощи плагина!
Т.е. создаете например страницу с Алиасом users и у вас в итоге получится, что то вроде этого:
http://mysite.ru/users
Затем пишем плагин, который был предложен джентльменом выше и обязательно ставим галочку на системное событие OnPageNotFound.

Теперь надо поставить заполнитель для страницы с алиасом users, выглядеть он к примеру будет так:
<h3>[[!+user.fullname]]</h3>
<big>Информация</big>
<table class="table">
	<tbody>
		<tr>
			<td>Веб-сайт</td>
			<td><a href="[[!+user.website]]" target="_blank">[[!+user.website]]</a></td>
		</tr>
		<tr>
			<td>Город</td>
			<td>[[!+user.city]]</td>
		</tr>
	</tbody>
</table>
Обратите внимание, что все плейсхолдеры прописываются с "!" это делается для того, что бы записи, которые будут выводиться на странице были именно того пользователя, которого вы искали, а не текущего! Так же имейте ввиду, что префикс user. можно поменять в коде палагина, но можно оставить и этот, но его обязательно необходимо указывать при выводе плейсхолдеров, иначе не чего появится при запросе! Ух ты, все готово! Теперь переходим к не посредственному тесту! А для этого, найдем пользователя с username например testuser и тут нам нужно пройти по адресу:
http://mysite.ru/users/testuser
и мы увидим нашего запрошенного юзера!

Учтите, что я испытывал плагин и метод со следующими параметрами:
1. Дружественные юри включены
2. Вложеные юри включены
3. Каталог с алиасом users — был в корне сайта!

Вот вроде и все, что необходимо сделать, для отображения пользователя! Если хотите, чтобы по адресу показывался список пользователей, то:
[[!+user.id:is=``:then=`[[$чанк или код списка пользователей, я вызывал при помощи pdoUsers]]:else=`[[$чанк или код заполнителей для отображения пользователя, например то, что я описал выше`]]
т.е. что здесь происходит — если вы обращаетесь к странице, на которой нет запроса user.id:
http://mysite.ru/users/
то выводится список пользователей, если запросили пользователя:
http://mysite.ru/users/testuser
то тогда выводить страницу с данными пользователя!

Чанк отображения пользователя в списке через pdoUsers, у меня выглядит так:
<tr>
	<td>[[!+id]]</td>
	<td>
		<img src="[[!+photo:default=`assets/avatars/default.jpg`]]" style="width:20%" class="img-circle">
	</td>
	<td><a href="[[~724]]/[[!+id]]">[[!+fullname:default=`Новый пользователь (Поменяйте отображаемое имя в настройках)`]]</a></td>
	<td>[[!+createdon]]</td>
	<td>[[!+tickets]]</td>
	<td>[[!+comments]]</td>
	<td>[[!+rating]]</td>
	[[!+extended.user_status:is=``:then=`<td data-value="Пользователь">
	   <span class="status-metro status-active" title="Команда проектов">Пользователь</span>
	</td>`:else=`
	<td data-value="[[!+extended.user_status]]">
	   <span class="status-metro status-suspended" title="[[!+extended.user_status]]">[[!+extended.user_status]]</span>
	</td>`]]
</tr>
Andrey
15 сентября 2016, 12:48
0
Спасибо огроменное! Давно уже хотел реализовать эту фигню, без всяких костылей!
Andrey
15 сентября 2016, 12:23
0
Разобрался с первым вопросом! Но все же хотелось бы решить последний, а именно второй! Вам уже огромное спасибо и плюсик разумеется! Все как часы работает! На большее я уже не рассчитываю! Последний вопрос постараюсь решить самостоятельно!
Andrey
15 сентября 2016, 11:54
0
Такс! Спасибо! Вроде теперь работают ссылки как надо, пробовал перейти на существующих пользователей, все здорово!

Но остались вопросы! Например:

1. Как должен выглядеть шаблон? Чтобы выводились данные именно того пользователя, которого мы запрашиваем! Потому как при запросе нужного пользователя выходят данные текущего авторизированного!
Пример шаблона взял из примера выше:
<h3>[[!+fullname]]</h3>
<big>Информация</big>
<table class="table">
	<tbody>
		<tr>
			<td>Веб-сайт</td>
			<td><a href="[[!+website]]" target="_blank">[[!+website]]</a></td>
		</tr>
		<tr>
			<td>Город</td>
			<td>[[!+city]]</td>
		</tr>
	</tbody>
</table>
Т.е. все плейсхолды вызваны не кешируемыми!
Но при переходе на страницу запрашиваемого пользователя выводятся не то, что ннадо! В Вашем плагине нашел следующие:
$modx->setPlaceholders($user, 'user.');
$modx->setPlaceholders($profile, 'user.');
 $modx->setPlaceholders($extended, 'user.');
Пока не совсем разобрался, как с этим жить! Если можно поясните, потому как понимаю, что именно их нужно использовать для отображения информации о запрошенном пользователе!

2. И второй вопрос, здесь на modx.pro сделано таким образом, что страница modx.pro/users — используется для отображения все пользователей, а дальнейшие запросы уже ясное дело используются как modx.pro/users/username вопрос то не трудный, следственно как сделать, что то похожее?

3. Так же на modx.pro организовано в ЛК таким образом, что в профиле можно выбрать как именно отображать ссылку на имя пользователя и стоит выбор между username и ID (так вот хотелось бы все же сделать так, чтобы был выбор при переключении)
Andrey
14 сентября 2016, 08:11
0
Уиииии! Работает!
Ну Василий, дело ведь не в том, что я например не пытался, перерыл весь сайт! Но за то что балбес каюсь :(
Andrey
14 сентября 2016, 07:50
0
короче сегодня буду чистый MODX ставить и на нем эксперименты проводить! Есть еще подозрение!
Andrey
14 сентября 2016, 07:47
0
та вот не могу! С аякс-пагинацией реально быстрее работает! Ну не может быть такого, что бы здесь работало, а у нас нет! Я почему то просто уверен, что вызов хитрый должен быть! Или надо в чанк ченить добавить!
Andrey
14 сентября 2016, 07:46
0
не помогает, да плюс и не к чему это, т.к.
&element=`getTickets`
вот этот параметр как раз и организует выборку только ресурсов с классом
Tickets
Andrey
13 сентября 2016, 21:41
0
Совершенно согласен! Но не с компонентом getTickets! Тут ведь задача стоит так, чтобы при аякс-пагинации работала Мета-информация (добавить в избранное, секции тикетов, рейтинг)! Сама то пагинация на ура работает! А вот с компонентом работать отказывается, но без этого:
&element=`getTickets`
не работает Мета-инфомарция!
Я бы не спрашивал про эту тему, если бы не видел, что она прекрасно работает на modx.pro! Вопрос тов чем, может все же вызов какой нибудь хитрый? Потому как он не работает даже со стандартными чанками! Вызов соответсвенно такой:
<div class="col-md-8" id="pdopage">
    <div class="rows">
        [[!pdoPage:default=`<div class="alert alert-info alert-dismissable" style="font-size:15px;margin-top:10px;">
				<a class="panel-close close" data-dismiss="alert">×</a> 
				<i class="fa fa-info"></i>
				<strong>ВНИМАНИЕ!</strong> Статей еще нет!
			   </div>`?
	&element=`getTickets`
        &limit=`5`
        &ajaxMode=`default`
	&showLog=`1`
	&user=`[[!+modx.user.id]]`
        &includeContent=`1`
        &includeTVs=`myTV`
        &prepareTVs=`1`
        &processTVs=`1`
        &tvPrefix=`tv.`
        &parents=`0`
        &tpl=`my-Tpl`
        ]]
    </div>
    <div style="margin:10px 0;">[[!+page.nav]]</div>
   </div>
Andrey
13 сентября 2016, 19:50
0
обновил MODX, интересного не чего не произошло! :(
Andrey
13 сентября 2016, 19:27
0
Единственное, что MODX не обновлен до самой последней версии! Т.к. там были проблемы с TinyMCE из которой не грузились ресурсы! Может из-за этого, но я подумал, что это мало вероятно!
Andrey
13 сентября 2016, 19:18
0
Да вот в том то и дело, что последняя версия pdoTools и Tickets стоит! Это ж первое на что внимание обратил внимание! Я просто думал, может какой нибудь хитрый вызов должен быть! Но если нет, значит я что то сломал :(
Andrey
10 сентября 2016, 18:52
0
ну неужели не кто не знает!
Andrey
07 сентября 2016, 19:08
0
мде… помогло! Я не так прочитал ваше сообщение! Чет не подумал про этот параметр, спасибо огромное!