[Решено] Изменение профиля пользователя - запретить поля для редактирования

  • 13 Ответов
  • 6605 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Подскажите пожалуйста, что и где нужно заремить, чтобы при попытке пользователя изменить свой профиль не отображались вот эти поля:
http://prntscr.com/38apt8
« Последнее редактирование: 10.04.2014, 12:18:04 от b2z »

Re: Изменение профиля пользователя
« Ответ #1 : 09.04.2014, 07:54:51 »
3 поля: Редактор, Часовой пояс и Язык убрал из админки
С остальными пока проблема, не могу убрать

*

Grigory S.

Re: Изменение профиля пользователя
« Ответ #2 : 09.04.2014, 09:12:57 »
Можно просто убрать кнопку "редактировать" из профиля... Переопределите файл components/com_users/views/profile/tmpl/default.php у себя в шаблоне и удалите из него:
Код: php
<?php if (JFactory::getUser()->id == $this->data->id) : ?>
<ul class="btn-toolbar pull-right">
<li class="btn-group">
<a class="btn" href="<?php echo JRoute::_('index.php?option=com_users&task=profile.edit&user_id='.(int) $this->data->id);?>">
<span class="icon-user"></span> <?php echo JText::_('COM_USERS_EDIT_PROFILE'); ?></a>
</li>
</ul>
<?php endif; ?>
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".

Re: Изменение профиля пользователя
« Ответ #3 : 09.04.2014, 09:26:20 »
Можно просто убрать кнопку "редактировать" из профиля... Переопределите файл components/com_users/views/profile/tmpl/default.php у себя в шаблоне и удалите из него:
Код: php
<?php if (JFactory::getUser()->id == $this->data->id) : ?>
<ul class="btn-toolbar pull-right">
<li class="btn-group">
<a class="btn" href="<?php echo JRoute::_('index.php?option=com_users&task=profile.edit&user_id='.(int) $this->data->id);?>">
<span class="icon-user"></span> <?php echo JText::_('COM_USERS_EDIT_PROFILE'); ?></a>
</li>
</ul>
<?php endif; ?>

Таким образом пользователь вообще не сможет редактировать профиль? Мне надо чтобы не было только тех полей, что я указал, а все остальные поля: Адрес, телефон и т.п. чтобы пользователь мог редактировать.

*

Grigory S.

Re: Изменение профиля пользователя
« Ответ #4 : 09.04.2014, 09:39:26 »
Ну судя по Вашему скрину нужно убрать всё...
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".

Re: Изменение профиля пользователя
« Ответ #5 : 09.04.2014, 09:54:39 »
Ну судя по Вашему скрину нужно убрать всё...
Нужно убрать только те поля, которые в скрине.
А вот все остальные, Адрес, город, телефон и т.п. надо оставить, чтобы пользователь мог менять данные все, кроме тех что в скрине

Re: Изменение профиля пользователя
« Ответ #6 : 09.04.2014, 11:46:47 »
Решение нашел здесь http://ittricks.ru/posts/105

Re: Изменение профиля пользователя
« Ответ #7 : 09.04.2014, 12:00:55 »
Вот еще по той же теме http://ittricks.ru/posts/156
Проверено, работает!


Re: Изменение профиля пользователя
« Ответ #9 : 09.04.2014, 12:52:31 »
Только после каждого обновления нужно следить, чтобы изменения не слетели.
Ну это само собой!

Re: Изменение профиля пользователя
« Ответ #10 : 09.04.2014, 16:42:11 »
Может кто подскажет, в Joomla 3 в каких файлах что надо поменять/добавить, чтобы было по аналогии как в этом посте http://joomlaforum.ru/index.php/topic,98959.msg1448151.html


Re: Изменение профиля пользователя
« Ответ #12 : 10.04.2014, 08:47:10 »
Там речь вообще о JomSocial.
А для Joomla 3 не подскажете решения? Нужно, чтобы в профиле пользователя 2 поля были запрещены к редактированию, но выводились. По аналогии с USERNAME, когда пользователь изменяет свой профиль, USERNAME выводится, но его нельзя отредактировать.

Re: Изменение профиля пользователя
« Ответ #13 : 10.04.2014, 09:06:05 »
А для Joomla 3 не подскажете решения? Нужно, чтобы в профиле пользователя 2 поля были запрещены к редактированию, но выводились. По аналогии с USERNAME, когда пользователь изменяет свой профиль, USERNAME выводится, но его нельзя отредактировать.
Вообщем ковыряния в файлах, а так же метод "научного тыка" дали свои плоды :)
В файле /components/com_users/models/profile.php
нашел строчку $form->setFieldAttribute('username', 'readonly', 'true');
Т.к. readonly - только для чтения, сразу под этой строко написал нужные мне две:
$form->setFieldAttribute('name', 'readonly', 'true');
$form->setFieldAttribute('email1', 'readonly', 'true');

Теперь все работает как мне надо. Эти поля выводятся при изменении профиля, а отредактировать их нельзя.

Тему можно закрывать.

Спасибо всем!