Перейти к содержанию
Авторизация  

Загрузка файла с данными после регистрации


Описание

GHTWEB 5

Как Вы знаете в 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" .
Все работает, проверено как на локалке так и на удаленном хостинге.
Если помог ставьте +



Рекомендуемые комментарии

Комментариев нет

×
×
  • Создать...