diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 4616f4d..da7a247 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,13 +2,13 @@ - - - + + + @@ -63,15 +63,47 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -89,13 +121,18 @@ @@ -177,7 +214,6 @@ - @@ -254,6 +290,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -407,6 +602,7 @@ + @@ -494,29 +690,29 @@ - + - + - - + - - + + + + - - + @@ -541,97 +737,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -677,11 +782,6 @@ - - - - - @@ -737,21 +837,9 @@ - - - - - - - - - - - - - + @@ -759,11 +847,6 @@ - - - - - @@ -776,11 +859,6 @@ - - - - - @@ -788,48 +866,192 @@ - - - - - - - - - - - - - - - + - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/css/ie.css b/www/css/ie.css new file mode 100644 index 0000000..f015399 --- /dev/null +++ b/www/css/ie.css @@ -0,0 +1,36 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 1.0.1 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* ie.css */ +body {text-align:center;} +.container {text-align:left;} +* html .column, * html .span-1, * html .span-2, * html .span-3, * html .span-4, * html .span-5, * html .span-6, * html .span-7, * html .span-8, * html .span-9, * html .span-10, * html .span-11, * html .span-12, * html .span-13, * html .span-14, * html .span-15, * html .span-16, * html .span-17, * html .span-18, * html .span-19, * html .span-20, * html .span-21, * html .span-22, * html .span-23, * html .span-24 {display:inline;overflow-x:hidden;} +* html legend {margin:0px -8px 16px 0;padding:0;} +sup {vertical-align:text-top;} +sub {vertical-align:text-bottom;} +html>body p code {*white-space:normal;} +hr {margin:-8px auto 11px;} +img {-ms-interpolation-mode:bicubic;} +.clearfix, .container {display:inline-block;} +* html .clearfix, * html .container {height:1%;} +fieldset {padding-top:0;} +legend {margin-top:-0.2em;margin-bottom:1em;margin-left:-0.5em;} +textarea {overflow:auto;} +label {vertical-align:middle;position:relative;top:-0.25em;} +input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;} +input.text:focus, input.title:focus {border-color:#666;} +input.text, input.title, textarea, select {margin:0.5em 0;} +input.checkbox, input.radio {position:relative;top:.25em;} +form.inline div, form.inline p {vertical-align:middle;} +form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;} +button, input.button {position:relative;top:0.25em;} \ No newline at end of file diff --git a/www/css/print.css b/www/css/print.css new file mode 100644 index 0000000..bd79afd --- /dev/null +++ b/www/css/print.css @@ -0,0 +1,29 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 1.0.1 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* print.css */ +body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;} +.container {background:none;} +hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;} +hr.space {background:#fff;color:#fff;visibility:hidden;} +h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;} +code {font:.9em "Courier New", Monaco, Courier, monospace;} +a img {border:none;} +p img.top {margin-top:0;} +blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;} +.small {font-size:.9em;} +.large {font-size:1.1em;} +.quiet {color:#999;} +.hide {display:none;} +a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} +a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;} \ No newline at end of file diff --git a/www/css/screen.css b/www/css/screen.css new file mode 100644 index 0000000..7824d07 --- /dev/null +++ b/www/css/screen.css @@ -0,0 +1,238 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 1.0.1 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* reset.css */ +html {margin:0;padding:0;border:0;} +body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;} +article, aside, details, figcaption, figure, dialog, footer, header, hgroup, menu, nav, section {display:block;} +body {line-height:1.5;background:white;} +table {border-collapse:separate;border-spacing:0;} +caption, th, td {text-align:left;font-weight:normal;float:none !important;} +table, th, td {vertical-align:middle;} +blockquote:before, blockquote:after, q:before, q:after {content:'';} +blockquote, q {quotes:"" "";} +a img {border:none;} +:focus {outline:0;} + +/* typography.css */ +html {font-size:100.01%;} +body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;} +h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;} +h1 {font-size:2em;line-height:1;margin-bottom:0.5em;} +h2 {font-size:1.6em;margin-bottom:0.75em;} +h3 {font-size:1.4em;line-height:1;margin-bottom:1em;} +h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;} +h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;} +h6 {font-size:1em;font-weight:bold;} +h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;} +p {margin:0 0 1.5em;} +.left {float:left !important;} +p .left {margin:1.5em 1.5em 1.5em 0;padding:0;} +.right {float:right !important;} +p .right {margin:1.5em 0 1.5em 1.5em;padding:0;} +a:focus, a:hover {color:#09f;} +a {color:#06c;text-decoration:underline;} +blockquote {margin:1.5em;color:#666;font-style:italic;} +strong, dfn {font-weight:bold;} +em, dfn {font-style:italic;} +sup, sub {line-height:0;} +abbr, acronym {border-bottom:1px dotted #666;} +address {margin:0 0 1.5em;font-style:italic;} +del {color:#666;} +pre {margin:1.5em 0;white-space:pre;} +pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;} +li ul, li ol {margin:0;} +ul, ol {margin:0 1.5em 1.5em 0;padding-left:1.5em;} +ul {list-style-type:disc;} +ol {list-style-type:decimal;} +dl {margin:0 0 1.5em 0;} +dl dt {font-weight:bold;} +dd {margin-left:1.5em;} +table {margin-bottom:1.4em;width:100%;} +th {font-weight:bold;} +thead th {background:#c3d9ff;} +th, td, caption {padding:4px 10px 4px 5px;} +tfoot {font-style:italic;} +caption {background:#eee;} +.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;} +.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;} +.hide {display:none;} +.quiet {color:#666;} +.loud {color:#000;} +.highlight {background:#ff0;} +.added {background:#060;color:#fff;} +.removed {background:#900;color:#fff;} +.first {margin-left:0;padding-left:0;} +.last {margin-right:0;padding-right:0;} +.top {margin-top:0;padding-top:0;} +.bottom {margin-bottom:0;padding-bottom:0;} + +/* grid.css */ +.container {width:950px;margin:0 auto;} +.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 {float:left;margin-right:10px;} +.last {margin-right:0;} +.span-1 {width:30px;} +.span-2 {width:70px;} +.span-3 {width:110px;} +.span-4 {width:150px;} +.span-5 {width:190px;} +.span-6 {width:230px;} +.span-7 {width:270px;} +.span-8 {width:310px;} +.span-9 {width:350px;} +.span-10 {width:390px;} +.span-11 {width:430px;} +.span-12 {width:470px;} +.span-13 {width:510px;} +.span-14 {width:550px;} +.span-15 {width:590px;} +.span-16 {width:630px;} +.span-17 {width:670px;} +.span-18 {width:710px;} +.span-19 {width:750px;} +.span-20 {width:790px;} +.span-21 {width:830px;} +.span-22 {width:870px;} +.span-23 {width:910px;} +.span-24 {width:950px;margin-right:0;} +input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px;border-right-width:1px;padding-left:5px;padding-right:5px;} +input.span-1, textarea.span-1 {width:18px;} +input.span-2, textarea.span-2 {width:58px;} +input.span-3, textarea.span-3 {width:98px;} +input.span-4, textarea.span-4 {width:138px;} +input.span-5, textarea.span-5 {width:178px;} +input.span-6, textarea.span-6 {width:218px;} +input.span-7, textarea.span-7 {width:258px;} +input.span-8, textarea.span-8 {width:298px;} +input.span-9, textarea.span-9 {width:338px;} +input.span-10, textarea.span-10 {width:378px;} +input.span-11, textarea.span-11 {width:418px;} +input.span-12, textarea.span-12 {width:458px;} +input.span-13, textarea.span-13 {width:498px;} +input.span-14, textarea.span-14 {width:538px;} +input.span-15, textarea.span-15 {width:578px;} +input.span-16, textarea.span-16 {width:618px;} +input.span-17, textarea.span-17 {width:658px;} +input.span-18, textarea.span-18 {width:698px;} +input.span-19, textarea.span-19 {width:738px;} +input.span-20, textarea.span-20 {width:778px;} +input.span-21, textarea.span-21 {width:818px;} +input.span-22, textarea.span-22 {width:858px;} +input.span-23, textarea.span-23 {width:898px;} +input.span-24, textarea.span-24 {width:938px;} +.append-1 {padding-right:40px;} +.append-2 {padding-right:80px;} +.append-3 {padding-right:120px;} +.append-4 {padding-right:160px;} +.append-5 {padding-right:200px;} +.append-6 {padding-right:240px;} +.append-7 {padding-right:280px;} +.append-8 {padding-right:320px;} +.append-9 {padding-right:360px;} +.append-10 {padding-right:400px;} +.append-11 {padding-right:440px;} +.append-12 {padding-right:480px;} +.append-13 {padding-right:520px;} +.append-14 {padding-right:560px;} +.append-15 {padding-right:600px;} +.append-16 {padding-right:640px;} +.append-17 {padding-right:680px;} +.append-18 {padding-right:720px;} +.append-19 {padding-right:760px;} +.append-20 {padding-right:800px;} +.append-21 {padding-right:840px;} +.append-22 {padding-right:880px;} +.append-23 {padding-right:920px;} +.prepend-1 {padding-left:40px;} +.prepend-2 {padding-left:80px;} +.prepend-3 {padding-left:120px;} +.prepend-4 {padding-left:160px;} +.prepend-5 {padding-left:200px;} +.prepend-6 {padding-left:240px;} +.prepend-7 {padding-left:280px;} +.prepend-8 {padding-left:320px;} +.prepend-9 {padding-left:360px;} +.prepend-10 {padding-left:400px;} +.prepend-11 {padding-left:440px;} +.prepend-12 {padding-left:480px;} +.prepend-13 {padding-left:520px;} +.prepend-14 {padding-left:560px;} +.prepend-15 {padding-left:600px;} +.prepend-16 {padding-left:640px;} +.prepend-17 {padding-left:680px;} +.prepend-18 {padding-left:720px;} +.prepend-19 {padding-left:760px;} +.prepend-20 {padding-left:800px;} +.prepend-21 {padding-left:840px;} +.prepend-22 {padding-left:880px;} +.prepend-23 {padding-left:920px;} +.border {padding-right:4px;margin-right:5px;border-right:1px solid #ddd;} +.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #ddd;} +.pull-1 {margin-left:-40px;} +.pull-2 {margin-left:-80px;} +.pull-3 {margin-left:-120px;} +.pull-4 {margin-left:-160px;} +.pull-5 {margin-left:-200px;} +.pull-6 {margin-left:-240px;} +.pull-7 {margin-left:-280px;} +.pull-8 {margin-left:-320px;} +.pull-9 {margin-left:-360px;} +.pull-10 {margin-left:-400px;} +.pull-11 {margin-left:-440px;} +.pull-12 {margin-left:-480px;} +.pull-13 {margin-left:-520px;} +.pull-14 {margin-left:-560px;} +.pull-15 {margin-left:-600px;} +.pull-16 {margin-left:-640px;} +.pull-17 {margin-left:-680px;} +.pull-18 {margin-left:-720px;} +.pull-19 {margin-left:-760px;} +.pull-20 {margin-left:-800px;} +.pull-21 {margin-left:-840px;} +.pull-22 {margin-left:-880px;} +.pull-23 {margin-left:-920px;} +.pull-24 {margin-left:-960px;} +.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;} +.push-1 {margin:0 -40px 1.5em 40px;} +.push-2 {margin:0 -80px 1.5em 80px;} +.push-3 {margin:0 -120px 1.5em 120px;} +.push-4 {margin:0 -160px 1.5em 160px;} +.push-5 {margin:0 -200px 1.5em 200px;} +.push-6 {margin:0 -240px 1.5em 240px;} +.push-7 {margin:0 -280px 1.5em 280px;} +.push-8 {margin:0 -320px 1.5em 320px;} +.push-9 {margin:0 -360px 1.5em 360px;} +.push-10 {margin:0 -400px 1.5em 400px;} +.push-11 {margin:0 -440px 1.5em 440px;} +.push-12 {margin:0 -480px 1.5em 480px;} +.push-13 {margin:0 -520px 1.5em 520px;} +.push-14 {margin:0 -560px 1.5em 560px;} +.push-15 {margin:0 -600px 1.5em 600px;} +.push-16 {margin:0 -640px 1.5em 640px;} +.push-17 {margin:0 -680px 1.5em 680px;} +.push-18 {margin:0 -720px 1.5em 720px;} +.push-19 {margin:0 -760px 1.5em 760px;} +.push-20 {margin:0 -800px 1.5em 800px;} +.push-21 {margin:0 -840px 1.5em 840px;} +.push-22 {margin:0 -880px 1.5em 880px;} +.push-23 {margin:0 -920px 1.5em 920px;} +.push-24 {margin:0 -960px 1.5em 960px;} +.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:left;position:relative;} +div.prepend-top, .prepend-top {margin-top:1.5em;} +div.append-bottom, .append-bottom {margin-bottom:1.5em;} +.box {padding:1.5em;margin-bottom:1.5em;background:#e5eCf9;} +hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:1px;margin:0 0 17px;border:none;} +hr.space {background:#fff;color:#fff;visibility:hidden;} +.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;} +.clearfix, .container {display:block;} +.clear {clear:both;} diff --git a/www/protected/config/main.php b/www/protected/config/main.php index 14ce843..0f50c3c 100644 --- a/www/protected/config/main.php +++ b/www/protected/config/main.php @@ -33,6 +33,7 @@ return ArrayX::merge( 'bootstrap.components.*', 'bootstrap.behaviors.*', 'bootstrap.helpers.*', + 'bootstrap.widgets.*', ], 'modules' => @@ -64,8 +65,9 @@ return ArrayX::merge( 'rules' => [ - '' => 'site/index', - '' => 'site/', + + 'Programme/' => 'Programme/index', + 'Programme/' => 'programme/', 'gii' => 'gii', 'gii/' => 'gii/', @@ -73,7 +75,11 @@ return ArrayX::merge( //'/' => '/view', //'//' => '/', - '/' => '/', + //'/' => '/', + + + '' => 'site/index', + //'' => 'site/', ], ], diff --git a/www/protected/controllers/ProgrammeController.php b/www/protected/controllers/ProgrammeController.php new file mode 100644 index 0000000..20b786c --- /dev/null +++ b/www/protected/controllers/ProgrammeController.php @@ -0,0 +1,179 @@ +array('index','view','create','update','admin','delete'), + 'users'=>array('*'), + ), +// array('allow', // allow authenticated user to perform 'create' and 'update' actions +// 'actions'=>array('create','update'), +// 'users'=>array('@'), +// ), +// array('allow', // allow admin user to perform 'admin' and 'delete' actions +// 'actions'=>array('admin','delete'), +// 'users'=>array('admin'), +// ), +// array('deny', // deny 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() + { + $model=new Programme; + + // Uncomment the following line if AJAX validation is needed + // $this->performAjaxValidation($model); + + if (isset($_POST['Programme'])) { + $model->attributes=$_POST['Programme']; + 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) + { + $model=$this->loadModel($id); + + // Uncomment the following line if AJAX validation is needed + // $this->performAjaxValidation($model); + + if (isset($_POST['Programme'])) { + $model->attributes=$_POST['Programme']; + 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 + */ + 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.'); + } + } + + /** + * Lists all models. + */ + public function actionIndex() + { + $dataProvider=new CActiveDataProvider('Programme'); + $this->render('index',array( + 'dataProvider'=>$dataProvider, + )); + } + + /** + * Manages all models. + */ + public function actionAdmin() + { + $model=new Programme('search'); + $model->unsetAttributes(); // clear any default values + if (isset($_GET['Programme'])) { + $model->attributes=$_GET['Programme']; + } + + $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 Programme the loaded model + * @throws CHttpException + */ + public function loadModel($id) + { + $model=Programme::model()->findByPk($id); + if ($model===null) { + throw new CHttpException(404,'The requested page does not exist.'); + } + return $model; + } + + /** + * Performs the AJAX validation. + * @param Programme $model the model to be validated + */ + protected function performAjaxValidation($model) + { + if (isset($_POST['ajax']) && $_POST['ajax']==='programme-form') { + echo CActiveForm::validate($model); + Yii::app()->end(); + } + } +} \ No newline at end of file diff --git a/www/protected/models/Programme.php b/www/protected/models/Programme.php new file mode 100644 index 0000000..1700bd2 --- /dev/null +++ b/www/protected/models/Programme.php @@ -0,0 +1,144 @@ +true), + array('Downloads, Sterne', 'numerical'), + array('update_identifier', 'length', 'max'=>28), + // The following rule is used by search(). + // @todo Please remove those attributes that should not be searched. + array('ID, Name, Downloads, Kategorie, Sterne, enabled, visible, Language, Description, add_date, download_url, viewable_code, sourceforge_url, homepage_url, github_url, uses_absCanv, update_identifier, highscore_gid', 'safe', 'on'=>'search'), + ); + } + + /** + * @return array relational rules. + */ + public function relations() + { + // NOTE: you may need to adjust the relation name and the related + // class name for the relations automatically generated below. + return array( + ); + } + + /** + * @return array customized attribute labels (name=>label) + */ + public function attributeLabels() + { + return array( + 'ID' => 'ID', + 'Name' => 'Name', + 'Downloads' => 'Downloads', + 'Kategorie' => 'Kategorie', + 'Sterne' => 'Sterne', + 'enabled' => 'Enabled', + 'visible' => 'Visible', + 'Language' => 'Language', + 'Description' => 'Description', + 'add_date' => 'Add Date', + 'download_url' => 'Download Url', + 'viewable_code' => 'Viewable Code', + 'sourceforge_url' => 'Sourceforge Url', + 'homepage_url' => 'Homepage Url', + 'github_url' => 'Github Url', + 'uses_absCanv' => 'Uses Abs Canv', + 'update_identifier' => 'Update Identifier', + 'highscore_gid' => 'Highscore Gid', + ); + } + + /** + * Retrieves a list of models based on the current search/filter conditions. + * + * Typical usecase: + * - Initialize the model fields with values from filter form. + * - Execute this method to get CActiveDataProvider instance which will filter + * models according to data in model fields. + * - Pass data provider to CGridView, CListView or any similar widget. + * + * @return CActiveDataProvider the data provider that can return the models + * based on the search/filter conditions. + */ + public function search() + { + // @todo Please modify the following code to remove attributes that should not be searched. + + $criteria=new CDbCriteria; + + $criteria->compare('ID',$this->ID); + $criteria->compare('Name',$this->Name,true); + $criteria->compare('Downloads',$this->Downloads); + $criteria->compare('Kategorie',$this->Kategorie,true); + $criteria->compare('Sterne',$this->Sterne); + $criteria->compare('enabled',$this->enabled); + $criteria->compare('visible',$this->visible); + $criteria->compare('Language',$this->Language,true); + $criteria->compare('Description',$this->Description,true); + $criteria->compare('add_date',$this->add_date,true); + $criteria->compare('download_url',$this->download_url,true); + $criteria->compare('viewable_code',$this->viewable_code); + $criteria->compare('sourceforge_url',$this->sourceforge_url,true); + $criteria->compare('homepage_url',$this->homepage_url,true); + $criteria->compare('github_url',$this->github_url,true); + $criteria->compare('uses_absCanv',$this->uses_absCanv); + $criteria->compare('update_identifier',$this->update_identifier,true); + $criteria->compare('highscore_gid',$this->highscore_gid); + + return new CActiveDataProvider($this, array( + 'criteria'=>$criteria, + )); + } + + /** + * Returns the static model of the specified AR class. + * Please note that you should have this exact method in all your CActiveRecord descendants! + * @param string $className active record class name. + * @return Programme the static model class + */ + public static function model($className=__CLASS__) + { + return parent::model($className); + } +} diff --git a/www/protected/views/layouts/column2.php b/www/protected/views/layouts/column2.php new file mode 100644 index 0000000..1822777 --- /dev/null +++ b/www/protected/views/layouts/column2.php @@ -0,0 +1,35 @@ + +beginContent('//layouts/main'); ?> +
+
+
+
+ +
+ +
+
+
+ widget('bootstrap.widgets.TbNav', + [ + 'type' => TbHtml::NAV_TYPE_LIST, + 'items' => ArrayX::merge( + [ + ['label' => 'List header'], + ], + $this->menu) + ] + ); + ?> +
+ +
+
+
+endContent(); ?> \ No newline at end of file diff --git a/www/protected/views/layouts/main.php b/www/protected/views/layouts/main.php index e039e87..fe9aa29 100644 --- a/www/protected/views/layouts/main.php +++ b/www/protected/views/layouts/main.php @@ -25,6 +25,8 @@ selectedNav)) $this->selectedNav = ""; + $this->widget('bootstrap.widgets.TbNavbar', [ 'brandLabel' => Yii::app()->name, diff --git a/www/protected/views/programme/_form.php b/www/protected/views/programme/_form.php new file mode 100644 index 0000000..8a7abbf --- /dev/null +++ b/www/protected/views/programme/_form.php @@ -0,0 +1,65 @@ + + +
+ + beginWidget('bootstrap.widgets.TbActiveForm', array( + 'id'=>'programme-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, +)); ?> + +

Fields with * are required.

+ + errorSummary($model); ?> + + textAreaControlGroup($model,'Name',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'Downloads',array('span'=>5)); ?> + + textAreaControlGroup($model,'Kategorie',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'Sterne',array('span'=>5)); ?> + + textFieldControlGroup($model,'enabled',array('span'=>5)); ?> + + textFieldControlGroup($model,'visible',array('span'=>5)); ?> + + textAreaControlGroup($model,'Language',array('rows'=>6,'span'=>8)); ?> + + textAreaControlGroup($model,'Description',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'add_date',array('span'=>5)); ?> + + textAreaControlGroup($model,'download_url',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'viewable_code',array('span'=>5)); ?> + + textAreaControlGroup($model,'sourceforge_url',array('rows'=>6,'span'=>8)); ?> + + textAreaControlGroup($model,'homepage_url',array('rows'=>6,'span'=>8)); ?> + + textAreaControlGroup($model,'github_url',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'uses_absCanv',array('span'=>5)); ?> + + textFieldControlGroup($model,'update_identifier',array('span'=>5,'maxlength'=>28)); ?> + + textFieldControlGroup($model,'highscore_gid',array('span'=>5)); ?> + +
+ isNewRecord ? 'Create' : 'Save',array( + 'color'=>TbHtml::BUTTON_COLOR_PRIMARY, + 'size'=>TbHtml::BUTTON_SIZE_LARGE, + )); ?> +
+ + endWidget(); ?> + +
\ No newline at end of file diff --git a/www/protected/views/programme/_search.php b/www/protected/views/programme/_search.php new file mode 100644 index 0000000..f704f1f --- /dev/null +++ b/www/protected/views/programme/_search.php @@ -0,0 +1,56 @@ + + +
+ + beginWidget('bootstrap.widgets.TbActiveForm', array( + 'action'=>Yii::app()->createUrl($this->route), + 'method'=>'get', +)); ?> + + textFieldControlGroup($model,'ID',array('span'=>5)); ?> + + textAreaControlGroup($model,'Name',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'Downloads',array('span'=>5)); ?> + + textAreaControlGroup($model,'Kategorie',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'Sterne',array('span'=>5)); ?> + + textFieldControlGroup($model,'enabled',array('span'=>5)); ?> + + textFieldControlGroup($model,'visible',array('span'=>5)); ?> + + textAreaControlGroup($model,'Language',array('rows'=>6,'span'=>8)); ?> + + textAreaControlGroup($model,'Description',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'add_date',array('span'=>5)); ?> + + textAreaControlGroup($model,'download_url',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'viewable_code',array('span'=>5)); ?> + + textAreaControlGroup($model,'sourceforge_url',array('rows'=>6,'span'=>8)); ?> + + textAreaControlGroup($model,'homepage_url',array('rows'=>6,'span'=>8)); ?> + + textAreaControlGroup($model,'github_url',array('rows'=>6,'span'=>8)); ?> + + textFieldControlGroup($model,'uses_absCanv',array('span'=>5)); ?> + + textFieldControlGroup($model,'update_identifier',array('span'=>5,'maxlength'=>28)); ?> + + textFieldControlGroup($model,'highscore_gid',array('span'=>5)); ?> + +
+ TbHtml::BUTTON_COLOR_PRIMARY,));?> +
+ + endWidget(); ?> + +
\ No newline at end of file diff --git a/www/protected/views/programme/_view.php b/www/protected/views/programme/_view.php new file mode 100644 index 0000000..ec6f11a --- /dev/null +++ b/www/protected/views/programme/_view.php @@ -0,0 +1,83 @@ + + +
+ + getAttributeLabel('ID')); ?>: + ID),array('view','id'=>$data->ID)); ?> +
+ + getAttributeLabel('Name')); ?>: + Name); ?> +
+ + getAttributeLabel('Downloads')); ?>: + Downloads); ?> +
+ + getAttributeLabel('Kategorie')); ?>: + Kategorie); ?> +
+ + getAttributeLabel('Sterne')); ?>: + Sterne); ?> +
+ + getAttributeLabel('enabled')); ?>: + enabled); ?> +
+ + getAttributeLabel('visible')); ?>: + visible); ?> +
+ + getAttributeLabel('Language')); ?>: + Language); ?> +
+ + getAttributeLabel('Description')); ?>: + Description); ?> +
+ + getAttributeLabel('add_date')); ?>: + add_date); ?> +
+ + getAttributeLabel('download_url')); ?>: + download_url); ?> +
+ + getAttributeLabel('viewable_code')); ?>: + viewable_code); ?> +
+ + getAttributeLabel('sourceforge_url')); ?>: + sourceforge_url); ?> +
+ + getAttributeLabel('homepage_url')); ?>: + homepage_url); ?> +
+ + getAttributeLabel('github_url')); ?>: + github_url); ?> +
+ + getAttributeLabel('uses_absCanv')); ?>: + uses_absCanv); ?> +
+ + getAttributeLabel('update_identifier')); ?>: + update_identifier); ?> +
+ + getAttributeLabel('highscore_gid')); ?>: + highscore_gid); ?> +
+ + */ ?> + +
\ No newline at end of file diff --git a/www/protected/views/programme/admin.php b/www/protected/views/programme/admin.php new file mode 100644 index 0000000..47230e6 --- /dev/null +++ b/www/protected/views/programme/admin.php @@ -0,0 +1,78 @@ +breadcrumbs=array( + 'Programmes'=>array('index'), + 'Manage', +); + +$this->menu=array( + array('label'=>'List Programme', 'url'=>array('index')), + array('label'=>'Create Programme', 'url'=>array('create')), +); + +Yii::app()->clientScript->registerScript('search', " +$('.search-button').click(function(){ + $('.search-form').toggle(); + return false; +}); +$('.search-form form').submit(function(){ + $('#programme-grid').yiiGridView('update', { + data: $(this).serialize() + }); + return false; +}); +"); + + + +?> + +

Manage Programmes

+ +

+ 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( + 'type' => TbHtml::GRID_TYPE_BORDERED, + 'id'=>'programme-grid', + 'dataProvider'=>$model->search(), + 'filter'=>$model, + 'columns'=>array( + 'ID', + 'Name', + 'Downloads', + 'Kategorie', + 'Sterne', + 'enabled', + /* + 'visible', + 'Language', + 'Description', + 'add_date', + 'download_url', + 'viewable_code', + 'sourceforge_url', + 'homepage_url', + 'github_url', + 'uses_absCanv', + 'update_identifier', + 'highscore_gid', + */ + array( + 'class'=>'bootstrap.widgets.TbButtonColumn', + ), + ), +)); ?> \ No newline at end of file diff --git a/www/protected/views/programme/create.php b/www/protected/views/programme/create.php new file mode 100644 index 0000000..ada4d7e --- /dev/null +++ b/www/protected/views/programme/create.php @@ -0,0 +1,20 @@ + + +breadcrumbs=array( + 'Programmes'=>array('index'), + 'Create', +); + +$this->menu=array( + array('label'=>'List Programme', 'url'=>array('index')), + array('label'=>'Manage Programme', 'url'=>array('admin')), +); +?> + +

Create Programme

+ +renderPartial('_form', array('model'=>$model)); ?> \ No newline at end of file diff --git a/www/protected/views/programme/index.php b/www/protected/views/programme/index.php new file mode 100644 index 0000000..e2d2f25 --- /dev/null +++ b/www/protected/views/programme/index.php @@ -0,0 +1,22 @@ + + +breadcrumbs=array( + 'Programmes', +); + +$this->menu=array( + array('label'=>'Create Programme','url'=>array('create')), + array('label'=>'Manage Programme','url'=>array('admin')), +); +?> + +

Programmes

+ +widget('bootstrap.widgets.TbListView',array( + 'dataProvider'=>$dataProvider, + 'itemView'=>'_view', +)); ?> \ No newline at end of file diff --git a/www/protected/views/programme/update.php b/www/protected/views/programme/update.php new file mode 100644 index 0000000..4e791a2 --- /dev/null +++ b/www/protected/views/programme/update.php @@ -0,0 +1,23 @@ + + +breadcrumbs=array( + 'Programmes'=>array('index'), + $model->Name=>array('view','id'=>$model->ID), + 'Update', +); + +$this->menu=array( + array('label'=>'List Programme', 'url'=>array('index')), + array('label'=>'Create Programme', 'url'=>array('create')), + array('label'=>'View Programme', 'url'=>array('view', 'id'=>$model->ID)), + array('label'=>'Manage Programme', 'url'=>array('admin')), +); +?> + +

Update Programme ID; ?>

+ +renderPartial('_form', array('model'=>$model)); ?> \ No newline at end of file diff --git a/www/protected/views/programme/view.php b/www/protected/views/programme/view.php new file mode 100644 index 0000000..30f077e --- /dev/null +++ b/www/protected/views/programme/view.php @@ -0,0 +1,48 @@ + + +breadcrumbs=array( + 'Programmes'=>array('index'), + $model->Name, +); + +$this->menu=array( + array('label'=>'List Programme', 'url'=>array('index')), + array('label'=>'Create Programme', 'url'=>array('create')), + array('label'=>'Update Programme', 'url'=>array('update', 'id'=>$model->ID)), + array('label'=>'Delete Programme', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->ID),'confirm'=>'Are you sure you want to delete this item?')), + array('label'=>'Manage Programme', 'url'=>array('admin')), +); +?> + +

View Programme #ID; ?>

+ +widget('zii.widgets.CDetailView',array( + 'htmlOptions' => array( + 'class' => 'table table-striped table-condensed table-hover', + ), + 'data'=>$model, + 'attributes'=>array( + 'ID', + 'Name', + 'Downloads', + 'Kategorie', + 'Sterne', + 'enabled', + 'visible', + 'Language', + 'Description', + 'add_date', + 'download_url', + 'viewable_code', + 'sourceforge_url', + 'homepage_url', + 'github_url', + 'uses_absCanv', + 'update_identifier', + 'highscore_gid', + ), +)); ?> \ No newline at end of file