diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 41467d0..745b1e4 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,13 +2,13 @@
-
-
-
-
-
+
+
+
+
+
@@ -63,28 +63,55 @@
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -103,12 +130,6 @@
-
-
-
-
-
-
@@ -116,7 +137,6 @@
-
@@ -132,14 +152,9 @@
-
-
-
-
-
@@ -147,13 +162,25 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -300,146 +327,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -484,7 +371,37 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -669,16 +586,16 @@
-
-
+
+
-
+
-
+
@@ -719,61 +636,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -796,23 +663,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -830,11 +683,6 @@
-
-
-
-
-
@@ -845,16 +693,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -865,35 +703,14 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -903,14 +720,7 @@
-
-
-
-
-
-
-
-
+
@@ -920,28 +730,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -954,11 +742,6 @@
-
-
-
-
-
@@ -974,6 +757,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -983,19 +820,138 @@
-
+
-
+
-
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/www/css/styles.css b/www/css/styles.css
index 6e4720d..5f9d872 100644
--- a/www/css/styles.css
+++ b/www/css/styles.css
@@ -106,6 +106,18 @@ ul.nav li.dropdown-append:hover > ul.dropdown-menu {
text-decoration: none;
}
+.thumbnail a:active,
+.thumbnail a:visited,
+.thumbnail a:link {
+ color: #95A5A6;
+ text-decoration: none;
+}
+
+.thumbnail a:hover {
+ color: #1ABC9C;
+ text-decoration: none;
+}
+
.thumbnailParentSpan {
width: 270px;
}
diff --git a/www/images/log/captcha_img.png b/www/images/log/captcha_img.png
new file mode 100644
index 0000000..f3e16b5
Binary files /dev/null and b/www/images/log/captcha_img.png differ
diff --git a/www/protected/components/widgets/views/thumbnailProgPreview.php b/www/protected/components/widgets/views/thumbnailProgPreview.php
index 661ab38..ddd6590 100644
--- a/www/protected/components/widgets/views/thumbnailProgPreview.php
+++ b/www/protected/components/widgets/views/thumbnailProgPreview.php
@@ -32,7 +32,7 @@
category)) {
echo MsHtml::icon(MsHtml::ICON_TAG);
- echo $this->category . '';
+ echo MsHtml::link($this->category . '', '/programs/cat/' . $this->category);
}
?>
diff --git a/www/protected/config/main.php b/www/protected/config/main.php
index 33f2e99..327823e 100644
--- a/www/protected/config/main.php
+++ b/www/protected/config/main.php
@@ -66,7 +66,8 @@ return ArrayX::merge(
'showScriptName' => false,
'rules' =>
[
- 'programs/' => 'programs/index',
+ 'programs/' => ['programs/index', 'defaultParams' => ['categoryfilter' => '']],
+ 'programs/cat/' => ['programs/index', 'defaultParams' => ['categoryfilter' => '']],
'programs/view/' => 'programs/view',
'log/' => ['log/index', 'defaultParams' => ['logid' => '-1']],
diff --git a/www/protected/controllers/ProgramsController.php b/www/protected/controllers/ProgramsController.php
index 5035245..c18da37 100644
--- a/www/protected/controllers/ProgramsController.php
+++ b/www/protected/controllers/ProgramsController.php
@@ -144,7 +144,7 @@ class ProgramsController extends MSController
/**
* Lists all models.
*/
- public function actionIndex()
+ public function actionIndex($categoryfilter)
{
$this->layout = '//layouts/main';
@@ -156,7 +156,10 @@ class ProgramsController extends MSController
$criteria = new CDbCriteria;
$criteria->order = "Sterne DESC, add_date DESC";
- $criteria->condition = "visible=1";
+ if (! empty($categoryfilter))
+ $criteria->addCondition("Kategorie = :cat");
+ $criteria->params[':cat'] = $categoryfilter;
+ $criteria->addCondition("visible=1");
$all = Program::model()->findAll($criteria);
/* @var $all Program[] */
@@ -182,6 +185,7 @@ class ProgramsController extends MSController
$data['pagecount'] = $pagecount;
$data['rowcount'] = $rowcount;
$data['data'] = $progdata;
+ $data['category'] = $categoryfilter;
$this->render('index', $data);
}
diff --git a/www/protected/models/Log.php b/www/protected/models/Log.php
index 21d8a6d..e0559d9 100644
--- a/www/protected/models/Log.php
+++ b/www/protected/models/Log.php
@@ -81,6 +81,7 @@ class Log extends CActiveRecord
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
+ 'sort'=>[ 'defaultOrder'=>'date ASC' ],
));
}
diff --git a/www/protected/models/Program.php b/www/protected/models/Program.php
index 8cf1ef2..b7b2a7c 100644
--- a/www/protected/models/Program.php
+++ b/www/protected/models/Program.php
@@ -44,7 +44,7 @@ class Program extends CActiveRecord
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
- array('Name, Thumbnailname, Downloads, Kategorie, Sterne, enabled, visible, Language, programming_lang, Description, add_date, download_url, sourceforge_url, homepage_url, github_url, uses_absCanv, update_identifier', 'required'),
+ array('Name, Thumbnailname, Downloads, Kategorie, Sterne, enabled, visible, Language, programming_lang, Description, add_date, uses_absCanv', 'required'),
array('enabled, visible, uses_absCanv, highscore_gid', 'numerical', 'integerOnly'=>true),
array('Downloads, Sterne', 'numerical'),
array('update_identifier', 'length', 'max'=>64),
@@ -86,7 +86,7 @@ class Program extends CActiveRecord
'enabled' => 'Enabled',
'visible' => 'Visible',
'Language' => 'Language',
- 'programming_lang' => 'programming_lang',
+ 'programming_lang' => 'programming Language',
'Description' => 'Description',
'add_date' => 'Add Date',
'download_url' => 'Download Url',
diff --git a/www/protected/views/log/_ajaxMarkdownPreview.php b/www/protected/views/log/_ajaxMarkdownPreview.php
index b35821e..03f0693 100644
--- a/www/protected/views/log/_ajaxMarkdownPreview.php
+++ b/www/protected/views/log/_ajaxMarkdownPreview.php
@@ -1,6 +1,6 @@
beginWidget('CMarkdown');
+$this->beginWidget('CMarkdown', array('purifyOutput'=>true));
echo $content;
diff --git a/www/protected/views/log/_form.php b/www/protected/views/log/_form.php
index cb3b7e3..be6a5d2 100644
--- a/www/protected/views/log/_form.php
+++ b/www/protected/views/log/_form.php
@@ -19,7 +19,12 @@
errorSummary($model); ?>
- textFieldControlGroup($model,'date',array('span'=>5, 'value'=>date('Y-m-d'))); ?>
+ isNewRecord)
+ echo $form->textFieldControlGroup($model,'date',array('span'=>5, 'value' => date('Y-m-d')));
+ else
+ echo $form->textFieldControlGroup($model,'date',array('span'=>5, ));
+ ?>
textAreaControlGroup($model,'title',array('rows'=>6,'span'=>8)); ?>
diff --git a/www/protected/views/log/admin.php b/www/protected/views/log/admin.php
index ef30147..bba1e6f 100644
--- a/www/protected/views/log/admin.php
+++ b/www/protected/views/log/admin.php
@@ -47,6 +47,7 @@ or = ) at the beginning of each of your search values to specify how the c
'id'=>'log-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
+
'columns'=>array(
'ID',
'date',
diff --git a/www/protected/views/programs/_form.php b/www/protected/views/programs/_form.php
index 91b0d34..36c2f5e 100644
--- a/www/protected/views/programs/_form.php
+++ b/www/protected/views/programs/_form.php
@@ -37,6 +37,8 @@
textAreaControlGroup($model,'Description',array('rows'=>6,'span'=>8)); ?>
+ textFieldControlGroup($model,'programming_lang',array('rows'=>6,'span'=>8)); ?>
+
textFieldControlGroup($model,'add_date',array('span'=>5)); ?>
textFieldControlGroup($model,'download_url',array('rows'=>6,'span'=>8)); ?>
diff --git a/www/protected/views/programs/index.php b/www/protected/views/programs/index.php
index 4cedba7..31bd69f 100644
--- a/www/protected/views/programs/index.php
+++ b/www/protected/views/programs/index.php
@@ -1,9 +1,10 @@
pageTitle = 'Programs - ' . Yii::app()->name;
$this->breadcrumbs = array(
- 'Programs',
- );
+ 'Programs',
+);
?>
-
+
';
- foreach($datarow as $dataelem) {
+ foreach ($datarow as $dataelem) {
/* @var $dataelem Program */
$this->widget('ThumbnailProgPreview',
[
@@ -53,11 +59,11 @@ $this->breadcrumbs = array(
if ($pagecount > 1) {
$pagination_arr = array();
- $pagination_arr[] = ['label' => '«', 'url' => '?page=' . ($page-1), 'disabled' => ($page <= 1)];
- for($i = 1; $i <= $pagecount; $i++) {
+ $pagination_arr[] = ['label' => '«', 'url' => '?page=' . ($page - 1), 'disabled' => ($page <= 1)];
+ for ($i = 1; $i <= $pagecount; $i++) {
$pagination_arr[] = ['label' => $i, 'url' => '?page=' . $i, 'active' => ($i == $page)];
}
- $pagination_arr[] = ['label' => '»', 'url' => '?page=' . ($page+1), 'disabled' => ($page >= $pagecount)];
+ $pagination_arr[] = ['label' => '»', 'url' => '?page=' . ($page + 1), 'disabled' => ($page >= $pagecount)];
echo MsHtml::pagination($pagination_arr,
[
diff --git a/www/protected/views/programs/view.php b/www/protected/views/programs/view.php
index d42b65e..fe39e5b 100644
--- a/www/protected/views/programs/view.php
+++ b/www/protected/views/programs/view.php
@@ -20,6 +20,9 @@ if (!$model->visible && Yii::app()->user->name != 'admin') {
?>
+ enabled) echo TbHtml::alert(TbHtml::ALERT_COLOR_WARNING, TbHtml::b('Warning!') . ' This programm is for normal users disabled'); ?>
+ visible) echo TbHtml::alert(TbHtml::ALERT_COLOR_WARNING, TbHtml::b('Warning!') . ' This programm is for normal users invisible'); ?>
+
@@ -50,6 +53,10 @@ if (!$model->visible && Yii::app()->user->name != 'admin') {
version->Version, array('color' => TbHtml::BADGE_COLOR_INFO)); ?>
+