Нужна помощь в регистрации и создании страниц пользователей

Всем привет.

Нужна помощь с doclister и formlister. Я застрял и у меня не получается следующее:

1. Регистрация пользователя с доп.полями.
Сейчас я могу зарегистрировать пользователя, логин — email, пароль
Нужно к пользователю прикрепить два доп.поля — имя и адрес сайта

2. Создание страницы авторизованным пользователем.
Сейчас пользователь может создать страницу в заданной категории с полями pagetitle.
При этом, страница почему-то в древе документов создается два раза и в базу не записывается информация, кем документ создам
Нужно создавать документы с доп.полями. Я создаю TV, но в них не записываются данные

3. Нужно выводить документы, созданные пользователем
Сейчас выводятся созданные документы н только с pagetitle
Нужно вывести документ с заполненными TV из пункта 2

4. Необходимо авторизованным и неавторизованным пользователям выдавать разные чанки.
Пробовал через сниппет personalize, но он у меня как-то неправильно работает

Кто может помочь? какие сроки и какая оплата?

Я так понимаю, вопросы несложные, но я сам справиться не смог

5 комментариев

avatar
Вообще-то сложные вопросы, гемороя наловить — как два пальца.
1. «Нужно к пользователю прикрепить два доп.поля — имя и адрес сайта » — если не критично, пишите эти поля в уже имеющиеся поля пользователей в админке. Телефон там кстати есть.
Просто пишите поля при вызове контроллера и всё. И проверяйте его в &rules

"fullname":{
"required":"Вы забыли имя"
}

А в форме

<input type="text" name="fullname" value="[+fullname.value+]"> 


2. «Создание страницы авторизованным пользователем. „
А как вообще вы её создаёте? Пример нужен.

3. “Нужно выводить документы, созданные пользователем» вытекает из второго пункта.

4. «Необходимо авторизованным и неавторизованным пользователям выдавать разные чанки»
Создать сниппет LoginWidget

<?php
include_once (MODX_BASE_PATH . 'assets/snippets/DocLister/lib/DLTemplate.class.php');
include_once (MODX_BASE_PATH . 'assets/lib/APIHelpers.class.php');
$DLTemplate = DLTemplate::getInstance($modx);
$uid = $modx->getLoginUserID('web');
if (!$uid){
    $out = $DLTemplate->parseChunk($notLoginTpl,$modx,true);
} else {
    $userdata = $modx->getWebUserInfo($uid);
    $plh = array();
    foreach ($userdata as $key => $value) {
        $plh[$key] = $value;
        $plh['e.'.$key] = APIHelpers::e($value);
    }
    
	$out = $DLTemplate->parseChunk($isLoginTpl,$modx,true);
}
return $out;

И вызывать его примерно так:

[!LoginWidget?
¬LoginTpl=`notLoginChunk`
&isLoginTpl=`isLoginChunk`
!]
  • 1px
  • +1
avatar
спасибо за совет по п.4

в остальном мне уже помог Pathologic
avatar
А как же поделиться с общественностью? =)
avatar
приветствую) лучше же поздно, чем никогда?

Это создание страницы авторизованным пользователем

[!FormLister?
&protectSubmit=`1`
&submitLimit=`0`
&ignoreMailerResult=`1`
&formid=`add`
&controller=`Content`
&defaultsSources=`user:web:user_;param:contentDefaults`
&rules=`{
"name":{
	"required":"Введите ссылку на страницу с фотографиями"
}
}`
&contentDefaults=`{
"template":3,
"published":1
}`
&ownerField=`author`
&keepDefaults=`1`
&contentFields=`{
"pagetitle":"name",
"parent":"parent",
"price":"price",
"longtitle":"user_fullname",
"authoremail":"user_email",
"template":"template",
"published":"published"
}`
&onlyUsers=`1`
&clearCache=`1`
&prepare=`prepareOptions`
&formTpl=`@CODE:[+form.messages+]
<form method="post" enctype="multipart/form-data" class="form_tournament">
<p>Привет, [+user_fullname.value+]. <a href="[~[*id*]~]?logout">Выйти</a></p>
<input type="hidden" name="formid" value="add">
<label>Выберите турнир</label>
<select data-placeholder="Выберете турнир" class="chosen-select" tabindex="2"name="parent">
<option value=""></option>
	[+options+]
</select>
	
<label for="name">Ссылка</label>
<input type="text" id="name" name="name" placeholder="Ссылка" value="[+name.value+]">	
	[+name.error+]
<label for="price">Ссылка на фотографию</label>
<input type="text" id="price" name="price" placeholder="Ссылка на фотографию" value="[+price.value+]">
	[+price.error+]
<button type="submit" class="btn btn-default">Добавить</button>
</form>`
&messagesOuterTpl=`@CODE:<div class="alert alert-danger" role="alert">[+messages+]</div>`
&errorTpl=`@CODE:<span class="help-block">[+message+]</span>`
&to=`gregst@ya.ru`
&subject=`Новое объявление`
&reportTpl=`@CODE:
<p>Имя: [+user_fullname.value+]</p>
<p>Телефон: [+user_phone.value+]</p>
<p>Email: <a href="mailto:[+user_email.value+]">[+user_email.value+]</a></p>
<p>Заголовок: [+name.value+]</p>
<p>Ссылка [+content.url+]</p>`
&successTpl=`@CODE:      <div class="alert alert-success" role="alert">Вы отметились на турнире!</div>`
&skipTpl=`@CODE: Только авторизованные пользователи могут отметиться на турнирах. <a href="[~152~]">Войти</a> или <a href="[~167~]">зарегистрироваться`</a>
!]
avatar
Спасибо, пригодится кому-нибудь.
Особенно часть с &defaultsSources=`user:web:user_
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.