diff --git a/www/protected/controllers/ApiController.php b/www/protected/controllers/ApiController.php new file mode 100644 index 0000000..cef6c40 --- /dev/null +++ b/www/protected/controllers/ApiController.php @@ -0,0 +1,59 @@ +array('*'), + ), + ); + } + + public function actionUpdate() + { + if (! isset($_GET['Name'])) { + throw new CHttpException(404,'Invalid Request - [Name] missing'); + return; + } + + $Name = $_GET['Name']; + + $this->actionUpdate2($Name); + } + + public function actionUpdate2($Name) + { + $data = ProgramUpdates::model()->findByAttributes(['Name' => $Name]); + + if (! isset($_GET['Name'])) { + throw new CHttpException(404,'Invalid Request - [Name] not found'); + return; + } + + $this->render('update', ['data' => $data]); + } + + public function actionTest() + { + $this->render('test', []); + } +} \ No newline at end of file diff --git a/www/protected/controllers/BlogpostController.php b/www/protected/controllers/BlogpostController.php new file mode 100644 index 0000000..d833ec8 --- /dev/null +++ b/www/protected/controllers/BlogpostController.php @@ -0,0 +1,197 @@ +array('index','view', 'ajaxMarkdownPreview'), + 'users'=>array('*'), + ), + array('allow', // allow authenticated user to perform 'create' and 'update' actions + 'actions'=>array('create','update','admin','delete'), + 'users'=>array('@'), + ), +// array('allow', // allow admin user to perform 'admin' and 'delete' actions +// 'actions'=>array(), +// 'users'=>array('admin'), +// ), + array('deny', // deny everythign else to all users + 'users'=>array('*'), + ), + ); + } + + /** + * Displays a particular model. + * @param integer $id the ID of the model to be displayed + */ + public function actionView($id) + { + $this->render('view',array( + 'model'=>$this->loadModel($id), + )); + } + + /** + * Creates a new model. + * If creation is successful, the browser will be redirected to the 'view' page. + */ + public function actionCreate() + { + $this->layout = '//layouts/column2'; + + $model=new BlogPost; + + // Uncomment the following line if AJAX validation is needed + // $this->performAjaxValidation($model); + + if (isset($_POST['BlogPost'])) { + $model->attributes=$_POST['BlogPost']; + if ($model->save()) { + $this->redirect(array('view','id'=>$model->ID)); + } + } + + $this->render('create',array( + 'model'=>$model, + )); + } + + /** + * Updates a particular model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id the ID of the model to be updated + */ + public function actionUpdate($id) + { + $this->layout = '//layouts/column2'; + + $model=$this->loadModel($id); + + // Uncomment the following line if AJAX validation is needed + // $this->performAjaxValidation($model); + + if (isset($_POST['BlogPost'])) { + $model->attributes=$_POST['BlogPost']; + if ($model->save()) { + $this->redirect(array('view','id'=>$model->ID)); + } + } + + $this->render('update',array( + 'model'=>$model, + )); + } + + /** + * Deletes a particular model. + * If deletion is successful, the browser will be redirected to the 'admin' page. + * @param integer $id the ID of the model to be deleted + * @throws CHttpException + */ + public function actionDelete($id) + { + $this->layout = '//layouts/column2'; + + $this->loadModel($id)->delete(); + + // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser + if (!isset($_GET['ajax'])) { + $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin')); + } + } + + /** + * Lists all models. + */ + public function actionIndex() + { + $criteria = new CDbCriteria; + $criteria->order = "Date DESC"; + + $all = BlogPost::model()->findAll($criteria); + + $this->render('index', + [ + 'blogposts' => $all, + ] + ); + } + + public function actionAjaxMarkdownPreview() { + if(Yii::app()->request->isAjaxRequest){ + $this->renderPartial('_ajaxMarkdownPreview', + [ + 'Content' => $_POST['Content'], + ], + false, true); + } else { + throw new CHttpException(400,'Invalid request. This is a Ajax only action.'); + } + } + + /** + * Manages all models. + */ + public function actionAdmin() + { + $this->layout = '//layouts/column2'; + + $model=new BlogPost('search'); + $model->unsetAttributes(); // clear any default values + if (isset($_GET['BlogPost'])) { + $model->attributes=$_GET['BlogPost']; + } + + $this->render('admin',array( + 'model'=>$model, + )); + } + + /** + * Returns the data model based on the primary key given in the GET variable. + * If the data model is not found, an HTTP exception will be raised. + * @param integer $id the ID of the model to be loaded + * @return BlogPost the loaded model + * @throws CHttpException + */ + public function loadModel($id) + { + $model=BlogPost::model()->findByPk($id); + if ($model===null) { + throw new CHttpException(404,'The requested page does not exist.'); + } + return $model; + } + + /** + * Performs the AJAX validation. + * @param BlogPost $model the model to be validated + */ + protected function performAjaxValidation($model) + { + if (isset($_POST['ajax']) && $_POST['ajax']==='blog-post-form') { + echo CActiveForm::validate($model); + Yii::app()->end(); + } + } +} \ No newline at end of file diff --git a/www/protected/controllers/MSMainController.php b/www/protected/controllers/MSMainController.php index 15d4124..fa22025 100644 --- a/www/protected/controllers/MSMainController.php +++ b/www/protected/controllers/MSMainController.php @@ -149,7 +149,5 @@ class MSMainController extends MSController $this->redirect(Yii::app()->homeUrl); } - public function actionLog($logid) { - - } + public function action } \ No newline at end of file diff --git a/www/protected/controllers/MsmainController.php b/www/protected/controllers/MsmainController.php new file mode 100644 index 0000000..fa22025 --- /dev/null +++ b/www/protected/controllers/MsmainController.php @@ -0,0 +1,153 @@ +array('index', 'about', 'debugerror', 'error', 'login', 'logout'), + 'users'=>array('*'), + ), + array('allow', + 'actions'=>array('admin'), + 'users'=>array('admin'), + ), + array('deny', + 'users'=>array('*'), + ), + ); + } + + public function actionIndex() + { + $criteria = new CDbCriteria; + $criteria->order = "date DESC"; + + $all_log = Log::model()->findAll($criteria); + /* @var $all_log Log[] */ + + $data = array(); + $data['program'] = ProgramHelper::GetDailyProg(); + $data['logs'] = $all_log; + + $this->render('index', $data); + } + + public function actionError() + { + if($error=Yii::app()->errorHandler->error) + { + if(Yii::app()->request->isAjaxRequest) + echo $error['message']; + else + $this->render('error', $error); + } + } + + public function actionDebugError() + { + if($error=Yii::app()->errorHandler->error) + { + if(Yii::app()->request->isAjaxRequest) + echo $error['message']; + else + $this->render('debugerror', $error); + } + } + + public function actionAbout() + { + $data = array(); + + $this->js_scripts[] = file_get_contents('protected/components/extendedGitGraph/script.js'); + + if(isset($_POST['SendMailForm'])) + { + $model = new SendMailForm(); + + $model->attributes=$_POST['SendMailForm']; + + if($model->validate()) { + if ($model->send()) + { + $data['alerts_success'][] = "Successfully send mail from " . $model->name; + $data['model'] = new SendMailForm(); + } + else + { + $data['alerts_error'][] = "Internal error while sending mail"; + $data['model'] = $model; + } + + } + else + { + $data['model'] = $model; + } + } + else + { + $data['model'] = new SendMailForm(); + } + + $this->render('about', $data); + } + + public function actionLogin() + { + $model = new LoginForm(); + + // if it is ajax validation request + if(isset($_POST['ajax']) && $_POST['ajax']==='login-form') + { + echo TbActiveForm::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)); + } + + public function actionAdmin() + { + if (isset($_GET['do_egh_update']) && $_GET['do_egh_update'] == '1') { + $this->layout = null; + $this->render('admin_updateEGH', array()); + return; + } + + $this->render('admin', array()); + } + + public function actionLogout() + { + Yii::app()->user->logout(); + $this->redirect(Yii::app()->homeUrl); + } + + public function action +} \ No newline at end of file diff --git a/www/protected/controllers/ProgramupdatesController.php b/www/protected/controllers/ProgramupdatesController.php new file mode 100644 index 0000000..a577955 --- /dev/null +++ b/www/protected/controllers/ProgramupdatesController.php @@ -0,0 +1,127 @@ +array('index','view','create','update','admin','delete'), + 'users'=>array('admin'), + ), + array('deny', // deny all users + 'users'=>array('*'), + ), + ); + } + + public function actionView($id) + { + $this->render('view',array( + 'model'=>$this->loadModel($id), + )); + } + + public function actionCreate() + { + $model=new ProgramUpdates; + + // Uncomment the following line if AJAX validation is needed + // $this->performAjaxValidation($model); + + if (isset($_POST['ProgramUpdates'])) { + $model->attributes=$_POST['ProgramUpdates']; + if ($model->save()) { + $this->redirect(array('view','id'=>$model->Name)); + } + } + + $this->render('create',array( + 'model'=>$model, + )); + } + + public function actionUpdate($id) + { + $model=$this->loadModel($id); + + // Uncomment the following line if AJAX validation is needed + // $this->performAjaxValidation($model); + + if (isset($_POST['ProgramUpdates'])) { + $model->attributes=$_POST['ProgramUpdates']; + if ($model->save()) { + $this->redirect(array('view','id'=>$model->Name)); + } + } + + $this->render('update',array( + 'model'=>$model, + )); + } + + public function actionDelete($id) + { + if (Yii::app()->request->isPostRequest) { + // we only allow deletion via POST request + $this->loadModel($id)->delete(); + + // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser + if (!isset($_GET['ajax'])) { + $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin')); + } + } else { + throw new CHttpException(400,'Invalid request. Please do not repeat this request again.'); + } + } + + public function actionIndex() + { + $dataProvider=new CActiveDataProvider('ProgramUpdates'); + $this->render('index',array( + 'dataProvider'=>$dataProvider, + )); + } + + public function actionAdmin() + { + $model=new ProgramUpdates('search'); + $model->unsetAttributes(); // clear any default values + if (isset($_GET['ProgramUpdates'])) { + $model->attributes=$_GET['ProgramUpdates']; + } + + $this->render('admin',array( + 'model'=>$model, + )); + } + + public function loadModel($id) + { + $model=ProgramUpdates::model()->findByPk($id); + if ($model===null) { + throw new CHttpException(404,'The requested page does not exist.'); + } + return $model; + } + + protected function performAjaxValidation($model) + { + if (isset($_POST['ajax']) && $_POST['ajax']==='program-updates-form') { + echo CActiveForm::validate($model); + Yii::app()->end(); + } + } +} \ No newline at end of file diff --git a/www/protected/views/blogpost/_ajaxMarkdownPreview.php b/www/protected/views/blogpost/_ajaxMarkdownPreview.php new file mode 100644 index 0000000..44b06c4 --- /dev/null +++ b/www/protected/views/blogpost/_ajaxMarkdownPreview.php @@ -0,0 +1,3 @@ + + +
Fields with * are required.
+ + errorSummary($model); ?> + + isNewRecord) + echo $form->textFieldControlGroup($model,'Date',array('span'=>5, 'value' => date('Y-m-d'))); + else + echo $form->textFieldControlGroup($model,'Date',array('span'=>5, )); + ?> + + textFieldControlGroup($model,'Title',array('span'=>8)); ?> + + textAreaControlGroup($model,'Content',array('rows'=>30,'span'=>8)); ?> + + 'POST', + 'data' => ['Content' => 'js: $("#BlogPost_Content").val()'], + 'update' => '#markdownAjaxContent', + 'error'=>'function(msg){alert("An error has happened" + JSON.stringify(msg));}', + ]); ?> + ++ You may optionally enter a comparison operator (<, <=, >, >=, + <> +or =) at the beginning of each of your search values to specify how the comparison should be done. +
+ +'search-button btn')); ?> + + +widget('bootstrap.widgets.TbGridView',array( + 'id'=>'blog-post-grid', + 'dataProvider'=>$model->search(), + 'filter'=>$model, + 'columns'=>array( + 'ID', + 'Date', + 'Title', + array( + 'class'=>'bootstrap.widgets.TbButtonColumn', + ), + ), +)); ?> \ No newline at end of file diff --git a/www/protected/views/blogpost/create.php b/www/protected/views/blogpost/create.php new file mode 100644 index 0000000..5120efa --- /dev/null +++ b/www/protected/views/blogpost/create.php @@ -0,0 +1,20 @@ + + +breadcrumbs=array( + 'Blog Posts'=>array('index'), + 'Create', +); + +$this->menu=array( + array('label'=>'List BlogPost', 'url'=>array('index')), + array('label'=>'Manage BlogPost', 'url'=>array('admin')), +); +?> + +rank | +points | +name | +||
$current | "; + echo "$entry->POINTS | "; + echo "$entry->PLAYER | "; + echo "||
ID&start=$more&highlight=$highlight" . '">[more points] | '; + else + echo ''; + echo ' | '; + if ($start + $pagesize < count($game->ENTRIES)) + echo ' | ID&start=$less&highlight=$highlight" . '">[less points] | '; + else + echo ''; + echo ' |