UMIhelp

Разработка сайта на UMI.CMS => Шаблоны TPL => Тема начата: thefate от 24 Марта 2011, 10:14:29

Название: Аватара пользователя
Отправлено: thefate от 24 Марта 2011, 10:14:29
Помогите еще пожалуйста с таким вопросом.

Аватара пользователя.

С самого начала.
1. При регистрации как сделать чтобы пользователь смог добавить аватару.
2. Как ее можно вывести в профиле
3. Как вывести аватару пользователя на странице сайта.
Название: Re:Аватара пользователя
Отправлено: admin от 24 Марта 2011, 11:06:12
сейчас расскажу по памяти, работаю с полем avatar, надо чтобы это поле находилось в отдельной группе (не помню поле avatar уже в отдельной группе полей или нет, но пусть группа у нас называется avatar_group)

1. для того чтобы пользователь мог добавить свою аватарку добавляем в шаблон регистрации /tpls/users/register/default.tpl , в блок registrate_block, макрос
%data getCreateForm(%type_id%, 'userpic', avatar_group)%

код шаблона userpic.tpl замениет на ниже приведенный (он лежит в /tpls/data/reflection, заменяем потому что в оригинальном файле userpic в блоках "reflection_field_relation_option" и "reflection_field_relation_option_a" вызывается поле picture, а нам нужно avatar)
<?php

$FORMS = Array();

$FORMS['reflection_block'] = <<<END

<tr>
<td>
Аватар
</td>

<td>
%groups%
</td>
</tr>


<tr>
<td>
Загрузить свой аватар
</td>

<td>
<input type="file" name="avatar[user_avatar_file]" />
</td>
</tr>

END;

$FORMS['reflection_group'] = <<<END

%fields%

END;


$FORMS['reflection_field_relation'] = <<<END

          %options%

END;


/*аватары здесь*/
$FORMS['reflection_field_relation_option'] = <<<END

<div class="radio">
<label for="item11">
%data getPropertyOfObject(%id%, 'avatar', 'avatar')%
</label>
<input type="radio" id="item11" name="%input_name%" value="%id%" />
</div>

END;

$FORMS['reflection_field_relation_option_a'] = <<<END

<div class="radio">
<label for="item11">
%data getPropertyOfObject(%id%, 'avatar', 'avatar')%
</label>
<input type="radio" id="item11" name="%input_name%" value="%id%" checked="checked" />
</div>

END;

?>

так же привожу кош шаблона для avatar.tpl в папке  /tpls/data
<?php

$FORMS = Array();

$FORMS['img_file'] = <<<END
<!-- <img src="%src%" width="%width%" height="%height%" alt="" border="0" />-->
%system makeThumbnail(%filepath%, 200, auto, 'avatar')%
END;


?>

и содержимое шаблона avatar.tpl в папке /tpls/thumbs, по которому выводится превью авы нужного размера
<?php

$FORMS = Array();

$FORMS['image'] = <<<END

<img src="%src%" width="%width%" height="%height%" style="border: #000 1px solid;" />

END;

?>

2. для вывода в профиле (я так понимаю вы используете шаблон /tpls/users/register/default.tpl , блок settings_block) вставте макрос
%data getEditForm(%user_id%, 'userpic', 'avatar_group')%

3. ну, для того, чтобы вывести аватар пользователя, воспользуйтесь макросом
%data getPropertyOfObject(%current_user_id%, avatar ,avatar)%

если что-то  пойдет не так пишите, я мог с чем-нибудь и ошибиться по памяти ведь)
Название: Re:Аватара пользователя
Отправлено: alex от 07 Мая 2011, 16:52:26
У МЕНЯ БЕДА!
аватарки нигде нет! :o
Вобщем шаблон по стандарту стоит от нового интернет магазина. И он не такой, как у Вас выше по теме.
КАК ТАМ СДЕЛАТЬ ТОЖЕ САМОЕ? (возможночть изменить аву, и выбрать ее при регистрации. а так же как делать выбор авы обязательным или нет? )
Название: Re:Аватара пользователя
Отправлено: admin от 07 Мая 2011, 17:40:47
ну начнем с того что если у вас новый интернет магазин (демо интернет магазина бытовой техники), то у вас вообще xslt , а я писал пример для tpl.

"Нет аватарки", в смысле, на сайте не отображается или нет такого поля в админке при редактировании пользователя?
Название: Re:Аватара пользователя
Отправлено: alex от 07 Мая 2011, 22:17:39
Да в профиле в админке или любом другом пользователе кроме имени,фамилии и мыла + права доступа НИЧЕГО НЕТ!
И при регистрации соответветственно тоже((

А мне много где нужна аватарка,..создать страницу пользователя персональную - там данных много + в форуме аватарка стандартная

Как ее подклбючить чтоли..

Самое интересное, что в форуме по стандарту идет отображение автора через
<xsl:apply-templates select="document(concat('udata://forum/conf_last_message/', @id, '/'))/udata" />
там уже
<xsl:apply-templates select="document(concat('udata://users/viewAuthor/', //property[@name = 'author_id']/value/item[1]/@id, '/'))/udata" />
и так отображается аватарка
<xsl:variable name="avatar" select="document(concat('uobject://',user_id,'.avatar'))/udata/property/value/@path" />
<xsl:choose>
<xsl:when test="$avatar"><xsl:apply-templates select="document(concat('udata://system/makeThumbnail/(', string($avatar), ')/62/auto'))/udata" /></xsl:when>
<xsl:otherwise><img height="62" width="62" alt="" src="/img/blogs/default_avatar.gif" /></xsl:otherwise>
</xsl:choose>

вобщем как же мне ее выбирать, отображать и при регистрации выводить..?


Название: Re:Аватара пользователя
Отправлено: admin от 07 Мая 2011, 23:37:18
я так понимаю тот код который вы привели, это код из дефолтовских шаблонов которые шли к демо магазину? значит обработка поля avatar есть
<xsl:variable name="avatar" select="document(concat('uobject://',user_id,'.avatar'))/udata/property/value/@path" />
, а самого поля нет просто добавите в шаблоне данных поле с название аватар, в английском варианте чтобы была такой же как в шаблоне avatar и сделайте у этого поля тип данных изображение, по идее должно заработать (хотя сейчас не успеваю проверить на рабочей системе)
Название: Re:Аватара пользователя
Отправлено: alex от 07 Мая 2011, 23:55:56
Даже не верится) заработало...ммм
теперь бы както это все вставить в регистрацию, но я никак аналогию с tpl не пойму, подскажите как в xslt сделать?
и где как настроить ограничения на аватар...просто он какбы везде прописан,но в админке про него ничего нет.
Название: Re:Аватара пользователя
Отправлено: admin от 08 Мая 2011, 00:10:14
какие ограничения вы хотите настроить?
Название: Re:Аватара пользователя
Отправлено: alex от 08 Мая 2011, 00:47:40
Размер, объем, формат
Название: Re:Аватара пользователя
Отправлено: admin от 08 Мая 2011, 00:57:32
раньше таких ограничений нельзя было настраивать в самой системе ,не думаю что это поменялось в последующих версиях линейки 2.8

в каких-то разработках писали сами отдельный обработчик для аватара, но решение было не унифицированным и просто его перенести на другой сайт не получится
Название: Re:Аватара пользователя
Отправлено: alex от 08 Мая 2011, 01:09:18
хм...тоесть всеравно если в формах (POST), откуда будет грузиться аватарка поставить ограничение, этого будет достаточно чтобы загружаемые аватарки были как установлено.

КАК ДОБАВИТЬ ПРОВЕРКУ POST данных, при изменении аватарки из профиля (users/settings) или при регистрации?
Название: Re:Аватара пользователя
Отправлено: admin от 10 Мая 2011, 15:05:20
программно, это вопрос уже чистого php

то есть ты посылаешь post данными фотку и тебе надо проверить её на соответсвие некоторым параметрам... для таких целей я использовал кастомный макрос изменения личных данных, чтобы в нем можно было врубить проверку параметров аватара

можно конечно ограничиться html ограничениями такими как <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> но это ограничение только на размер и то обойти его можно (для знающих людей)
Название: Re:Аватара пользователя
Отправлено: alex от 10 Мая 2011, 15:13:33
пардон, это я в курсе...а вот де это в umi найти..?
Название: Re:Аватара пользователя
Отправлено: admin от 10 Мая 2011, 15:18:49
что именно?

макрос, который я переделывал, был макрос сохранения параметров пользователя (так как при регистрации не спрашивался аватар)

этот макрос прописан в форме при измененеи настроек /users/settings_do/, поэтому сам он находитсья в файле /classes/modules/users/__register.php называется соответсвенно settings_do

на основе него я и писал свою модификацию с проверкой параметров аватарки
Название: Re:Аватара пользователя
Отправлено: alex от 10 Мая 2011, 19:58:33
аа понятно....


так.. а с регистрацией что? в файлах искать или через cms в админке? чтобы пункт авы добавить обязательный.
Название: Re:Аватара пользователя
Отправлено: admin от 11 Мая 2011, 02:31:54
обязательным поле можно сделать в админке, но вот вывод этого поля для заполнения при регистрации надо уже прописывать в шаблоне, а насчет параметров та же тема что и  изменением параметров пользователя
Название: Re:Аватара пользователя
Отправлено: alex от 13 Мая 2011, 16:23:47
всмысле? процитируй пожалуйста про параметры,не понял.
Название: Re:Аватара пользователя
Отправлено: admin от 13 Мая 2011, 16:29:35
ну в смысле, что для того чтобы при регистрации это поле было ,вывод этого поля надо делать в шаблоне регистрации.

а если хочешь чтобы было проверка на обязательность этого поля это в админку в шаблон данных.

если вопрос  стоит в том что аватар должен быть какого-то определенного размера или типа файла это уже кастомная php проверка
Название: Re:Аватара пользователя
Отправлено: alex от 22 Мая 2011, 09:57:46
Проблема: при регистрации поле Аватарка идет как текстовое, как сделать обзором выбор авы?

ЗЫ: если зайти в профиль, то там все как надо (обзор, окей и тп).
Название: Re:Аватара пользователя
Отправлено: admin от 23 Мая 2011, 06:56:55
смотрите шаблон с помощью которого выводиться поле аватар,  вывод <input type=text/> или <input type=file/> полностью зависит от шаблона обработчика
Название: Re:Аватара пользователя
Отправлено: HardHardy от 10 Сентября 2011, 03:04:10
Уточните, пожалуйста. Поле 'avatar' должно находится в группе 'avatar_group'. А где именно в типе данных "пользователь"? и какой у этого поля должен быть тип?
Название: Re:Аватара пользователя
Отправлено: admin от 11 Сентября 2011, 01:30:46
поле аватар в хомячках было выпадающий список, который содержал в себе список картинок, но так как сейчас все пересаживаются на xslt и ставят соответственно интернет магазин техники, то в нем просто сделай поле avatar типа картинка, ну и положение поля в типе данных "пользователь" не важно, так как xslt позволяет работать напрямую с любым полем.