2008 21 октября

Новое поле в форме регистрации (joomla1.5)

Встал вопрос добавить дополнительное поле в форму регистрации пользователей стандартными средствами, приготовился к глубокому копанию в коде движка (помятуя аналогичный хак для 1.0.хх), но с удивлением для себя обнаружил безумную простоту действия. Потому по порядку. Добавлять мы будем поле city (текстового типа) Выполняем SQL запрос в нашу базу данных:
1
ALTER TABLE `jos_users` ADD `city` VARCHAR( 250 ) NOT NULL ;
Не забываем заменить префикс jos на используемый. Либо можно вручную добавить поле через PHPMyAdmin Добавляем поле в форму регистрации: Файл components\com_user\views\register\tmpl\default.php - в таблицу с формой добавляем новую строку после Username
1
23
45
67
89
10
<tr>
        <td height="40">                <label id="citymsg" for="city">
                        <?php echo JText::_( 'City' ); ?>:                </label>
        </td>        <td>
                <input type="text" id="city" name="city" size="40" value="<?php echo $this->user->get( 'city' );?>" class="inputbox required validate-city" maxlength="25" /> *        </td>
</tr>
Добавляем возможность просмотра и редактирования нового поля в панели администрирования Файл administrator\components\com_users\views\user\tmpl\form.php - добавляем в таблицу новую ячейку после username
1
23
45
67
89
10
<tr>
    <td class="key">        <label for="city">
        <?php echo JText::_( 'City' ); ?>        </label>
   </td>   <td>
    <input type="text" name="city" id="city" class="inputbox" size="40" value="<?php echo $this->user->get('city'); ?>" autocomplete="off" />   </td>
</tr>
Глобальное магическое действие: файл libraries\joomla\database\table\user.php в класс class JTableUser после строки
1
var $username           = null;
добавляем
1
var $city               = null;
В этом же файле находим функцию function check() и добавляем проверку на наше поле (если нужно) - данная проверка будет у меня отрабатывается при отключенном JS в браузере и никогда не помешает
1
23
4
if (trim( $this->city ) == '') {
 $this->setError( JText::_( 'Please enter a city.') ); return false;
}
Вот и все, в результате я получил обязательное при регистрации поле City, доступно для просмотра и редактирования в админ панели, доступно на фронтенде через объект $user (подробно о нём почитать можно здесь):
1
2
$user =& JFactory::getUser();
echo $user->city;
Проверял на joomla 1.5.7 - работоспособно, если обнаружатся какие-либо ошибки - прошу отписывать. P.S. не забываем делать резервные копии редактируемых файлов Некоторые дополнение по теме форума. Задача - сделать выпадающий список 03. components\com_user\views\register\tmpl\default.php (user menu)
1
23
45
<select name="gender" id="gender">
         <option value=""><?php echo JText::_( 'Выберите' ); ?></option>         <option value="1"><?php echo JText::_( 'Женский' ); ?></option>
         <option value="2"><?php echo JText::_( 'Мужской' ); ?></option></select>
04. administrator\components\com_users\views\user\tmpl\form.php (admin)
1
23
4
<tr>
         <td class="key"><label for="gender"><?php echo JText::_( 'Род' ); ?></label></td>         <td><?php echo $this->lists['gender']; ?></td>
</tr>
05. administrator\components\com_users\views\user\view.html.php после
1
2
// build the html select list
$lists['sendEmail'] = JHTML::_('select.booleanlist',  'sendEmail', 'class="inputbox" size="1"', $user->get('sendEmail') );
добавляем
1
23
45
6
// gender
$gender = array();$gender[] = JHTML::_('select.option',  '', JText::_( 'Выберите пол' ) );
$gender[] = JHTML::_('select.option',  '1', JText::_( 'Женский' ) );$gender[] = JHTML::_('select.option',  '2', JText::_( 'Мужской' ) );
$lists['gender' ]= JHTML::_('select.genericlist',  $gender, 'gender', '', 'value', 'text', $user->get('gender') );
06. \components\com_user\views\user\form.php в любом месте в начале файла добавляем (про пхп теги напоминать не буду)
1
23
45
6
// gender
$gender = array();$gender[] = JHTML::_('select.option',  '', JText::_( 'Выберите пол' ) );
$gender[] = JHTML::_('select.option',  '1', JText::_( 'Женский' ) );$gender[] = JHTML::_('select.option',  '2', JText::_( 'Мужской' ) );
$lists['gender' ]= JHTML::_('select.genericlist',  $gender, 'gender', '', 'value', 'text', $user->get('gender') );
и строка таблицы
1
23
4
<tr>
        <td><label for="username"><?php echo JText::_( 'Пол' ); ?>:</label></td>        <td><?php echo $lists['gender']; ?></td>
</tr>

Дополнительные ссылке по работе с классом JHTML

http://joomlaforum.ru/index.php?topic=63859.0
http://joomlaforum.ru/index.php/topic,35800.0.html
http://joomlapedia.ru/Элементы форм
http://joomlaforum.ru/index.php/topic,65477.msg376981.html#msg376981

Комментарии

0 fon-karlson пишет нам 22.11.2008 02:31
Не забываем аналогично поправить components\com_user\views\register\tmpl \form.php чтобы пользователь после авторизации мог редактировать данные НОВОГО поля.
Сообщить модератору
0 Игорь пишет нам 25.11.2008 16:37
Но это по сути хак. Реально ли написать свой модуль, который бы отправлял данные в стандартный компонент com_user, а специальный плагин обрабатывал бы дополнительно отправленные данные?
Сообщить модератору
0 Игорь пишет нам 25.11.2008 19:11
Ну в приципе это можно сделать используя кукишь, который создается в моем модуле (еще правда не уверен, что его можно спокойно сконтатить с com_user), а обрабатывается он в плагине. Но нет ли способа изящнее? Может можно делать какие-то правки в ассоциативном массиве, который передается с регистрацией? Ну в общем какое-ндь решение изящнее.
Сообщить модератору
0 Beliyadm пишет нам 25.11.2008 19:24
Игорь - это именно хак и есть, конечно неудобно, что придется каждый раз его дублировать при обновлении (если затронуты патчем наши файлы). По поводу способа поизящнее - честно не подскажу. Либо писать вообще свой компонент регистрации (вроде CB) либо думать в сторону мамбота, но я, если честно, пока затрудняюсь высказать какие-либо конструктивные предложения, мне достаточно хака и внимательности при обновлениях.
Сообщить модератору
0 Игорь пишет нам 27.11.2008 00:41
Спасибо за ответ! Попытаюсь сделать кривенький плагинчик+модуль+компонент админки. Совсем не хочется заменять весь компонент регистрации, тем более в 1,5 он по-моему немаленький.
Сообщить модератору
0 Kalver пишет нам 28.02.2009 22:57
С дополнительным полем день рождения, как поставить, можно по порядку пожалуйста ?
Сообщить модератору
0 Beliyadm пишет нам 01.03.2009 04:28
Kalver - точно также аналогично, только вариантов два: - как в теме на joomlaforum.ru делать три поля (день, месяц, год) что я считаю неправильным - либо добавить одно текстовое поле, при регистрации к нему подключать стандартный скрипт календарика движка и хранить данные сразу в удобном формате
Сообщить модератору
0 Kalver пишет нам 01.03.2009 06:47
Простите пожалуйста за не знание, только учусь. Можно попросить Вас написать по шагам( как в этой теме выше описанно) как это можно сделать? Пожалуйста..
Сообщить модератору
0 Beliyadm пишет нам 01.03.2009 06:53
Еще раз - точно также, как описано в теме - заменяешь только city на название birthdate (к примеру) и при выводе в форме регистрации называешь его "дата рождения". Вопрос подключения календарика или прочей проверки полей выходит за рамки данной темы, ищи решение либо в гугле, либо на joomlaforum, неоднократно давали решение
Сообщить модератору
0 riartem пишет нам 27.03.2009 08:13
Скажите, а мне нужно выпадающий список добавить в регистрацию... Что делать?
Сообщить модератору
0 Beliyadm отвечает 28.03.2009 04:16
Да в принципе все тоже самое, только в файле components\com_user\views\register\tmpl\default.ph p вместо text добавить обычный список < select >< /option > < /select > Можно при желании вынести красиво в отдельную переменную и список генерировать средствами движка, но это уже по желанию
Сообщить модератору
0 Kalver пишет нам 01.04.2009 16:28
Вопрос касаемо мультиязычности данного хака, в этом хаке мы добавляем поле на русском языке, подскажите пожалуйста варианты, если регистрация используется стандартными средствами joomla 1.5 , а здесь как известно на каком языке юзер выбрал просмотр сайта, на таком языке и происходит регистрация, не будет ли это означать, что пользователь проходя регистрацию на английском варианте, будет видеть поле Город, Или день Рождения, на русском языке?
Сообщить модератору
0 Beliyadm отвечает 01.04.2009 17:25
Чтобы новое поле показывалось на разных языках в случае многоязычного сайта нам требуется не просто вписывать статично языковые фразы, но внести их в виде новой стройки в языковые файлы ru-RU.com_user.ini и en-GB.com_user.ini (для рус\англ сайта) по аналогии с уже имеющимися
Сообщить модератору
0 Kalver пишет нам 01.04.2009 16:34
Писал: fon-karlson Says: Ноябрь 21st, 2008 at 23:31 Не забываем аналогично поправить components\com_user\views\register\tmpl \form.php чтобы пользователь после авторизации мог редактировать данные НОВОГО поля. Аналогично, это где куда и что?
Сообщить модератору
0 Beliyadm отвечает 01.04.2009 17:26
аналогично - означает что в указанном файле добавить по аналогии с существующими записями строки для нашего нового поля
Сообщить модератору
0 selimoff пишет нам 22.04.2009 22:52
Спасибо за хак! Все сделал кроме: $user =& JFactory::getUser(); echo $user->city; но работает! для чего этого нужно ($user...)?
Сообщить модератору
0 Beliyadm отвечает 22.04.2009 23:09
$user =& JFactory::getUser(); echo $user->city; Это для примера использования нового поля для работы в фронтенде или админке Первая строка - получения массива с данными авторизованного пользователя, вторая - вывод значения элемента массива. Использовать там, где нужно видеть значения данного поля.
Сообщить модератору
0 selimoff пишет нам 22.04.2009 23:11
Ой, спасибо! а последний вопрос. Где это добавить?
Сообщить модератору
0 Beliyadm отвечает 22.04.2009 23:22
Добавить там, где считаете нужным показывать значения данного поля. Попробуйте для пользователя его заполнить в админке, под этим юзером авторизоваться на сайте и в index.php шаблона добавить данные две строки и посмотрите на результат. А дальше - вот что хотите то и делайте с ним :)
Сообщить модератору
0 selimoff пишет нам 22.04.2009 23:31
А если не добавить, все равно будет работать без problems? извините, но я далеко не программист :)
Сообщить модератору
0 Beliyadm отвечает 22.04.2009 23:37
если не планируете нигде использовать данное поле, а только лишь при регистрации пользователя и смотреть в админке - можно и не добавлять, совершенно на ваше усмотрение
Сообщить модератору
0 MegaUzver пишет нам 24.04.2009 18:59
На сколько я понимаю, данным хаком можно добавить обязательное поле для регистации. А как можно добавить необязательное?
Сообщить модератору
0 Beliyadm отвечает 25.04.2009 14:18
не делать последний шаг, то есть не добавлять условие для проверки обязательности поля :) А так по дефолту все доступно для всех в любых вариациях
Сообщить модератору
0 MegaUzver отвечает 01.05.2009 02:27
На первый взгляд, вроде бы логично, но не все так просто, если не делать последний шаг, то при отключенном javascript у нас просто не будут высвечеватся ошибка, вместо этого будет сообщение о том, что такой пользователь, якобы, есть. При включенном же javascript если не заполнить поле, то оно просто будет подсвечиватся красным, и все равно не даст зарегестрироватся. Выход нашел в том, что в следующем коде <input type="text" id="city" name="city" size="40" value="user->get( ‘city’ );?>" class="inputbox required validate-city" maxlength="25" /> * (2й шаг) необходимо убрать class="inputbox required validate-city". Только в этом случае поле действительно станет не обязательным.
Сообщить модератору
0 MegaUzver пишет нам 24.04.2009 19:20
И еще хотел поправить сообщение # fon-karlson Says: Ноябрь 21st, 2008 at 23:31 Не забываем аналогично поправить components\com_user\views\register\tmpl \form.php чтобы пользователь после авторизации мог редактировать данные НОВОГО поля. На сколько я понял, то чтобы пользователь мог редактировать свои данные после регистрации надо поправить не components\com_user\views\register\tmpl\form.php, а components\com_user\views\USER\tmpl\form.php.
Сообщить модератору
0 selimoff пишет нам 25.05.2009 12:03
Еще можно так делать, чтобы сортировать новое поле: // administrator/components/com_users/views/users/tmp l/default.php 1) добавить это после Username (строка 44) &lt;th width=\\&quot;10%\\&quot; class=\\&quot;title\\&quot;&gt; & lt;?php echo JHTML::_(\\\'grid.sort\\\', \\\'city\\\', \\\'a.city\\\', @$this-&gt;lists[\\\'order_Dir\\\'], @$this-&gt;lists[\\\'order\\\'] ); ?&gt; &lt;/th&gt; 02. изменять colspan=\\&quot;10\\&quot; на &lt;td colspan=\\&quot;11\\&quot;&gt; (строка 67) 03. добавить это после username (строка 103) &lt;td&gt; &lt;?php echo $row-&gt;city; ?&gt; &lt;/td&gt;
Сообщить модератору
0 Alex пишет нам 07.06.2009 18:50
Вопрос. Как добавить в таблицу пользователи новый id (указывающий на запись в другой таблице)? Сам процесс добавления поля other_id в БД таблицы user понятен. Потом на components\\com_user\\views\\register\\tmpl\\defau lt.php добавил поле <tr> <td height=\"40\"> <label id=\"key_msg\" for=\"groupkey\"> <?php echo JText::_( \'Groupkey\' ); ?>: </label> </td> <td> <input class=\"inputbox required validate-Groupkey\" type=\"text\" id=\"groupkey\" name=\"groupkey\" size=\"40\" value=\"<?php echo $this->user->get( \'group_id\' );?>\" /> * </td> </tr> После в libraries\\joomla\\database\\table\\user.php есть доступ к значению groupkey. Как, и где именно самостоятельно записать в поле other_id таблицы user соответственно тот id который соответствует записи из другой таблицы? libraries\\joomla\\database\\table\\us er.php function check() $this->$group_id = 6; после добавления такой строки регистрация перестает работать
Сообщить модератору
0 Антон пишет нам 14.08.2009 12:53
Статья великолепная и понятная, только сталкнулся с одной проблемой. Как я понял : City - это и есть слово которое выводится перед полем, так вот как его написать по русски. Когда я это делаю ничего не происходит, еслиже менять но на латинице - работает.
Сообщить модератору
0 Антон пишет нам 14.08.2009 13:30
Разобрался добавив перевод в ru-RU.com_user.ini
Сообщить модератору
0 Beliyadm отвечает 14.08.2009 17:10
Антон - абсолютно верно :)
Сообщить модератору
0 Topa пишет нам 22.11.2009 17:58
Классно, но вот не понял, после всех манипуляций в админке сити появился, а в модуле регистрации нет вроде все так как надо... Версия Joomla 1.5.10. Помогите плиз!!!
Сообщить модератору
0 Topa пишет нам 22.11.2009 19:10
Да вот еще что, поля для ввода города нет но регистрировать не хочет просит ввода city
Сообщить модератору
0 Beliyadm отвечает 23.11.2009 04:12
Значит в шаблон компонента com_user вывод данного поля не добавлен. Внимательно перечитайте этот пункт статьи, там все написано
Сообщить модератору
0 lina пишет нам 01.12.2009 16:01
спасибо огромное, как раз то, что искала!:) такой вопросик: а мне нужно поле, которое бы было видно из админки (в форме регистрации его не надо), а админке его можно бы было менять и без заполнения этого поля в админке не разрешалось бы даже админу зарегистрировать пользователя. вот именно последнее - \"без заполнения этого поля в админке не разрешалось бы даже админу зарегистрировать пользователя\" - где и что поменять чтобы это реализовать?:)
Сообщить модератору
0 lina пишет нам 01.12.2009 17:38
не, пожалуй предыдущая идея была бредовой. лучше чтобы при попытке юзера войти на сайт проверялась заполненность того поля.. как бы такое сделать?... я поняла что попытка войти обрабатывается здесь: index.php?option=com_comprofiler&task=login , а вот где найти это самое здесь - непонятно:) но поле в админскую табличку я добавила, спасибо вам огромное за такое подробное разъяснение как это сделать!:)
Сообщить модератору
0 lina пишет нам 01.12.2009 18:08
предыдущий вопрос отпадает, придумала другое решение:) а вам спасибо огромное за статью!
Сообщить модератору
0 Beliyadm отвечает 01.12.2009 20:41
Я за вами просто не успеваю отвечать на каждый вопрос :) P.S. у вас фигурирует ссылка com_comprofiler - это вообще то компонент Community Builder, там не надо делать ручных хаков как описано в статье для добавления новых полей в форму регистрации
Сообщить модератору
0 lina пишет нам 02.12.2009 10:30
а я в самой формочке не добавляла поле, я тока в админке =) пользователю это поле ни к чему, оно тока админу =)
Сообщить модератору
0 Александр пишет нам 08.12.2009 19:27
Сделал все как написано, проверил несколько раз уже, но поля не появились в форме регистрации. В админке появились.
Сообщить модератору
0 Beliyadm отвечает 08.12.2009 19:35
Изменения в components\com_user\views\register\tmpl\default.ph p вносили? Если да но не отображается - значит на уровне шаблона есть аналогичный файл шаблон\html\com_user\register\default.php
Сообщить модератору
0 TraderS пишет нам 11.01.2010 19:41
сделал все как написано, в форме регистрации поле появилось, в админке в данных пользователя тоже появилось, но оно пустое, его значение можно посмотреть только в БД. что не так? и еще:как сделать вывод нового поля в таблице \"менеджер пользователей\" ?
Сообщить модератору
0 Beliyadm отвечает 11.01.2010 19:45
Значит какое то действие не было выполнено, но если оно не выполнено - каким образом данное поле оказалось заполнено в БД? Проверяйте последовательно все шаги. Как сделать вывод - смотрим файл administrator\components\com_users\views\users\tmp l\default.php и добавляем в таблицу новый столбец где пишем $row->new_field
Сообщить модератору
0 Ирина пишет нам 19.01.2010 23:09
Здравствуйте. Всё получилось. Спасибо большое. :) Вот только не могу понять почему при входе перебрасывает на https...
Сообщить модератору
0 Beliyadm отвечает 19.01.2010 23:27
Не могло не получится :) По поводу https - в настройках модуля авторизации отключите использование безопасного входа (ssl\https)
Сообщить модератору
0 Саша Туманов пишет нам 22.02.2010 01:29
Отличная статейка, очень нужная... Вот если бы еще узнать, как добавлять в форму регистрации возможность загрузки аватара, было бы просто замечательно ))) А то приходится городить целый огород в виде CB, ради одного только аватара (( Расскажи пожалуйста ))
Сообщить модератору
0 Beliyadm отвечает 22.02.2010 03:51
Точно так же, только добавить параметр в тег form и file input в форму, в обработчике прописать функцию работы с загруженным изображением (функций и классов на пхп в сети масса)
Сообщить модератору
0 jem777 отвечает 02.03.2010 08:35
А в каком файле находится обработчик формы? Пытаюсь сделать возможность загрузки аватара, что то не совсем пойму сходу. В controller.php нашел функции save и register_save - это зесь надо прописывать функции загрузки фото?
Сообщить модератору
0 Beliyadm отвечает 02.03.2010 16:41
Да, функция register_save в контроллере как раз и обрабатывает сохранение регистрационных данных
Сообщить модератору
0 Alex пишет нам 25.02.2010 07:57
admin- я присоединюсь к тому что просили в начале, перерыл все форумы рускоязычные по Jooml-е нет решения и в Гугле. Как сделать в Форме регистрации поле с датой рождения с календариком т.е. второй вариант как вы сами сказали тямы у меня точно самому не хватит допереть а вещь например мне , Очень нужная. Если можно поподробнее , думаю многим будет интересно и полезно. Заранее Благодарю.
Сообщить модератору
0 Alex пишет нам 25.02.2010 18:07
Да а моё пожелание (просьбу) похоже удалили....обидно...к стати эта статья уже перепечаталась на стольких сайтах и блогах...причем раньшим числом автор не блещет великими способностями как я посмотрю...хотя способности пиздить чужой материал и выдавать за свой ему не отнимать спаибо за помощь пойду к специалистам
Сообщить модератору
0 Beliyadm отвечает 25.02.2010 18:12
Прошу прощения, физически не могу ответить на все вопросы и вполне возможно, что-то удалил. Да и не великий специалист, написано же - записки нетрезвого кодера, не более А по поводу пиздить - автор данной статьи я и никто более, ни откуда не перепечатывалась, если кто брал текст с моего блога либо самостоятельно писал аналогичный хак - не могу знать. Если интересует число - данный материал был опубликован мной на joomlaforum еще в 2008 году http://joomlaforum.ru/index.php/topic,44640.0.html. Потому прошу следить за словами и понимать ситуацию
Сообщить модератору
0 Alex пишет нам 25.02.2010 18:15
сорри погорячился у меня мозила затупила ...вот так ни за что обидел человека извиняюсь...
Сообщить модератору
0 Alex пишет нам 25.02.2010 18:16
Главное вовремя понять свою ошибку ....)))) спасибо статья действительно хорошая но просто уже нервы не выдерживают ...я уже 10 день бьюсь над этой проблемой...(((
Сообщить модератору
0 Beliyadm отвечает 25.02.2010 18:30
Извинения приняты :) Берем этот же хак и читаем еще статью (точнее набросок) http://blog.pbelkov.com/2009/03/03/calendar-js-joomla15/ То есть вместо инпута вставляем указанный пхп код, где вместо cal_var соответственно подставляете имя добавленного поля P.S. это мутулз фишка, потому если он отключен - работать не будет
Сообщить модератору
0 Alex пишет нам 25.02.2010 18:36
Спасибо буду смотреть и учиться ...Еще раз извините ...Я больше так не буду.... Спасибо
Сообщить модератору
0 Alex пишет нам 25.02.2010 20:47
Спасибо почти получилось но вот другой вопрос сайт над которым сижу не для очень догадливых, а во вторых регистрация происходит в pop_up окне <script type="text/javascript" src="root(); ?>media/system/js/validate.js"> Window. onDomReady(function(){document.formvalidator.setHa ndler('passverify', function (value) { return ($('password').value == value); } );}); <form action="" method="post" id="josForm" name="josForm" class="form-validate"> : * : 'inputbox', 'size'=>'25', 'maxlength'=>'10'));?> * : * и так далее тоесть календарик всплывает позади этого окна ....Вопрос в следующем как можно вставить календарик таково типа ..для простоты 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 чтоб все запоминалось в данных о юзере так как дата рождения очень важна...Заранее спасибо даже если не поможете...))
Сообщить модератору
0 Beliyadm отвечает 25.02.2010 20:58
Если и в попапе - достаточно подключить необходимые скрипты, посмотрите без попапа какие скрипты подгружает фронтенд для работы календарика (на память не скажу) и пропишите их для попапа Если же хотите делать три отдельных выбора - почитайте здесь http://joomlaportal.ru/content/view/1400/68/ - правда под 1.0, но суть понятна. То есть на фронте у нас три селекта и дальше в обработчике они соединятся в один параметр birthDate (можно сделать и три отдельных поля в базе для дня, месяца и года соответственно)
Сообщить модератору
0 Alex отвечает 25.02.2010 22:11
я знаю уже достал но осталось последнее теперь в каком файле соединить их (эти три поля)и как это грамотно прописать ...чтоб в базе сохранялось....а дальше уж точно сам допру как проект запущу с меня Donate...))))
Сообщить модератору
0 Beliyadm отвечает 25.02.2010 22:25
components\com_user\controller.php - там есть функция register_save сохранения данных регистрации и где нибудь перед комментарием // Set some initial user values добавить получение данных и объединение в одну строку типа $user->set('birthdate', 'объединенная строка');
Сообщить модератору
0 sam пишет нам 26.02.2010 01:20
оппа полезненько
Сообщить модератору
0 oLEG пишет нам 11.03.2010 03:56
Подскажите пожалуйста, как сделать так, чтобы после оплаты продукта в virtuemart - в базу заносилась кроме стандартной информации(Название, цена и тд) еще и исключительный код, который присваивается каждому товару после оплаты, причем код, генерируемый случайным образом (6 знаков)? Надеюсь на помощь!
Сообщить модератору
0 Beliyadm отвечает 11.03.2010 03:59
каким образом вопрос относится в теме нового поля стандартной регистрации пользователя? По сабжу не скажу, есть странное чувство, что в форму надо добавить hidden поле с случайным номером, которое и писать в базу виртуя при заказе, больше ничего сказать не могу
Сообщить модератору
0 Андрей пишет нам 18.10.2010 13:51
Здравствуйте, у меня версия joomla 1.5.15 и не получается добавить поле для регистрации нормально. Добавляю в administrator\\components\\com_users\\views\\user\ \tmpl\\form.php описанный код, в панели администрирования ячейки не появляется. Добавляю описанный код в libraries\\joomla\\database\\table\\user.php пользователи вобще не открываются...
Сообщить модератору
0 Beliyadm отвечает 18.10.2010 13:59
Добрый день. Учитывайте, что прямое копирование с блога не будет работать корректно, парсер движка неправильно отрабатывает одинарные кавычки, потому строку придется заменять на
Сообщить модератору
0 Андрей пишет нам 23.10.2010 23:42
спасибо за ответ, в этом была проблема. Однако на этом не закончились проблемы, у меня не добавилось поле City в админ панели при просмотре какого-нибудь зарегистрированного юзера и вобще administrator\\components\\com_users\\views\\user\ \tmpl\\form.php файлик для чего? Я его удалил и информация о юзерах в админ понели осталась не изменной. Добавляем возможность просмотра и редактирования нового поля в панели администрирования Файл administrator\\components\\com_users\\views\\user\ \tmpl\\form.php – добавляем в таблицу новую ячейку после username
Сообщить модератору
0 Beliyadm отвечает 24.10.2010 19:34
administrator\components\com_users\views\user\tmpl \form.php - файл как для вноса информации, так и отображения существующего значения, если оно есть.
Сообщить модератору
0 Александр пишет нам 03.02.2011 02:56
Здравствуйте у меня после всех установок при нажатии на зарегистрированного пользователя в менеджере пользователе, пишет ошибку Fatal error: Call to a member function def() on a non-object in /home/garantst/public_html/administrator/component s/com_users/views/user/tmpl/form.php on line 13 Как это исправить, подскажите пожалуйста.
Сообщить модератору
0 Beliyadm отвечает 03.02.2011 03:30
Добрый день. В данном файле в 1.5 испокон веков не было такой функции def().
Сообщить модератору
0 петр пишет нам 21.02.2011 22:44
например у меня (и не только) форма меняется только здесь /templates/НАШ_ШАБЛОН/html/com_user/regis ter (может в статью внеси?)
Сообщить модератору
0 Константин пишет нам 09.04.2012 17:08
Здравствуйте! Очень полезная статья. Подскажите, а как продублировать эти поля в регистрации virtuemart?
Сообщить модератору
0 Beliyadm отвечает 09.04.2012 18:04
Добрый день. Если у virtuemart собственная логика регистрация - действовать по аналогии, изучить структуру БД и формы регистрации. Детальней не подскажу, не разбирался
Сообщить модератору
0 Dorfman пишет нам 24.07.2012 15:48
Привет! Спс за темку! Один вопрос: в каком файле и какие изменения проводить, чтобы увидеть в админке данное поле? В настоящий момент при регистрации у меня поле заполняется и проверка происходит на обязательность заполнения, также в БД отображается, но как вывести данные этого поля в информации о Юзвере в админке?
Сообщить модератору
0 Beliyadm отвечает 24.07.2012 16:29
Смотрите файлы в двух вьюшках administrator\components\com_users\views, смотря где вам нужно отобразить, в списке или в карточке профиля Для карточки нужно править файл administrator\components\com_users\views\user\tmpl \form.php
Сообщить модератору
0 Dorfman пишет нам 24.07.2012 19:51
Огромное спасибо! Петь, может, на joomlaforum-e темку эту в ФАК закинуть? Нужное дело, скажем прямо!
Сообщить модератору
0 Beliyadm отвечает 24.07.2012 21:30
Не за что, всегда рад. Факом на форуме уже сто лет не заведую, вроде была там подобная тема, если память не изменяет
Сообщить модератору

Недостаточно прав для комментирования