Загрузка файла с данными после регистрации
Описание
Как Вы знаете в GHTWEB есть функция скачивания файла после регистрации, но в последней версии она была отключена и не корректно работала.
Сейчас я расскажу Вам как реализовать и подкорректировать эту функцию, чтобы она у Вас заработала, но есть и некоторые условия при которых она будет работать.
Условия такие:
1. В настройках убираете подтверждение регистрации по email.
2. Юзер получит тхт файл с логином паролем и другими данными вместо сообщения о том что его аккаунт успешно зарегистрирован.
Если Вас устраивают эти условия, тогда приступаем.
1. Открываем файл: www/protected/modules/register/models/RegisterForm.php
2. Ищем строку 332, или забиваем в поиск:
PHP:
//$this->downloadFileInfoAfterRegister();
Как Вы можете увидеть, эта строка за комментирована, убираем комментарий (это // спереди)
Должно получиться так:
$this->downloadFileInfoAfterRegister();
Идем дальше, строка 351 или ищем:
PHP:
public function downloadFileInfoAfterRegister()
После строчки:
PHP:
$gs = $this->gs_list[$this->gs_id];
Вставляем строку:
PHP:
$servername = $_SERVER['HTTP_HOST'];
Вместо
PHP:
$fileName = time() . '.txt';
Меняем на:
PHP:
$fileName = $servername . ' - ' . $gs['name'] . '.txt';
Вместо
PHP:
$body
Меняем на:
PHP:
$filecontent
и последнюю строчку, вместо:
PHP:
request()->sendFile($fileName, $body, 'text/plain', FALSE);
Меняем на:
PHP:
Yii::app()->request->sendFile($fileName, $filecontent, 'text/plain');
Строка
PHP:
$fileName = $servername . ' - ' . $gs['name'] . '.txt';
означает, что имя файла у нас будет: sitename.ru - название сервера.txt
Если Вы не хотите название сервера в виде домена сайта, можно изменить на свое, сделать это вот так:
Нашу строку
PHP:
$servername = $_SERVER['HTTP_HOST'];
меняем на
PHP:
$servername = 'SuperServer';
И теперь файл сохранится юзеру с именем: SuperServer - название сервера.
Если Вы хотите добавить в Ваш сохраняемый тхт файл Email юзера, что бы он знал что ввел, тогда
после строки:
PHP:
Yii::t('main', 'Пароль') . ": " . $this->password . "\r\n" .
Вставляем строку:
PHP:
Yii::t('main', 'Email') . ": " . $this->email . "\r\n" .
Все работает, проверено как на локалке так и на удаленном хостинге.
Если помог ставьте +
Рекомендуемые комментарии
Комментариев нет