1
0

Changed {{core.ignorecase}} to false

// git config --unset-all core.ignorecase false
This commit is contained in:
Mike Schwörer 2014-07-30 20:10:00 +02:00
parent a287b1b1a5
commit c4692fee0a
17 changed files with 966 additions and 3 deletions

View File

@ -0,0 +1,59 @@
<?php
class APIController extends MSController
{
public $layout = false;
/**
* @return array action filters
*/
public function filters()
{
return array(
'accessControl',
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules()
{
return array(
array('allow',
'users'=>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', []);
}
}

View File

@ -0,0 +1,197 @@
<?php
class BlogPostController extends MSController
{
public $menu=array();
/**
* @return array action filters
*/
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>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();
}
}
}

View File

@ -149,7 +149,5 @@ class MSMainController extends MSController
$this->redirect(Yii::app()->homeUrl);
}
public function actionLog($logid) {
}
public function action
}

View File

@ -0,0 +1,153 @@
<?php
class MSMainController extends MSController
{
/**
* @return array action filters
*/
public function filters()
{
return array(
'accessControl',
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules()
{
return array(
array('allow',
'actions'=>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
}

View File

@ -0,0 +1,127 @@
<?php
class ProgramUpdatesController extends MSController
{
public $menu=array();
public $layout='//layouts/column2';
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
'postOnly + delete', // we only allow deletion via POST request
);
}
public function accessRules()
{
return array(
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>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();
}
}
}

View File

@ -0,0 +1,3 @@
<?php
echo ParsedownHelper::parse($Content);

View File

@ -0,0 +1,57 @@
<?php
/* @var $this BlogPostController */
/* @var $model BlogPost */
/* @var $form TbActiveForm */
?>
<div class="form">
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'blog-post-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>false,
)); ?>
<p class="help-block">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<?php
if ($model->isNewRecord)
echo $form->textFieldControlGroup($model,'Date',array('span'=>5, 'value' => date('Y-m-d')));
else
echo $form->textFieldControlGroup($model,'Date',array('span'=>5, ));
?>
<?php echo $form->textFieldControlGroup($model,'Title',array('span'=>8)); ?>
<?php echo $form->textAreaControlGroup($model,'Content',array('rows'=>30,'span'=>8)); ?>
<?php echo MsHtml::ajaxButton ("Preview", CController::createUrl('blog/ajaxMarkdownPreview'),
[
'type'=>'POST',
'data' => ['Content' => 'js: $("#BlogPost_Content").val()'],
'update' => '#markdownAjaxContent',
'error'=>'function(msg){alert("An error has happened" + JSON.stringify(msg));}',
]); ?>
<br>
<br>
<div class="well markdownOwner" id="markdownAjaxContent">
<?php $this->renderPartial('_ajaxMarkdownPreview', ['Content' => $model->Content, ], false, true); ?>
</div>
<div class="form-actions">
<?php echo TbHtml::submitButton($model->isNewRecord ? 'Create' : 'Save',array(
'color'=>TbHtml::BUTTON_COLOR_PRIMARY,
'size'=>TbHtml::BUTTON_SIZE_LARGE,
)); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->

View File

@ -0,0 +1,26 @@
<?php
/* @var $this BlogPostController */
/* @var $model BlogPost */
/* @var $form CActiveForm */
?>
<div class="wide form">
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'action'=>Yii::app()->createUrl($this->route),
'method'=>'get',
)); ?>
<?php echo $form->textFieldControlGroup($model,'ID',array('span'=>5)); ?>
<?php echo $form->textFieldControlGroup($model,'Date',array('span'=>5)); ?>
<?php echo $form->textAreaControlGroup($model,'Content',array('rows'=>6,'span'=>8)); ?>
<div class="form-actions">
<?php echo TbHtml::submitButton('Search', array('color' => TbHtml::BUTTON_COLOR_PRIMARY,));?>
</div>
<?php $this->endWidget(); ?>
</div><!-- search-form -->

View File

@ -0,0 +1,25 @@
<?php
/* @var $this BlogPostController */
/* @var $data BlogPost */
?>
<div class="view">
<b><?php echo CHtml::encode($data->getAttributeLabel('ID')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->ID),array('view','id'=>$data->ID)); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('Date')); ?>:</b>
<?php echo CHtml::encode($data->Date); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('Title')); ?>:</b>
<?php echo CHtml::encode($data->Title); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('Content')); ?>:</b>
<?php echo CHtml::encode($data->Content); ?>
<br />
</div>

View File

@ -0,0 +1,57 @@
<?php
/* @var $this BlogPostController */
/* @var $model BlogPost */
$this->breadcrumbs=array(
'Blog Posts'=>array('index'),
'Manage',
);
$this->menu=array(
array('label'=>'List BlogPost', 'url'=>array('index')),
array('label'=>'Create BlogPost', 'url'=>array('create')),
);
Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
$('.search-form').toggle();
return false;
});
$('.search-form form').submit(function(){
$('#blog-post-grid').yiiGridView('update', {
data: $(this).serialize()
});
return false;
});
");
?>
<h1>Manage Blog Posts</h1>
<p>
You may optionally enter a comparison operator (<b>&lt;</b>, <b>&lt;=</b>, <b>&gt;</b>, <b>&gt;=</b>, <b>
&lt;&gt;</b>
or <b>=</b>) at the beginning of each of your search values to specify how the comparison should be done.
</p>
<?php echo CHtml::link('Advanced Search','#',array('class'=>'search-button btn')); ?>
<div class="search-form" style="display:none">
<?php $this->renderPartial('_search',array(
'model'=>$model,
)); ?>
</div><!-- search-form -->
<?php $this->widget('bootstrap.widgets.TbGridView',array(
'id'=>'blog-post-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'ID',
'Date',
'Title',
array(
'class'=>'bootstrap.widgets.TbButtonColumn',
),
),
)); ?>

View File

@ -0,0 +1,20 @@
<?php
/* @var $this BlogPostController */
/* @var $model BlogPost */
?>
<?php
$this->breadcrumbs=array(
'Blog Posts'=>array('index'),
'Create',
);
$this->menu=array(
array('label'=>'List BlogPost', 'url'=>array('index')),
array('label'=>'Manage BlogPost', 'url'=>array('admin')),
);
?>
<h1>Create BlogPost</h1>
<?php $this->renderPartial('_form', array('model'=>$model)); ?>

View File

@ -0,0 +1,36 @@
<?php
/* @var $this BlogPostController */
/* @var $blogposts BlogPost[] */
?>
<?php
$this->pageTitle = 'Blog - ' . Yii::app()->name;
$this->breadcrumbs = array(
'Blog' => array('/blog'),
);
$this->selectedNav = 'blog';
?>
<div class="container">
<?php echo MsHtml::pageHeader("Blog", "My personal programming blog"); ?>
<?php
$i = 0;
foreach($blogposts as $blogpost) {
$i++;
$this->widget('BlogLink',
[
'date' => new DateTime($blogpost->Date),
'caption' => $blogpost->Title,
'link' => $blogpost->getLink(),
]);
}
?>
</div>

View File

@ -0,0 +1,26 @@
<?php
/* @var $this BlogPostController */
/* @var $model BlogPost */
?>
<?php
$this->pageTitle = 'Update Blogpost - ' . Yii::app()->name;
$this->breadcrumbs = array(
'BlogPosts' => array('index'),
$model->Title => array('/blog/view/' . $model->ID),
'Update',
);
$this->menu=array(
array('label'=>'List BlogPost', 'url'=>array('index')),
array('label'=>'Create BlogPost', 'url'=>array('create')),
array('label'=>'View BlogPost', 'url'=>array('view', 'id'=>$model->ID)),
array('label'=>'Manage BlogPost', 'url'=>array('admin')),
);
?>
<h1>Update BlogPost <?php echo $model->ID; ?></h1>
<?php $this->renderPartial('_form', array('model'=>$model)); ?>

View File

@ -0,0 +1,33 @@
<?php
/* @var $this BlogPostController */
/* @var $model BlogPost */
?>
<?php
$this->pageTitle = 'Blogpost: ' . $model->Title . ' - ' . Yii::app()->name;
$this->breadcrumbs = array(
'Blog' => array('/blog'),
$model->Title,
);
?>
<div class="container">
<?php echo MsHtml::pageHeader("Blog", "My personal programming blog"); ?>
<div class="blogOwner well markdownOwner" id="markdownAjaxContent">
<?php echo ParsedownHelper::parse($model->Content); ?>
<div class="blogFooter">
<div class="blogFooterLeft">
<?php echo $model->Title; ?>
</div>
<div class="blogFooterRight">
<?php echo $model->getDateTime()->format('d.m.Y'); ?>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,8 @@
<?php
/* @var $this HighscoresController */
/* @var $game HighscoreGames */
for ($i = 0; $i < 50; $i++)
{
print($game->ENTRIES[$i]->POINTS . '||' . htmlentities($game->ENTRIES[$i]->PLAYER) . "\r\n");
}

View File

@ -0,0 +1,102 @@
<?php
/* @var $this HighscoresController */
/* @var $game HighscoreGames */
/* @var $start int */
/* @var $highlight int */
/* @var $pagesize int */
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta charset="utf-8"/>
<title>highscores</title>
<style type="text/css">
<!--
body {
background-color: #DDF;
padding: 1em 1em 0em;
}
table {
margin: auto;
width: 80%;
text-align: center;
border-spacing: 0px;
}
table td { padding: 2px 0px; }
table td { width: 25%; }
table td:last-child { width: 50%; }
caption {
font-weight: bolder;
text-decoration: underline;
font-size: x-large;
}
a {
color: #008;
text-decoration: underline;
}
a:hover { text-decoration: none; }
#headline > td { text-decoration: underline; }
#highlight {
font-weight: bolder;
background-color: #CCF;
}
-->
</style>
</head>
<body>
<table>
<caption><?php echo $game->NAME; ?></caption>
<tr id="headline" >
<td>rank</td>
<td>points</td>
<td>name</td>
</tr>
<?php
$current = 0;
foreach ($game->ENTRIES as $entry)
{
$current++;
if ($current >= $start && $current - $start <= $pagesize)
{
if ($current == $highlight)
echo '<tr id="highlight">';
else
echo "<tr>";
echo "<td>$current</td>";
echo "<td>$entry->POINTS</td>";
echo "<td>$entry->PLAYER</td>";
echo "</tr>";
}
}
$more = max(0, $start - $pagesize);
$less = $start + $pagesize;
echo '<tr>';
if ($start > 0)
echo '<td><a href="' . "/Highscores/list?gameid=$game->ID&start=$more&highlight=$highlight" . '">[more points]</a></td>';
else
echo '<td></td>';
echo '<td></td>';
if ($start + $pagesize < count($game->ENTRIES))
echo '<td><a href="' . "/Highscores/list?gameid=$game->ID&start=$less&highlight=$highlight" . '">[less points]</a></td>';
else
echo '<td></td>';
echo '</tr>';
?>
</table>
</body>
</html>

View File

@ -0,0 +1,36 @@
<?php
/* @var $this HighscoresController */
/* @var $games HighscoreGames[] */
?>
<html>
<head>
<meta charset="utf-8"/>
<title>highscores</title>
<style type="text/css">
<!--
body {
background-color: #DDF;
padding: 1em 1em 0em;
}
a {
color: #008;
text-decoration: underline;
}
a:hover { text-decoration: none; }
-->
</style>
</head>
<body>
<?php
foreach ($games as $game)
{
echo '<a href="' . $game->getListLink() . '">' . $game->NAME . '</a><br>' . "\r\n";
}
?>
</body>
</html>