diff --git a/demos/blog/css/bg.gif b/demos/blog/css/bg.gif
deleted file mode 100644
index 4283989..0000000
Binary files a/demos/blog/css/bg.gif and /dev/null differ
diff --git a/demos/blog/css/form.css b/demos/blog/css/form.css
deleted file mode 100644
index 2a5e1bf..0000000
--- a/demos/blog/css/form.css
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
- * CSS styles for forms generated by yiic.
- *
- * The styles can be applied to the following form structure:
- *
- *
- *
- *
- *
- *
hint text
- *
- *
- *
- *
- *
hint text
- *
- *
- *
- *
- *
hint text
- *
- *
- *
- * The above code will render the labels and input fields in separate lines.
- * In order to render them in the same line, please use the "wide" form as follows,
- *
- *
\ No newline at end of file
diff --git a/demos/blog/protected/yiic b/demos/blog/protected/yiic
deleted file mode 100644
index 7f56f54..0000000
--- a/demos/blog/protected/yiic
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env php
-
- *
- *
- *
- *
hint text
- *
- *
- *
- *
- *
hint text
- *
- *
- *
- *
- *
hint text
- *
- *
- *
- * The above code will render the labels and input fields in separate lines.
- * In order to render them in the same line, please use the "wide" form as follows,
- *
- *
- * ......
- *
- *
- * @author Qiang Xue
- * @link http://www.yiiframework.com/
- * @copyright 2008-2010 Yii Software LLC
- * @license http://www.yiiframework.com/license/
- */
-
-div.form
-{
-}
-
-div.form input,
-div.form textarea,
-div.form select
-{
- margin: 0.2em 0 0.5em 0;
-}
-
-div.form fieldset
-{
- border: 1px solid #DDD;
- padding: 10px;
- margin: 0 0 10px 0;
- -moz-border-radius:7px;
-}
-
-div.form label
-{
- font-weight: bold;
- font-size: 0.9em;
- display: block;
-}
-
-div.form .row
-{
- margin: 5px 0;
-}
-
-div.form .hint
-{
- margin: 0;
- padding: 0;
- color: #999;
-}
-
-div.form .note
-{
- font-style: italic;
-}
-
-div.form span.required
-{
- color: red;
-}
-
-div.form div.error label:first-child,
-div.form label.error,
-div.form span.error
-{
- color: #C00;
-}
-
-div.form div.error input,
-div.form div.error textarea,
-div.form div.error select,
-div.form input.error,
-div.form textarea.error,
-div.form select.error
-{
- background: #FEE;
- border-color: #C00;
-}
-
-div.form div.success input,
-div.form div.success textarea,
-div.form div.success select,
-div.form input.success,
-div.form textarea.success,
-div.form select.success
-{
- background: #E6EFC2;
- border-color: #C6D880;
-}
-
-div.form div.success label
-{
- color: inherit;
-}
-
-div.form .errorSummary
-{
- border: 2px solid #C00;
- padding: 7px 7px 12px 7px;
- margin: 0 0 20px 0;
- background: #FEE;
- font-size: 0.9em;
-}
-
-div.form .errorMessage
-{
- color: red;
- font-size: 0.9em;
-}
-
-div.form .errorSummary p
-{
- margin: 0;
- padding: 5px;
-}
-
-div.form .errorSummary ul
-{
- margin: 0;
- padding: 0 0 0 20px;
-}
-
-div.wide.form label
-{
- float: left;
- margin-right: 10px;
- position: relative;
- text-align: right;
- width: 100px;
-}
-
-div.wide.form .row
-{
- clear: left;
-}
-
-div.wide.form .buttons, div.wide.form .hint, div.wide.form .errorMessage
-{
- clear: left;
- padding-left: 110px;
-}
diff --git a/demos/default/css/ie.css b/demos/default/css/ie.css
deleted file mode 100644
index f015399..0000000
--- a/demos/default/css/ie.css
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -----------------------------------------------------------------------
-
-
- 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/demos/default/css/main.css b/demos/default/css/main.css
deleted file mode 100644
index 13327b8..0000000
--- a/demos/default/css/main.css
+++ /dev/null
@@ -1,229 +0,0 @@
-body
-{
- margin: 0;
- padding: 0;
- color: #555;
- font: normal 10pt Arial,Helvetica,sans-serif;
- background: #EFEFEF;
-}
-
-#page
-{
- margin-top: 5px;
- margin-bottom: 5px;
- background: white;
- border: 1px solid #C9E0ED;
-}
-
-#header
-{
- margin: 0;
- padding: 0;
- border-top: 3px solid #C9E0ED;
-}
-
-#content
-{
- padding: 20px;
-}
-
-#sidebar
-{
- padding: 20px 20px 20px 0;
-}
-
-#footer
-{
- padding: 10px;
- margin: 10px 20px;
- font-size: 0.8em;
- text-align: center;
- border-top: 1px solid #C9E0ED;
-}
-
-#logo
-{
- padding: 10px 20px;
- font-size: 200%;
-}
-
-#mainmenu
-{
- background:white url(bg.gif) repeat-x left top;
-}
-
-#mainmenu ul
-{
- padding:6px 20px 5px 20px;
- margin:0px;
-}
-
-#mainmenu ul li
-{
- display: inline;
-}
-
-#mainmenu ul li a
-{
- color:#ffffff;
- background-color:transparent;
- font-size:12px;
- font-weight:bold;
- text-decoration:none;
- padding:5px 8px;
-}
-
-#mainmenu ul li a:hover, #mainmenu ul li.active a
-{
- color: #6399cd;
- background-color:#EFF4FA;
- text-decoration:none;
-}
-
-div.flash-error, div.flash-notice, div.flash-success
-{
- padding:.8em;
- margin-bottom:1em;
- border:2px solid #ddd;
-}
-
-div.flash-error
-{
- background:#FBE3E4;
- color:#8a1f11;
- border-color:#FBC2C4;
-}
-
-div.flash-notice
-{
- background:#FFF6BF;
- color:#514721;
- border-color:#FFD324;
-}
-
-div.flash-success
-{
- background:#E6EFC2;
- color:#264409;
- border-color:#C6D880;
-}
-
-div.flash-error a
-{
- color:#8a1f11;
-}
-
-div.flash-notice a
-{
- color:#514721;
-}
-
-div.flash-success a
-{
- color:#264409;
-}
-
-div.form .rememberMe label
-{
- display: inline;
-}
-
-div.view
-{
- padding: 10px;
- margin: 10px 0;
- border: 1px solid #C9E0ED;
-}
-
-div.breadcrumbs
-{
- font-size: 0.9em;
- padding: 5px 20px;
-}
-
-div.breadcrumbs span
-{
- font-weight: bold;
-}
-
-div.search-form
-{
- padding: 10px;
- margin: 10px 0;
- background: #eee;
-}
-
-.portlet
-{
-
-}
-
-.portlet-decoration
-{
- padding: 3px 8px;
- background: #B7D6E7;
- border-left: 5px solid #6FACCF;
-}
-
-.portlet-title
-{
- font-size: 12px;
- font-weight: bold;
- padding: 0;
- margin: 0;
- color: #298dcd;
-}
-
-.portlet-content
-{
- font-size:0.9em;
- margin: 0 0 15px 0;
- padding: 5px 8px;
- background:#EFFDFF;
-}
-
-.portlet-content ul
-{
- list-style-image:none;
- list-style-position:outside;
- list-style-type:none;
- margin: 0;
- padding: 0;
-}
-
-.portlet-content li
-{
- padding: 2px 0 4px 0px;
-}
-
-.operations
-{
- list-style-type: none;
- margin: 0;
- padding: 0;
-}
-
-.operations li
-{
- padding-bottom: 2px;
-}
-
-.operations li a
-{
- font: bold 12px Arial;
- color: #0066A4;
- display: block;
- padding: 2px 0 2px 8px;
- line-height: 15px;
- text-decoration: none;
-}
-
-.operations li a:visited
-{
- color: #0066A4;
-}
-
-.operations li a:hover
-{
- background: #80CFFF;
-}
\ No newline at end of file
diff --git a/demos/default/css/print.css b/demos/default/css/print.css
deleted file mode 100644
index bd79afd..0000000
--- a/demos/default/css/print.css
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -----------------------------------------------------------------------
-
-
- 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/demos/default/css/screen.css b/demos/default/css/screen.css
deleted file mode 100644
index 7824d07..0000000
--- a/demos/default/css/screen.css
+++ /dev/null
@@ -1,238 +0,0 @@
-/* -----------------------------------------------------------------------
-
-
- 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/demos/default/images/.gitkeep b/demos/default/images/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/default/index-test.php b/demos/default/index-test.php
deleted file mode 100644
index 87dfbe3..0000000
--- a/demos/default/index-test.php
+++ /dev/null
@@ -1,15 +0,0 @@
-run();
diff --git a/demos/default/index.php b/demos/default/index.php
deleted file mode 100644
index 84a48bf..0000000
--- a/demos/default/index.php
+++ /dev/null
@@ -1,13 +0,0 @@
-run();
diff --git a/demos/default/protected/.htaccess b/demos/default/protected/.htaccess
deleted file mode 100644
index 8d2f256..0000000
--- a/demos/default/protected/.htaccess
+++ /dev/null
@@ -1 +0,0 @@
-deny from all
diff --git a/demos/default/protected/commands/shell/.gitkeep b/demos/default/protected/commands/shell/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/default/protected/components/Controller.php b/demos/default/protected/components/Controller.php
deleted file mode 100644
index 083187e..0000000
--- a/demos/default/protected/components/Controller.php
+++ /dev/null
@@ -1,23 +0,0 @@
- password
- 'demo'=>'demo',
- 'admin'=>'admin',
- );
- if(!isset($users[$this->username]))
- $this->errorCode=self::ERROR_USERNAME_INVALID;
- elseif($users[$this->username]!==$this->password)
- $this->errorCode=self::ERROR_PASSWORD_INVALID;
- else
- $this->errorCode=self::ERROR_NONE;
- return !$this->errorCode;
- }
-}
\ No newline at end of file
diff --git a/demos/default/protected/config/console.php b/demos/default/protected/config/console.php
deleted file mode 100644
index 346a976..0000000
--- a/demos/default/protected/config/console.php
+++ /dev/null
@@ -1,37 +0,0 @@
-dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
- 'name'=>'My Console Application',
-
- // preloading 'log' component
- 'preload'=>array('log'),
-
- // application components
- 'components'=>array(
- 'db'=>array(
- 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
- ),
- // uncomment the following to use a MySQL database
- /*
- 'db'=>array(
- 'connectionString' => 'mysql:host=localhost;dbname=testdrive',
- 'emulatePrepare' => true,
- 'username' => 'root',
- 'password' => '',
- 'charset' => 'utf8',
- ),
- */
- 'log'=>array(
- 'class'=>'CLogRouter',
- 'routes'=>array(
- array(
- 'class'=>'CFileLogRoute',
- 'levels'=>'error, warning',
- ),
- ),
- ),
- ),
-);
\ No newline at end of file
diff --git a/demos/default/protected/config/main.php b/demos/default/protected/config/main.php
deleted file mode 100644
index 6919c74..0000000
--- a/demos/default/protected/config/main.php
+++ /dev/null
@@ -1,90 +0,0 @@
-dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
- 'name'=>'My Web Application',
-
- // preloading 'log' component
- 'preload'=>array('log'),
-
- // autoloading model and component classes
- 'import'=>array(
- 'application.models.*',
- 'application.components.*',
- ),
-
- 'modules'=>array(
- // uncomment the following to enable the Gii tool
- /*
- 'gii'=>array(
- 'class'=>'system.gii.GiiModule',
- 'password'=>'Enter Your Password Here',
- // If removed, Gii defaults to localhost only. Edit carefully to taste.
- 'ipFilters'=>array('127.0.0.1','::1'),
- ),
- */
- ),
-
- // application components
- 'components'=>array(
- 'user'=>array(
- // enable cookie-based authentication
- 'allowAutoLogin'=>true,
- ),
- // uncomment the following to enable URLs in path-format
- /*
- 'urlManager'=>array(
- 'urlFormat'=>'path',
- 'rules'=>array(
- '/'=>'/view',
- '//'=>'/',
- '/'=>'/',
- ),
- ),
- */
- 'db'=>array(
- 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
- ),
- // uncomment the following to use a MySQL database
- /*
- 'db'=>array(
- 'connectionString' => 'mysql:host=localhost;dbname=testdrive',
- 'emulatePrepare' => true,
- 'username' => 'root',
- 'password' => '',
- 'charset' => 'utf8',
- ),
- */
- 'errorHandler'=>array(
- // use 'site/error' action to display errors
- 'errorAction'=>'site/error',
- ),
- 'log'=>array(
- 'class'=>'CLogRouter',
- 'routes'=>array(
- array(
- 'class'=>'CFileLogRoute',
- 'levels'=>'error, warning',
- ),
- // uncomment the following to show log messages on web pages
- /*
- array(
- 'class'=>'CWebLogRoute',
- ),
- */
- ),
- ),
- ),
-
- // application-level parameters that can be accessed
- // using Yii::app()->params['paramName']
- 'params'=>array(
- // this is used in contact page
- 'adminEmail'=>'webmaster@example.com',
- ),
-);
\ No newline at end of file
diff --git a/demos/default/protected/config/test.php b/demos/default/protected/config/test.php
deleted file mode 100644
index fd7085a..0000000
--- a/demos/default/protected/config/test.php
+++ /dev/null
@@ -1,17 +0,0 @@
-array(
- 'fixture'=>array(
- 'class'=>'system.test.CDbFixtureManager',
- ),
- /* uncomment the following to provide test database connection
- 'db'=>array(
- 'connectionString'=>'DSN for test database',
- ),
- */
- ),
- )
-);
diff --git a/demos/default/protected/controllers/SiteController.php b/demos/default/protected/controllers/SiteController.php
deleted file mode 100644
index a6a790e..0000000
--- a/demos/default/protected/controllers/SiteController.php
+++ /dev/null
@@ -1,109 +0,0 @@
-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()
- {
- $model=new ContactForm;
- if(isset($_POST['ContactForm']))
- {
- $model->attributes=$_POST['ContactForm'];
- if($model->validate())
- {
- $name='=?UTF-8?B?'.base64_encode($model->name).'?=';
- $subject='=?UTF-8?B?'.base64_encode($model->subject).'?=';
- $headers="From: $name <{$model->email}>\r\n".
- "Reply-To: {$model->email}\r\n".
- "MIME-Version: 1.0\r\n".
- "Content-Type: text/plain; charset=UTF-8";
-
- mail(Yii::app()->params['adminEmail'],$subject,$model->body,$headers);
- Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
- $this->refresh();
- }
- }
- $this->render('contact',array('model'=>$model));
- }
-
- /**
- * 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));
- }
-
- /**
- * Logs out the current user and redirect to homepage.
- */
- public function actionLogout()
- {
- Yii::app()->user->logout();
- $this->redirect(Yii::app()->homeUrl);
- }
-}
\ No newline at end of file
diff --git a/demos/default/protected/data/schema.mysql.sql b/demos/default/protected/data/schema.mysql.sql
deleted file mode 100644
index 32788bd..0000000
--- a/demos/default/protected/data/schema.mysql.sql
+++ /dev/null
@@ -1,28 +0,0 @@
-CREATE TABLE tbl_user (
- id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
- username VARCHAR(128) NOT NULL,
- password VARCHAR(128) NOT NULL,
- email VARCHAR(128) NOT NULL
-);
-
-INSERT INTO tbl_user (username, password, email) VALUES ('test1', 'pass1', 'test1@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test2', 'pass2', 'test2@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test3', 'pass3', 'test3@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test4', 'pass4', 'test4@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test5', 'pass5', 'test5@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test6', 'pass6', 'test6@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test7', 'pass7', 'test7@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test8', 'pass8', 'test8@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test9', 'pass9', 'test9@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test10', 'pass10', 'test10@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test11', 'pass11', 'test11@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test12', 'pass12', 'test12@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test13', 'pass13', 'test13@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test14', 'pass14', 'test14@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test15', 'pass15', 'test15@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test16', 'pass16', 'test16@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test17', 'pass17', 'test17@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test18', 'pass18', 'test18@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test19', 'pass19', 'test19@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test20', 'pass20', 'test20@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test21', 'pass21', 'test21@example.com');
diff --git a/demos/default/protected/data/schema.sqlite.sql b/demos/default/protected/data/schema.sqlite.sql
deleted file mode 100644
index e5e0830..0000000
--- a/demos/default/protected/data/schema.sqlite.sql
+++ /dev/null
@@ -1,28 +0,0 @@
-CREATE TABLE tbl_user (
- id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
- username VARCHAR(128) NOT NULL,
- password VARCHAR(128) NOT NULL,
- email VARCHAR(128) NOT NULL
-);
-
-INSERT INTO tbl_user (username, password, email) VALUES ('test1', 'pass1', 'test1@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test2', 'pass2', 'test2@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test3', 'pass3', 'test3@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test4', 'pass4', 'test4@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test5', 'pass5', 'test5@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test6', 'pass6', 'test6@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test7', 'pass7', 'test7@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test8', 'pass8', 'test8@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test9', 'pass9', 'test9@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test10', 'pass10', 'test10@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test11', 'pass11', 'test11@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test12', 'pass12', 'test12@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test13', 'pass13', 'test13@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test14', 'pass14', 'test14@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test15', 'pass15', 'test15@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test16', 'pass16', 'test16@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test17', 'pass17', 'test17@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test18', 'pass18', 'test18@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test19', 'pass19', 'test19@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test20', 'pass20', 'test20@example.com');
-INSERT INTO tbl_user (username, password, email) VALUES ('test21', 'pass21', 'test21@example.com');
diff --git a/demos/default/protected/data/testdrive.db b/demos/default/protected/data/testdrive.db
deleted file mode 100644
index 0672b21..0000000
Binary files a/demos/default/protected/data/testdrive.db and /dev/null differ
diff --git a/demos/default/protected/extensions/.gitkeep b/demos/default/protected/extensions/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/default/protected/messages/.gitkeep b/demos/default/protected/messages/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/default/protected/migrations/.gitkeep b/demos/default/protected/migrations/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/default/protected/models/ContactForm.php b/demos/default/protected/models/ContactForm.php
deleted file mode 100644
index 86541cb..0000000
--- a/demos/default/protected/models/ContactForm.php
+++ /dev/null
@@ -1,42 +0,0 @@
-!CCaptcha::checkRequirements()),
- );
- }
-
- /**
- * Declares customized attribute labels.
- * If not declared here, an attribute would have a label that is
- * the same as its name with the first letter in upper case.
- */
- public function attributeLabels()
- {
- return array(
- 'verifyCode'=>'Verification Code',
- );
- }
-}
\ No newline at end of file
diff --git a/demos/default/protected/models/LoginForm.php b/demos/default/protected/models/LoginForm.php
deleted file mode 100644
index eb36e4a..0000000
--- a/demos/default/protected/models/LoginForm.php
+++ /dev/null
@@ -1,77 +0,0 @@
-'Remember me next time',
- );
- }
-
- /**
- * Authenticates the password.
- * This is the 'authenticate' validator as declared in rules().
- */
- public function authenticate($attribute,$params)
- {
- if(!$this->hasErrors())
- {
- $this->_identity=new UserIdentity($this->username,$this->password);
- if(!$this->_identity->authenticate())
- $this->addError('password','Incorrect username or password.');
- }
- }
-
- /**
- * Logs in the user using the given username and password in the model.
- * @return boolean whether login is successful
- */
- public function login()
- {
- if($this->_identity===null)
- {
- $this->_identity=new UserIdentity($this->username,$this->password);
- $this->_identity->authenticate();
- }
- if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
- {
- $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days
- Yii::app()->user->login($this->_identity,$duration);
- return true;
- }
- else
- return false;
- }
-}
diff --git a/demos/default/protected/runtime/.gitignore b/demos/default/protected/runtime/.gitignore
deleted file mode 100644
index c96a04f..0000000
--- a/demos/default/protected/runtime/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
\ No newline at end of file
diff --git a/demos/default/protected/tests/WebTestCase.php b/demos/default/protected/tests/WebTestCase.php
deleted file mode 100644
index d252bba..0000000
--- a/demos/default/protected/tests/WebTestCase.php
+++ /dev/null
@@ -1,25 +0,0 @@
-setBrowserUrl(TEST_BASE_URL);
- }
-}
diff --git a/demos/default/protected/tests/bootstrap.php b/demos/default/protected/tests/bootstrap.php
deleted file mode 100644
index 6d06a12..0000000
--- a/demos/default/protected/tests/bootstrap.php
+++ /dev/null
@@ -1,10 +0,0 @@
-open('');
- $this->assertTextPresent('Welcome');
- }
-
- public function testContact()
- {
- $this->open('?r=site/contact');
- $this->assertTextPresent('Contact Us');
- $this->assertElementPresent('name=ContactForm[name]');
-
- $this->type('name=ContactForm[name]','tester');
- $this->type('name=ContactForm[email]','tester@example.com');
- $this->type('name=ContactForm[subject]','test subject');
- $this->click("//input[@value='Submit']");
- $this->waitForTextPresent('Body cannot be blank.');
- }
-
- public function testLoginLogout()
- {
- $this->open('');
- // ensure the user is logged out
- if($this->isTextPresent('Logout'))
- $this->clickAndWait('link=Logout (demo)');
-
- // test login process, including validation
- $this->clickAndWait('link=Login');
- $this->assertElementPresent('name=LoginForm[username]');
- $this->type('name=LoginForm[username]','demo');
- $this->click("//input[@value='Login']");
- $this->waitForTextPresent('Password cannot be blank.');
- $this->type('name=LoginForm[password]','demo');
- $this->clickAndWait("//input[@value='Login']");
- $this->assertTextNotPresent('Password cannot be blank.');
- $this->assertTextPresent('Logout');
-
- // test logout process
- $this->assertTextNotPresent('Login');
- $this->clickAndWait('link=Logout (demo)');
- $this->assertTextPresent('Login');
- }
-}
diff --git a/demos/default/protected/tests/phpunit.xml b/demos/default/protected/tests/phpunit.xml
deleted file mode 100644
index 22c96ff..0000000
--- a/demos/default/protected/tests/phpunit.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/demos/default/protected/tests/report/.gitignore b/demos/default/protected/tests/report/.gitignore
deleted file mode 100644
index c96a04f..0000000
--- a/demos/default/protected/tests/report/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
\ No newline at end of file
diff --git a/demos/default/protected/tests/unit/.gitkeep b/demos/default/protected/tests/unit/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/default/protected/vendor/.gitkeep b/demos/default/protected/vendor/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/default/protected/views/layouts/column1.php b/demos/default/protected/views/layouts/column1.php
deleted file mode 100644
index 702fd65..0000000
--- a/demos/default/protected/views/layouts/column1.php
+++ /dev/null
@@ -1,6 +0,0 @@
-
-beginContent('//layouts/main'); ?>
-
-
-
-endContent(); ?>
\ No newline at end of file
diff --git a/demos/default/protected/views/layouts/column2.php b/demos/default/protected/views/layouts/column2.php
deleted file mode 100644
index b588bf6..0000000
--- a/demos/default/protected/views/layouts/column2.php
+++ /dev/null
@@ -1,22 +0,0 @@
-
-beginContent('//layouts/main'); ?>
-
Please enter the letters as they are shown in the image above.
- Letters are not case-sensitive.
- error($model,'verifyCode'); ?>
-
-
-
-
-
-
-
-endWidget(); ?>
-
-
-
-
\ No newline at end of file
diff --git a/demos/default/protected/views/site/error.php b/demos/default/protected/views/site/error.php
deleted file mode 100644
index d0dcb80..0000000
--- a/demos/default/protected/views/site/error.php
+++ /dev/null
@@ -1,15 +0,0 @@
-pageTitle=Yii::app()->name . ' - Error';
-$this->breadcrumbs=array(
- 'Error',
-);
-?>
-
-
Error
-
-
-
-
\ No newline at end of file
diff --git a/demos/default/protected/views/site/index.php b/demos/default/protected/views/site/index.php
deleted file mode 100644
index d521a85..0000000
--- a/demos/default/protected/views/site/index.php
+++ /dev/null
@@ -1,20 +0,0 @@
-pageTitle=Yii::app()->name;
-?>
-
-
Welcome to name); ?>
-
-
Congratulations! You have successfully created your Yii application.
-
-
You may change the content of this page by modifying the following two files:
-
-
View file:
-
Layout file: getLayoutFile('main'); ?>
-
-
-
For more details on how to further develop this application, please read
-the documentation.
-Feel free to ask in the forum,
-should you have any questions.
This is a "static" page. You may change the content of this page
-by updating the file .
diff --git a/demos/default/protected/yiic b/demos/default/protected/yiic
deleted file mode 100644
index 7f56f54..0000000
--- a/demos/default/protected/yiic
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env php
-run();
\ No newline at end of file
diff --git a/demos/hangman/protected/.htaccess b/demos/hangman/protected/.htaccess
deleted file mode 100644
index 8d2f256..0000000
--- a/demos/hangman/protected/.htaccess
+++ /dev/null
@@ -1 +0,0 @@
-deny from all
diff --git a/demos/hangman/protected/config/main.php b/demos/hangman/protected/config/main.php
deleted file mode 100644
index 99eb015..0000000
--- a/demos/hangman/protected/config/main.php
+++ /dev/null
@@ -1,14 +0,0 @@
-'Hangman Game',
- 'defaultController'=>'game',
- 'components'=>array(
- 'urlManager'=>array(
- 'urlFormat'=>'path',
- 'rules'=>array(
- 'game/guess/'=>'game/guess',
- ),
- ),
- ),
-);
\ No newline at end of file
diff --git a/demos/hangman/protected/controllers/GameController.php b/demos/hangman/protected/controllers/GameController.php
deleted file mode 100644
index 86cfaec..0000000
--- a/demos/hangman/protected/controllers/GameController.php
+++ /dev/null
@@ -1,222 +0,0 @@
-
- * @link http://www.yiiframework.com/
- * @copyright 2008-2013 Yii Software LLC
- * @license http://www.yiiframework.com/license/
- */
-
-
-/**
- * GameController implements the {@link http://en.wikipedia.org/wiki/Hangman_(game) Hangman game}.
- *
- * @author Qiang Xue
- * @version $Id: CController.php 131 2008-11-02 01:32:57Z qiang.xue $
- * @package demos.hangman
- * @since 1.0
- */
-class GameController extends CController
-{
- /**
- * @var string sets the default action to be 'play'
- */
- public $defaultAction='play';
-
- /**
- * The 'play' action.
- * In this action, users are asked to choose a difficulty level
- * of the game.
- */
- public function actionPlay()
- {
- static $levels=array(
- '10'=>'Easy game; you are allowed 10 misses.',
- '5'=>'Medium game; you are allowed 5 misses.',
- '3'=>'Hard game; you are allowed 3 misses.',
- );
-
- // if a difficulty level is correctly chosen
- if(isset($_POST['level']) && isset($levels[$_POST['level']]))
- {
- $this->word=$this->generateWord();
- $this->guessWord=str_repeat('_',strlen($this->word));
- $this->level=$_POST['level'];
- $this->misses=0;
- $this->setPageState('guessed',null);
- // show the guess page
- $this->render('guess');
- }
- else
- {
- $params=array(
- 'levels'=>$levels,
- // if this is a POST request, it means the level is not chosen
- 'error'=>Yii::app()->request->isPostRequest,
- );
- // show the difficulty level page
- $this->render('play',$params);
- }
- }
-
- /**
- * The 'guess' action.
- * This action is invoked each time when the user makes a guess.
- */
- public function actionGuess()
- {
- // check to see if the letter is guessed correctly
- if(isset($_GET['g'][0]) && ($result=$this->guess($_GET['g'][0]))!==null)
- $this->render($result ? 'win' : 'lose');
- else // the letter is guessed correctly, but not win yet
- {
- $guessed=$this->getPageState('guessed',array());
- $guessed[$_GET['g'][0]]=true;
- $this->setPageState('guessed',$guessed,array());
- $this->render('guess');
- }
- }
-
- /**
- * The 'guess' action.
- * This action is invoked when the user gives up the game.
- */
- public function actionGiveup()
- {
- $this->render('lose');
- }
-
- /**
- * Checks to see if a letter is already guessed.
- * @param string the letter
- * @return boolean whether the letter is already guessed.
- */
- public function isGuessed($letter)
- {
- $guessed=$this->getPageState('guessed',array());
- return isset($guessed[$letter]);
- }
-
- /**
- * Generates a word to be guessed.
- * @return string the word to be guessed
- */
- protected function generateWord()
- {
- $wordFile=dirname(__FILE__).'/words.txt';
- $words=preg_split("/[\s,]+/",file_get_contents($wordFile));
- do
- {
- $i=rand(0,count($words)-1);
- $word=$words[$i];
- } while(strlen($word)<5 || !ctype_alpha($word));
- return strtoupper($word);
- }
-
- /**
- * Checks to see if a letter is guessed correctly.
- * @param string the letter
- * @return mixed true if the word is guessed correctly, false
- * if the user has used up all guesses and the word is guessed
- * incorrectly, and null if the letter is guessed correctly but
- * the whole word is guessed correctly yet.
- */
- protected function guess($letter)
- {
- $word=$this->word;
- $guessWord=$this->guessWord;
- $pos=0;
- $success=false;
- while(($pos=strpos($word,$letter,$pos))!==false)
- {
- $guessWord[$pos]=$letter;
- $success=true;
- $pos++;
- }
- if($success)
- {
- $this->guessWord=$guessWord;
- if($guessWord===$word)
- return true;
- }
- else
- {
- $this->misses++;
- if($this->misses>=$this->level)
- return false;
- }
- }
-
- /**
- * @return integer the difficulty level. This value is persistent
- * during the whole game session.
- */
- public function getLevel()
- {
- return $this->getPageState('level');
- }
-
- /**
- * @param integer the difficulty level. This value is persistent
- * during the whole game session.
- */
- public function setLevel($value)
- {
- $this->setPageState('level',$value);
- }
-
- /**
- * @return string the word to be guessed. This value is persistent
- * during the whole game session.
- */
- public function getWord()
- {
- return $this->getPageState('word');
- }
-
- /**
- * @param string the word to be guessed. This value is persistent
- * during the whole game session.
- */
- public function setWord($value)
- {
- $this->setPageState('word',$value);
- }
-
- /**
- * @return string the word being guessed. This value is persistent
- * during the whole game session.
- */
- public function getGuessWord()
- {
- return $this->getPageState('guessWord');
- }
-
- /**
- * @param string the word being guessed. This value is persistent
- * during the whole game session.
- */
- public function setGuessWord($value)
- {
- $this->setPageState('guessWord',$value);
- }
-
- /**
- * @return integer the number of misses. This value is persistent
- * during the whole game session.
- */
- public function getMisses()
- {
- return $this->getPageState('misses');
- }
-
- /**
- * @param integer the number of misses. This value is persistent
- * during the whole game session.
- */
- public function setMisses($value)
- {
- $this->setPageState('misses',$value);
- }
-}
\ No newline at end of file
diff --git a/demos/hangman/protected/controllers/words.txt b/demos/hangman/protected/controllers/words.txt
deleted file mode 100644
index 844c5f5..0000000
--- a/demos/hangman/protected/controllers/words.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in
-the documentation and/or other materials provided with the
-distribution.
-
-Neither the name of Yii Software LLC nor the names of its
-contributors may be used to endorse or promote products derived
-from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/demos/hangman/protected/runtime/empty b/demos/hangman/protected/runtime/empty
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/hangman/protected/views/game/guess.php b/demos/hangman/protected/views/game/guess.php
deleted file mode 100644
index d6081e0..0000000
--- a/demos/hangman/protected/views/game/guess.php
+++ /dev/null
@@ -1,21 +0,0 @@
-
Please make a guess
-
-
guessWord; ?>
-
-
You have made misses; ?> bad guesses out of a maximum of level; ?>.
- commentCount>1 ? $model->commentCount . ' comments' : 'One comment'; ?> -
- - renderPartial('_comments',array( - 'post'=>$model, - 'comments'=>$model->comments, - )); ?> - - -Leave a Comment
- - user->hasFlash('commentSubmitted')): ?> -