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

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
Возникла необходимость при регистрации пользователя из опеределенного файла выдавать ему персональный код..
для этого в файл регистрации были внесены изменения, добавлен код для чтения и вывода персонального кода регистрирующемуся
Код
	<?php
$file = fopen("numbers.txt", "r");
$f=file("numbers.txt");
                        $znach = $f[0];
echo "<div><span style=\"color:red;\">Ваш персональный код : </span>$znach</div>";
                                for($i=0;$i<1;$i++){
                                        unset($f[$i]);
                                        $fp=fopen("numbers.txt","w");
                                        fputs($fp,implode("",$f));
                                        fclose($fp);
                                }

?>

и теперь файл регистрации выглядит так
Код
<?php
/**
 * @package Joomla.Site
 * @subpackage com_users
 * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 * @since 1.6
 */

defined('_JEXEC') or die;

JHtml::_('behavior.keepalive');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
?>
<div class="registration<?php echo $this->pageclass_sfx?>">
<?php if ($this->params->get('show_page_heading')) : ?>
<h1><?php echo $this->escape($this->params->get('page_heading')); ?></h1>
<?php endif; ?>

<form id="member-registration" action="<?php echo JRoute::_('index.php?option=com_users&task=registration.register'); ?>" method="post" class="form-validate">
<?php foreach ($this->form->getFieldsets() as $fieldset): // Iterate through the form fieldsets and display each one.?>
<?php $fields = $this->form->getFieldset($fieldset->name);?>
<?php if (count($fields)):?>
<fieldset>
<?php if (isset($fieldset->label)):// If the fieldset has a label set, display it as the legend.?>
<legend><?php echo JText::_($fieldset->label);?></legend>
<?php endif;?>
<dl>
<?php foreach($fields as $field):// Iterate through the fields in the set and display them.?>
<?php if ($field->hidden):// If the field is hidden, just display the input.?>
<?php echo $field->input;?>
<?php else:?>
<dt>
<?php echo $field->label; ?>
<?php if (!$field->required && $field->type != 'Spacer'): ?>
<span class="optional"><?php echo JText::_('COM_USERS_OPTIONAL');?></span>
<?php endif; ?>
</dt>
<dd><?php echo $field->input;?></dd>
<?php endif;?>
<?php endforeach;?>
</dl>
</fieldset>
<?php endif;?>
<?php
$file = fopen("numbers.txt", "r");
$f=file("numbers.txt");
                        $znach = $f[0];
echo "<div><span style=\"color:red;\">Ваш персональный код : </span>$znach</div>";
                                for($i=0;$i<1;$i++){
                                        unset($f[$i]);
                                        $fp=fopen("numbers.txt","w");
                                        fputs($fp,implode("",$f));
                                        fclose($fp);
                                }

?>
<?php endforeach;?>
<div>
<button type="submit" class="validate"><?php echo JText::_('JREGISTER');?></button>
<?php echo JText::_('COM_USERS_OR');?>
<a href="<?php echo JRoute::_('');?>" title="<?php echo JText::_('JCANCEL');?>"><?php echo JText::_('JCANCEL');?></a>
<input type="hidden" name="option" value="com_users" />
<input type="hidden" name="task" value="registration.register" />
<?php echo JHtml::_('form.token');?>
</div>
</form>
</div>
В базе данных в таблице #_users было создано дополнительное поле code
Вот собственно вопрос, как при нажатии на кнопку регистрация, когда пользователь вверл все свои данные именно этому пользователю в базу писалось значение его персонального кода, в моем случае это переменная $znach
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Для этих целей существуют плагины. В данном случае нужно рассмотреть события плагинов группы "user".
В качестве примера можно взять стандартный плагин profile или как-то так он называется.
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
тему можно закрыть, проблема решена
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
тему можно закрыть, проблема решена
А можно узнать как решена? При помощи чего?
Спасибо
*

b2z

  • Глобальный модератор
  • 7262
  • 777 / 0
  • Разраблю понемногу
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
решено, при помощи стандартного плагина профиль, и скрипта, который вставлял нужные мне данные через I'd форм ввода
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Ну вот, теперь все понятно. думаю что все кто столкнется с похожей задачей, при помощи вашего, подробно описанного способа решения, теперь без труда смогут это сделать. Спасибо. ;)
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
как буду за компом, напишу вам конкретное решение...
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
Собственно задача была, чтобы при регистрации пользователя ему из определенного текстового файла, в котором забиты коды, выдавался 1 код, приписывался ему в профиль(соответственно и в базу) и затирался в этом файле(чтобы не было дублей).
Вот собственно как решил...
1. Идём в plugins/user/profile/profile.xml
Перед строкой :
Код
<field name="spacer1" type="spacer"
 hr="true"
/>
Вставляем :
   
Код
<field name="register-require_mobphone" type="list"
        description="Персональный код"
        label="Ваш персональный код">
        <option value="2">JOPTION_REQUIRED</option>
        <option value="1">JOPTION_OPTIONAL</option>
        <option value="0">JDISABLED</option>
    </field>

далее в этом же файле перед закрывающим тегом
Код
</fieldset>
вставляем
Код
<field name="register-require_mobphone" type="list"

        <option value="2">JOPTION_REQUIRED</option>
        <option value="1">JOPTION_OPTIONAL</option>
        <option value="0">JDISABLED</option>
    </field>
2.Идем в plugins/user/profile/profiles/profile.xml
После кода :
Код
<field
name="address2"
type="text"
id="address2"
description="PLG_USER_PROFILE_FIELD_ADDRESS2_DESC"
filter="string"
label="PLG_USER_PROFILE_FIELD_ADDRESS2_LABEL"
message="PLG_USER_PROFILE_FIELD_ADDRESS1_MESSAGE"
size="30"
/>
вставляем
Код
<field
        name="lotereya"
        type="text"
        id="lotereya"
value="test"
        description="Персональный код"
        filter="string"
        label=""
        message=""
        size="30"

    />

3. Идём сюда components/com_users/views/registration/tmpl/default.php и перед строкой

Код
<div id="loginButton">

вставляем :


   
Код
<?php
$file = fopen("адрес до файла с кодами/numbers.txt", "r");
$f=file("адрес до файла с кодами/numbers.txt");
                        $znach = $f[0];
echo "<div style=\"display:none;\"><span style=\"color:red;\" >Ваш персональный код : </span><span id=\"lotereya\">$znach</span></div>";
                                for($i=0;$i<1;$i++){
                                        unset($f[$i]);
                                        $fp=fopen("адрес до файла с кодами/numbers.txt","w");
                                        fputs($fp,implode("",$f));
                                        fclose($fp);
                                }

?>
<script type="text/javascript">
jQuery('#jform_profile_lotereya').val(jQuery('#lotereya').text());
</script>
<script type="text/javascript">
jQuery('#jform_profile_lotereya').attr('readonly','readonly');
</script>

Вот собственно и все...
Skype:orekhov.mikhail, ICQ: 580077720, Телега
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать так чтобы данные о клике на кнопку переходили в Метрику?

Автор dan4ik

Ответов: 3
Просмотров: 1557
Последний ответ 30.11.2018, 09:38:33
от Geinado
Переадресация после регистрации Joomla 2.5

Автор Наталик

Ответов: 21
Просмотров: 20057
Последний ответ 29.10.2018, 21:37:29
от Elena91
Как найти страницу регистрации для пользователей? Подскажите, пожалуйста

Автор cosmotion

Ответов: 11
Просмотров: 5630
Последний ответ 19.07.2018, 09:56:57
от vad78
Убрать поле подтверждения e-mail при регистрации

Автор cartgen

Ответов: 5
Просмотров: 7093
Последний ответ 01.05.2018, 16:56:07
от kasper9820
Условия предоставления услуг при регистрации

Автор ZerZer

Ответов: 2
Просмотров: 3395
Последний ответ 20.07.2017, 09:40:25
от anoorik