257 lines
7.6 KiB
PHP
257 lines
7.6 KiB
PHP
<?php
|
|
|
|
class SiteController extends Controller {
|
|
|
|
/**
|
|
* Declares class-based actions.
|
|
*/
|
|
public function actions()
|
|
{
|
|
return array(
|
|
// captcha action renders the CAPTCHA image displayed on the contact page
|
|
'captcha' => array(
|
|
'class' => 'CCaptchaAction',
|
|
'backColor' => 0xFFFFFF,
|
|
),
|
|
// page action renders "static" pages stored under 'protected/views/site/pages'
|
|
// They can be accessed via: index.php?r=site/page&view=FileName
|
|
'page' => array(
|
|
'class' => 'CViewAction',
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* This is the default 'index' action that is invoked
|
|
* when an action is not explicitly requested by users.
|
|
*/
|
|
public function actionIndex()
|
|
{
|
|
// renders the view file 'protected/views/site/index.php'
|
|
// using the default layout 'protected/views/layouts/main.php'
|
|
$this->render('index');
|
|
}
|
|
|
|
/**
|
|
* This is the action to handle external exceptions.
|
|
*/
|
|
public function actionError()
|
|
{
|
|
if ($error = Yii::app()->errorHandler->error)
|
|
{
|
|
if (Yii::app()->request->isAjaxRequest)
|
|
echo $error['message'];
|
|
else
|
|
$this->render('error', $error);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Displays the contact page
|
|
*/
|
|
public function actionContact()
|
|
{
|
|
$this->render('contact');
|
|
}
|
|
|
|
/**
|
|
* Displays the login page
|
|
*/
|
|
public function actionLogin()
|
|
{
|
|
|
|
$model = new LoginForm;
|
|
|
|
// if it is ajax validation request
|
|
if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form')
|
|
{
|
|
echo CActiveForm::validate($model);
|
|
Yii::app()->end();
|
|
}
|
|
|
|
// collect user input data
|
|
if (isset($_POST['LoginForm']))
|
|
{
|
|
$model->attributes = $_POST['LoginForm'];
|
|
// validate user input and redirect to the previous page if valid
|
|
if ($model->validate() && $model->login())
|
|
$this->redirect(Yii::app()->user->returnUrl);
|
|
}
|
|
// display the login form
|
|
$this->render('login', array('model' => $model));
|
|
|
|
|
|
|
|
$this->render('index');
|
|
}
|
|
|
|
public function actionRegister()
|
|
{
|
|
/*
|
|
$model = new User('register');
|
|
|
|
if (isset($_POST['User']))
|
|
{
|
|
$model->attributes = $_POST['User'];
|
|
if ($model->validate())
|
|
{
|
|
|
|
$oldPassword = $model->password;
|
|
$model->password = $this->better_crypt($model->password);
|
|
|
|
|
|
date_default_timezone_set("UTC");
|
|
$model->date = date('Y-m-d H:i:s');
|
|
|
|
if ($model->save())
|
|
{
|
|
|
|
//$this->redirect(Yii::app()->user->returnUrl);
|
|
$this->redirect(array("site/login"));
|
|
|
|
return;
|
|
}
|
|
$model->password = $oldPassword;
|
|
}
|
|
}
|
|
$this->render('register', array('model' => $model));
|
|
|
|
*/
|
|
|
|
$this->render('index');
|
|
}
|
|
|
|
/**
|
|
* Logs out the current user and redirect to homepage.
|
|
*/
|
|
public function actionLogout()
|
|
{
|
|
Yii::app()->user->logout();
|
|
$this->redirect(Yii::app()->homeUrl);
|
|
}
|
|
|
|
|
|
public function actionAddPhotosToArticle()
|
|
{
|
|
$model = new AddPhotosToArticleForm;
|
|
|
|
if (isset($_POST['AddPhotosToArticleForm']))
|
|
{
|
|
|
|
$model->attributes = $_POST['AddPhotosToArticleForm'];
|
|
|
|
$urlList = explode(PHP_EOL, $model->photoUrlText);
|
|
|
|
$article = Article::model()->find('name=:name', array(':name' => $model->articleName));
|
|
|
|
if ($article)
|
|
{
|
|
|
|
|
|
if (!Album::model()->find('name=:name', array(':name' => $model->articleName)))
|
|
{
|
|
$album = new Album();
|
|
|
|
$album->name = $model->articleName;
|
|
$album->title = $article->title;
|
|
$album->description = "";
|
|
|
|
$album->save();
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!AlbumArticleRelation::model()->find('albumName=:name AND articleName=:name', array(':name' => $model->articleName)))
|
|
{
|
|
$albumArticleRelation = new AlbumArticleRelation();
|
|
$albumArticleRelation->albumName = $model->articleName;
|
|
$albumArticleRelation->articleName = $model->articleName;
|
|
|
|
$albumArticleRelation->save();
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach ($urlList as $row)
|
|
{
|
|
$row = trim($row);
|
|
|
|
if ($row !== '')
|
|
{
|
|
|
|
//$localFileName = 'C:/Workplace/Apache2.4/htdocs/bashgid/bashgid_images/' . base64_encode($row) . '.jpg';
|
|
|
|
$localFileName = '/home/hallyu-http/bashgid.hallyu.ru/http/bashgid_images/' . base64_encode($row) . '.jpg';
|
|
|
|
copy($row, $localFileName);
|
|
|
|
$photo = Photo::model()->find('imageUrl=:imageUrl', array(':imageUrl' => $row));
|
|
|
|
if ($photo)
|
|
{
|
|
$photo->delete();
|
|
}
|
|
|
|
$photo = new Photo();
|
|
|
|
$photo->title = $article->title;
|
|
$photo->imageUrl = $row;
|
|
$photo->imageHash = md5_file($localFileName);
|
|
$photo->description = "";
|
|
|
|
$photo->save();
|
|
|
|
$photoAlbumRelation = new PhotoAlbumRelation();
|
|
$photoAlbumRelation->imageUrl = $row;
|
|
$photoAlbumRelation->name = $model->articleName;
|
|
|
|
$photoAlbumRelation->save();
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$this->render('photosAdded', array('urlList' => $urlList));
|
|
return;
|
|
}
|
|
|
|
$this->render('addPhotosToArticle', array('model' => $model));
|
|
|
|
}
|
|
|
|
public function actionRecalcImageHash()
|
|
{
|
|
$photoArr = Photo::model()->findAll();
|
|
|
|
foreach($photoArr as $photo)
|
|
{
|
|
|
|
//$localFileName = 'C:/Workplace/Apache2.4/htdocs/bashgid/bashgid_images/' . base64_encode($photo->imageUrl) . '.jpg';
|
|
|
|
$localFileName = '/home/hallyu-http/bashgid.hallyu.ru/http/bashgid_images/' . base64_encode($photo->imageUrl) . '.jpg';
|
|
|
|
$imageHash = md5_file($localFileName);
|
|
$photo->imageHash = $imageHash;
|
|
$photo->save();
|
|
}
|
|
|
|
$this->redirect(Yii::app()->homeUrl);
|
|
|
|
}
|
|
|
|
private function better_crypt($input)
|
|
{
|
|
$salt = "";
|
|
$salt_chars = array_merge(range('A', 'Z'), range('a', 'z'), range(0, 9));
|
|
for ($i = 0; $i < 22; $i++)
|
|
{
|
|
$salt .= $salt_chars[array_rand($salt_chars)];
|
|
}
|
|
return crypt($input, '$2y$10$' . $salt);
|
|
}
|
|
|
|
}
|