From 53211ea3590589a78d8753ddb98b1ab8c9ddcb2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Fri, 6 Jun 2014 12:02:56 +0200 Subject: [PATCH] Added proper Log to msmain/index + added msmain/log + alot more --- .idea/workspace.xml | 788 +++++++++++------- DB_Changes.txt | 5 +- www/css/styles.css | 20 +- www/images/log/bsod_1.jpg | Bin 0 -> 55645 bytes www/images/log/bsod_2.jpg | Bin 0 -> 66270 bytes www/images/log/ms_de_v1.jpg | Bin 0 -> 4459 bytes www/images/log/ms_de_v2.jpg | Bin 0 -> 5699 bytes www/images/log/ms_de_v3.jpg | Bin 0 -> 4867 bytes www/protected/components/MsHtml.php | 41 +- www/protected/components/ProgramHelper.php | 2 +- .../components/widgets/ExpandedLogHeader.php | 33 + .../components/widgets/views/demo.md | 519 ------------ .../widgets/views/expandedLogHeader.php | 30 +- .../widgets/views/fullProgPreview.php | 8 +- .../widgets/views/thumbnailProgPreview.php | 8 +- www/protected/config/env/dev.php | 9 + www/protected/config/main.php | 7 +- .../controllers/MSMainController.php | 28 +- www/protected/models/Log.php | 115 +++ www/protected/models/Program.php | 7 + www/protected/views/layouts/column2.php | 2 +- www/protected/views/layouts/main.php | 4 +- www/protected/views/msmain/about.php | 34 +- www/protected/views/msmain/index.php | 53 +- www/protected/views/msmain/log.php | 40 + www/protected/views/msmain/login.php | 69 +- www/protected/views/programs/_form.php | 6 +- www/protected/views/programs/_search.php | 2 +- www/protected/views/programs/admin.php | 2 +- www/protected/views/programs/index.php | 8 +- 30 files changed, 877 insertions(+), 963 deletions(-) create mode 100644 www/images/log/bsod_1.jpg create mode 100644 www/images/log/bsod_2.jpg create mode 100644 www/images/log/ms_de_v1.jpg create mode 100644 www/images/log/ms_de_v2.jpg create mode 100644 www/images/log/ms_de_v3.jpg delete mode 100644 www/protected/components/widgets/views/demo.md create mode 100644 www/protected/models/Log.php create mode 100644 www/protected/views/msmain/log.php diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8b15ac8..f3e5cc3 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,12 +2,12 @@ - - + + - - + + @@ -63,45 +63,97 @@ - - + + - + - - + + - + - - + + - + - - + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -115,57 +167,57 @@ @@ -262,20 +314,6 @@ - - - - - - - - - - @@ -426,6 +464,28 @@ + + + + + + + + + + + + - + + + + + + + + + + + + @@ -609,11 +687,11 @@ + - @@ -735,24 +813,24 @@ - + - - - - + + + + + - - + @@ -776,290 +854,382 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - PHP - \Yii - - \Yii - \YiiBase - - - - - - - All - private + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + - + - + + + + + + + + - + - + - + - - + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DB_Changes.txt b/DB_Changes.txt index 30c7db3..b35b880 100644 --- a/DB_Changes.txt +++ b/DB_Changes.txt @@ -5,4 +5,7 @@ programme -> Added Column programming_lang programme -> Changed Sieb_des_Erasthothenes -> Sieb des Erasthothenes (also ren Imagefiles) programme -> Adjusted Star Ratings programme -> Niripsa[visible] = 0 -programme -> ms4_programs \ No newline at end of file +programme -> ms4_programs + +idx_info -> ms4_log +idx_info -> new columns + full content change \ No newline at end of file diff --git a/www/css/styles.css b/www/css/styles.css index 2a599b2..31d5d71 100644 --- a/www/css/styles.css +++ b/www/css/styles.css @@ -316,23 +316,25 @@ ul.nav li.dropdown-append:hover > ul.dropdown-menu { .expCollHeader { margin-bottom: 20px; + + border: 1px solid #D7E0E2; + border-radius: 6px; } -.expCollHeader > .collHeaderLinkParent { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; +.expCollHeader > .collHeader { + border-width: 0; + border-radius: 0; + + margin-bottom: 0; } .expCollContent { background-color: #F5F5F5; - border: 1px solid #D7E0E2; - border-top-width: 0px; + margin-top: 0px; +} - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - - margin-top: -20px; +.expCollContent > div { padding: 15px 60px; } \ No newline at end of file diff --git a/www/images/log/bsod_1.jpg b/www/images/log/bsod_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e4be8981a19393a27456c01e1519978a36ac7981 GIT binary patch literal 55645 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 rK-G?Fa)CxZbh=vv-WeqlJkS~d6G@- literal 0 HcmV?d00001 diff --git a/www/images/log/bsod_2.jpg b/www/images/log/bsod_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12fbb7f4feee013008016b59605a2f87ebb19e96 GIT binary patch literal 66270 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

vTi#c|<`-m*Z+lV>}piD+(HfJYM;M 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 literal 0 HcmV?d00001 diff --git a/www/images/log/ms_de_v1.jpg b/www/images/log/ms_de_v1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc053e94ca8d7184d72a3afce2b5134840888432 GIT binary patch literal 4459 zcmbW2c|6qL*T6qxhRK@2AY{o_jZ&1dWWJO=355vRDkfpX*rzC4mPkgzBs-z(TgKjM z7ugzS$U0eP493h)&+~hIpXK%YpN{3J3eIwm&xdCH4aT-wX@H#xa^`2~eV#TAuR z)it$s^$l(99i3etKYji(FgWymc;v_E*ffbeGy7|9eqnKKePfeK+oEsp{NVxt;Qz$> zo9usa!S=b>AP_JF`iBd|hS^sz48ksRnnOUx9O~pFctqvV0U_O_?DwslvZ@xVaA$Ns zm$2NKY5BE3X#YX>?}3H?zsUXu`!B9BfCmiPKRhrDKmvOfN_vrHE=-n zGS3HWhwx4<6_Mr3CjE7vZoTXUKuhU#+6vh}$LY1*B2%dM5SU@vky40mh zj1W0yuj)9IfGae~YYm+>RnS56QRO7Pzv#4X1kXhVk#=YQ_V!hq{y-( zETF?W>@eLaXJRs-wynX6fQ(jrvJzr>M}7h$JRf@*RV`7-KJT+mx(7;Km`)2&;5ggV!oRjFZpf;@m?7wNolC}=PcEogWse-H5J&#dPZSQ8@o^& z#8$k3R%kIkddI|lYdBS#2Y0T)?a4qdx|8V^sqX)%N?D#ZC)y%6od1ff$vw$Vh4d>u zU;$MfAtjY%y;`gFQizatD6|%ie>Y2?Y+kQlSuMf8<_-jt1+sfTTvRJ}yT9vNA0yuP zt~{d3EPCfx^%PNbiRK^^%c-U5;|alt_*Up7w|84}y)_yO00fNK>Lv|H_~<6fDX-{e znTCu?cTU$DT+(*`fuBY-&0zKku8j5bs@*o)Go z;-R(!i!dc?SkoQ)i%0P7K+GEG-X=0q#Ee8_zdM4XZHb8GIw0PsVj9h~a_=9$x(vuB zHfQXRs_wCXyQuN)nRlxbOWCb{njd)(g=Z;^LK8QppA{!RRt9Ggo?I(L=iLb&Ula0B zpt!6cV+mZj^a%Nqyta-$wON6avrtheG+ZBjq0?KEZ!ZPfK8{LbsFqL6M{c+`?5fBJ zz%nFMG9=9|Tlc9h3fGiZpwgT}?%YdeKhN+$Ql1{%X4bF(!dK?mIJff*`DW|-jrfnt zJ`$;FR`~Ia2|YLekzq<8k8hKu>ULb~q{%IUyl=SCr_x};s6W|u&EXX(-m;_CT2gjU zcKz*2KTJ$W{S)XKABG=|m}CJpO31mLaV85;ruXl?cVYp^VdB;{wyPwo+#hkVLK};t zU91!d>Rb+LS_ytzvv;W{Mh;^d#}V*p{F#P?tAFR!n!QB!+Nh~M7EnEfHx9STLfCy! z8=e-{MLTXKy`NkeZhjtNUR@vhY@!`O*0lJ`Y{Am#h;H1v%A2E~Z=YwwRTX9}t2^&V z!aaA-R8#ZH@Z~78;sv#y3OyIvU8fjB2+x83AlEhPGVE=8v9>vigZPKW)!AXRZJTcN z$M4U7*OGXHR%o433>ILACC;({G30-P>YFuhzCGF2XFMj!TM+iu+Eyy2+DyPb3o)cr zO)*a@FLU})g1)YMEcuk$X|B`Bs^)ggub7[kB<&FZ33XZMip^*5jEsG3c0=YD?J z-F0qfVoM1t>ntE%YFt=qW6zTXU~vrh;uqFdfAWPHz`A-ZSC+N-JwKb!=wI8A!RsY@ z;}_&Gol7m_VL+E*wOxjZmVKPH#`Rp{ z9Y-2>hvAm`=M^g|VN};q#5CWioSsa+s^RWmC3)HWtsV|_>&U|}2la9+^T#_DfM4?3 zWe~^)|08__cdOw>hEdhI3M3MVGK+g@+zUSE8qf-2W!A$syag1l zP4Tv5IK9i=-0-5?;W@-^m@H}JdZd#~#5#k%$qkBpwTeqkgUS9f0#P0|mQZD_@h0yc zPI`E`LoUv4l*JbAxD{(EFMAq~-ao+}|BZLc^|9E{Oqd%uxVuT1wqpSv zi|H0DpoIlY3GU&=_p4e9b_$HmUL6Z#Ymcc-_y@xCQp6Y0s|EsQ(_*! zY(2zt0r5?do^yLk@JyJzAz9`0C6Nxw%?v&}MKFA4i3M;=?WcBw3T1+f_J2(asTgez zsr9XY4$Vz2T+3W0zAfKjzZ_Yrw_3d*j3&I_8z(Y*9C+&kZC#WE>XJUor}WA|72k`N zKV|_aqWH-ty9NOR17ur`K*7Hjgm4_ll=04R4uiv}O`kC30Bt$0hC)3F;KXeJOMZdT zTf;pGaSR!zog2pBTF-3@D2y5>yoI+oa~Me9x?OjwKDM1CZ;#k;G}*#v_^5jtSIHV1 z<%y&2fB85&oVbRa_FkQQd~T7O-uJ%ZJx=RfRg4XBL1ot@tKp^_trxQr8{^f zChQcQyEQ1sJxgYd5OwB+(KYqTAu1|3Fgz>DrSANN1cWkEOm!N$C&U6cSirQ7I}7-T zn7)(R<+t}XFK?pM^FI0OnnGsj;95HZ`~ssc)Se z97A>zPx<^MH~yJ8B8l1}fxl6%$pRwd=w>WH57|nfU$w=qeIaBsJn4R*dVbA<@3y|D#M5-2Bz+q6i#f#$)%8E*q@r$G5LaEW~j^n-4_@`kC444TP z`c;N7=qF0$q#Q}RG;-=K8gV@NFF6sbF*D68D&B~xq7#g}&C=HhtN z>}W~eeYbi2Q2R>-%5Cz8+R716O{pYd4XFf5)emXMNZX0paOVw&$(#1gn;VB7!j8Nt zn>I-%Q;&*o%(AU@CWBRbg&E=>Dd zj3>&plP_6-_Pa3M`ojkZHO(`@r$|S2&JC;n@}e zJ+vL`CF0*(J>L~H+5Z)6kTOQoq{+QEyGcGIW1pw7ub00!s}nAq?PH|cFzn&Kx9G|x zruQ(ZF)QV@0y`l(Dc|uno;^v$++k4%K(y^%V0qbwI5eys}o0 z%a*_L$~3<^C9k2Td%P$t)+-JF)3GPMhv=nd4h5KX{B>3Qm@LeB>G>Me%-5U%f8cq}4*j38vC zUGURiEvdQUds8&+T8ec=_2AO{$f93~pH@Lf`oRwFr$?3ER)4}%R2q7{lk_7+)8cr@ z>Q`;t^shiCwMLwB7c|1%{ZB29MG)<~Om21yie4%W*S3G;{ee$?OR@9;;kFsJC$UnI zFz0Zw&H1JaT(l%iJ3nKQvc;@Y!B&)po+PYlcrlMBE|)l(lr#8Vv4Gf8uRrz%qtA&O z1=O34clW+Bo^%T;?j9c**neQ){nAJ(5$R~quJx7hna6x}&Nfs&^KF?g^m`?-sH}bY z^U8KV&2@{hprvqPGjW3ODWqR3Bfx~D*o}ve`-yghUhrM_WdVz&yyx1(R3lYz4V&lW zGPa954MimYehh@V;*j*me|}dbnE7CTk&<8nh5`J#RAsIg3X3+^69WE)f>@*f01+OE Ae*gdg literal 0 HcmV?d00001 diff --git a/www/images/log/ms_de_v2.jpg b/www/images/log/ms_de_v2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4999576d141912ce3d941ba5d5a595a85c0ba9f5 GIT binary patch literal 5699 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 ZSUT?(k;Eczb=vK`A_E&UNE7npzX5CEVJ!dv literal 0 HcmV?d00001 diff --git a/www/protected/components/MsHtml.php b/www/protected/components/MsHtml.php index 32de7f0..6a4f9d0 100644 --- a/www/protected/components/MsHtml.php +++ b/www/protected/components/MsHtml.php @@ -1,5 +1,5 @@ '; } + } + /** + * @param DateTime $date + * @param string $caption + * @param $parent + * @param $target + * @return string + */ + public static function interactiveCollapsedHeader($date, $caption, $parent, $target) + { + return + '

+
' . $date->format('d.m.Y') . '
+
' . $caption . '
+
+   +
+ '; + } + + /** + * Generates a pager header. + * @param string $heading the heading text. + * @param string $subtext the subtext. + * @param array $htmlOptions additional HTML attributes. + * @return string the generated pager header. + */ + public static function pageHeader($heading, $subtext, $htmlOptions = array()) + { + self::addCssClass('page-header', $htmlOptions); + $headerOptions = TbArray::popValue('headerOptions', $htmlOptions, array()); + $subtextOptions = TbArray::popValue('subtextOptions', $htmlOptions, array()); + $output = self::openTag('div', $htmlOptions); + $output .= self::openTag('h1', $headerOptions); + $output .= parent::encode($heading) . ' ' . self::tag('small', $subtextOptions, $subtext); + $output .= ''; + $output .= '
'; + $output .= ''; + return $output; } } \ No newline at end of file diff --git a/www/protected/components/ProgramHelper.php b/www/protected/components/ProgramHelper.php index e1f81c2..67a377f 100644 --- a/www/protected/components/ProgramHelper.php +++ b/www/protected/components/ProgramHelper.php @@ -86,7 +86,7 @@ class ProgramHelper { foreach ($dropDownModels as $row) { if (is_null($row)) - $progDropDown[] = TbHtml::menuDivider(); + $progDropDown[] = MsHtml::menuDivider(); else $progDropDown[] = array('label' => $row->Name, 'url' => $row->getLink()); } diff --git a/www/protected/components/widgets/ExpandedLogHeader.php b/www/protected/components/widgets/ExpandedLogHeader.php index ce0c094..ab8b0bf 100644 --- a/www/protected/components/widgets/ExpandedLogHeader.php +++ b/www/protected/components/widgets/ExpandedLogHeader.php @@ -6,10 +6,43 @@ class ExpandedLogHeader extends CWidget { public $link = ''; public $content = ''; + public $collapseID = -1; + public $collapseOwner = ''; + public $collapseOpen = false; + public function run() { if ($this->date == null) $this->date = new DateTime('2000-01-01'); $this->render('expandedLogHeader'); } + + /** + * @return bool + */ + public function isCollapsable() { + return ($this->collapseID >= 0); + } + + public function getContentID() { + return 'expCollapseElem' . $this->collapseID; + } + + public function getContentTagDefinition() { + $contentClasses = 'expCollContent markdownOwner'; + $contentID = ''; + + if ($this->isCollapsable()) { + $contentClasses .= ' collapse'; + if ($this->collapseOpen) { + $contentClasses .= ' in'; + } + + $contentID = 'id="' . $this->getContentID() . '"'; + } + + $contentClasses = 'class="' . $contentClasses . '"'; + + return ' ' . $contentClasses . ' ' . $contentID; + } } \ No newline at end of file diff --git a/www/protected/components/widgets/views/demo.md b/www/protected/components/widgets/views/demo.md deleted file mode 100644 index b35ffd9..0000000 --- a/www/protected/components/widgets/views/demo.md +++ /dev/null @@ -1,519 +0,0 @@ -Let's do Befunge-93 -===================== - -Hello, this is my try to teach *you* a little bit of Befunge-93. - -Preamble --------- - -You may ask why someone should learn such a esoteric language as Befunge-93 ? -It has close to no real world application and is far away from every other language you may already know. - -But wait, Befunge has one really neat property *(at least in my opinion)* its really fun to write in it. And that **because** it's totally different from every other language. Writing code in Befunge has a lot to do with planning and laying out your code. -Yes physically planning how your code will look and where you have to write specific subroutines. -But enough, let's go look at some code. - -Chapter 1: A whole new Dimension --------------------------------- - -### Choosing the right Tools - -Okay, wait - first you need an interpreter, you know, to run the programs you will write. -For the beginning i recommend to simply use an javascript interpreter - they are missing a lot of important features, like manually jump in your program, breakpoints, or the most simple property: speed. -But they are easy too use, and for now you will write programs the size you don't need all these fancy features. -So just Google for an online-interpreter - there are many out there, and if you need an more advanced interpreter later you can take a look at my own interpreter *BefunExec*. - -### The simplest program - -OKay, now let's start - this time for real. -You will need an empty ASCII-encoded textfile - this will be our code. -You have to understand that Befunge operates in an 2-dimensional space - like in normal programming you have a PC (Programm Counter) that describes your current position. -In normal programs (you know, C, Phyton, Java etc) this PC is 1dimensional, in Befunge it's 2dimensional. At the begining its positioned in the top-left corner and with every tick its moving one field to the left. -So every Character in your text-document is a command - the most simple command is a space. The space is the `NOP` Command - the No operation - -> **NOTE:** -> -> - Befunge operates in a 2-dimensional Grid -> - The programm-counter starts topleft and initially moves right -> - Every character in your document is then an individual command - - -So our first programm can be as simple as that: - -~~~~~~~~~~~~~~~~ -[php] - -~~~~~~~~~~~~~~~~ - -### And it loops around - -You see correct - an empty file is indeed a valid Befunge Program. -You may ask what it does. That's kinda simple, it just executes NOP over and over again. -A Befunge-93 program has the size of 80x25, and when the PC reaches the right edge it just wraps around and comes back in on the left edge. - -> **NOTE:** -> -> - Befunge-93 programs have a fixed size of 80x25 -> - The Befunge space is infinity - it wraps around its edges - -OK, but now we want to write *real* commands to our file - there are 4 basic commands ( `v` , `>` , `^` and `<` ). -With these "arrows" you are able to change the direction of the PC. -So with these commands we are now able to write a rather simple endless-loop program: - -~~~~~~~~~~~~~~~~ -[php] -> v - - -^ < -~~~~~~~~~~~~~~~~ - -![img01][1] - -### Stack it up - -We now have a Grid where we can layout our program and a PC that runs through this grid to execute our precious programm. Isn't that wonderful? - -*But wait! There's more* - -In fact Befunge has one more element you should know about: **The stack**. - -Every Befunge Command has a Stack you can manipulate in your program, you can do all the normal stackoperations on it, push, pop, peek etc. - -The Commands to push something on the stack are `0` - `9`. So if you write - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -0 1 9 9 -~~~~~~~~~~~~~~~~ - -it will push a zero, a one, and two nines on the stack. -If you want to end the program after that you can use the **@** Command. - -> **NOTE:** -> -> - You can push a digit to the stack with the commands `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `0` -> - The Command `@` stops the program - -You also easily push values to the stack with the so called *stringmode* -With the command `"` you start the *stringmode* and with the same command `"` you can also end it again. -While the *stringmode* is active every Character the PC encounters will be pushed as an ASCII-Value to the stack. - -The Program -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -"abc" @ -~~~~~~~~~~~~~~~~ - -will so leave the stack in the following state after completion: - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -| 99 | -| 98 | -| 97 | -~~~~~~~~~~~~~~~~ - -> **NOTE:** -> -> - A `"` starts and ends the stringmode -> - While in stringmode every Command will be pushed as its ASCII Value to the stack - -### Finally a real program - -Okay, okay - I highly appreciate it that you are still following me. I know i promised you a Hello-World program. And I'm happy to announce that we are finally at the point where we can write it. -Only one last command is missing, the character-output (`,`) command. This command takes one value of the stack - interprets it as an ASCII-Value, and outputs it to wherever the interpreter show the output. - -So now - lets write this program: - -~~~~~~~~~~~~~~~~ -"dlroW olleH" ,,,,,,,,,,, @ -~~~~~~~~~~~~~~~~ - -![img02][2] - -And thats it - a really simple Hello World. As you can see the program has two parts, first we fill the stack with the ASCII values for the two words "Hello World", and then we print each char to the output. -You may ask why Hello World is written backwards - that's rather simple, because we work with a stack the last pushed value is the first popped value (LI-FO principle ). And so - to output something in the correct order - we have to input it in the reversed order - -Chapter 2: Let's golf ---------------------- - -### What we did wrong - -Some of you probably know *Codegolf* . These are programming challenges with the target, to write programm-code with the least amount of bytes. - -Because of the limited amount of space in Befunge, this is here more important than ever. In our last example you saw how to output a string, but as you can imagine the longer the string gets the more commas you have to write and faster than you can imagine you have filled the whole space. -So now let's try to optimize our Hello World a little bit - -> **NOTE:** -> *"Good code is small code"* - -### Decision, Decisions, Decisions - -So you may ask what is the basic feature of a programming language, what feature can't be scrapped away without loosing something essentials. -One of these basics things is the possibility to do conditional logic. Your program has to react to something and react differently depending on the results. - -So now it's time to introduce 2 new commands `|` and `_` . These commands are called "Decision making". They pop a value from the stack and change the PC direction depending on its value. The value is interpreted as an boolean, the conversion used is the same you probably know from C. If the value is Zero, its false - otherwise its true. -The `|` Command routes the PC to the top if the value is true and to the bottom if the value is false. Respective behaves the `_` command with left and right. - -An other command is the `:`, what it does is pretty simple - it duplicates the top-stack value. -And the last command is `$`. It's also a kinda simple command: it pops a value from the stack - nothing more, it justs pops it and then forgets about it. -With this knowledge we can now finally optimize our *Hello World*: - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -v - - v , < -> "dlroW olleH" > : | - > $ @ -~~~~~~~~~~~~~~~~ - -![img03][3] - -So what happens here ? - -- First we put "Hello World" reversed on the stack -- The we go in a loop, in every loop we do - - Duplicate the TOS[^tos] - - Test if the TOS is != 0 (true for every ASCII Character) - - Output the TOS -- This loop goes on until the stack is empty. When we now try to access the empty stack (with the duplicate command) it results in two zeros on the stack. This is so because an access to an empty stack will always result in a zero -- The returned zero is now interpreted as false and we exit the loop, the remaining zero on the stack is removed with the pop command and the program exits on the `@` command - -> **NOTE:** -> -> - **_** and **|** change the PC direction depending on a value popped from the stack -> - **:** duplicates the top-of-stack-value -> - **$** removes the top-of-stack-value -> - Accessing an empty stack will result in a *zero* - -### One step further - -So our Hello World is now a lot smaller. Especially if you remove all the unneeded NOPs in the previous example. -But our standard shall be to become the very best *like no one ever was ...*. - -So now I shall introduce you to one of the more interesting commands - **the trampoline** `#` -After your PC encounters the trampoline it "jumps" over the next command, this results in a few very neat tricks you can do in your code. - -The next Hello World i will show you shall be our last one. This is the standard code to output a string of variable length and i don't believe that there is a more optimized way to do it. - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -`"dlroW olleH">:#,_@ -~~~~~~~~~~~~~~~~ - -![img04][4] - -Here you can see another neat feature of Befunge - the jump command is used twice, one time from left to right and the second time from right to left, so its used to skip two different commands (`:` and `,`) although only being one command. - -Chapter 3: Everything is mathematical -------------------------------------- - -### Simple Calculus 101 - -Our programs are still rather static, we want them to actually do some work, for example calculate something. -Luckily Befunge has a few operational commands in its repertoire. - -- `+` The *ADD* command: Pops two values from the stack and pushed the result of the addition -- `-` The *SUB* command: Pops two values from the stack and pushed the result of the subtraction -- `*` The *MULT* command: Pops two values from the stack and pushed the result of the multiplication -- `/` The *DIV* command: Pops two values from the stack and pushed the result of the division -- `%` The *MOD* command: Pops two values from the stack and pushed the result of the modulo operation -- `!` The *NOT* command: Pops one value from the stack, interprets it as a boolean and pushes the negation -- `´` The *COMP* command: Pops two values from the stack and pushed the result of the compare "a>b" - -So if you want to calculate `4+5` just write - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -45+ -~~~~~~~~~~~~~~~~ -*speak:* - -- Push 4 to stack -- Push 5 to stack -- Pop 4 and 5 -> Push (4+5=)9 to the stack - -And if you want `(4+5)*6+7` you write - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -45+6*7+ -~~~~~~~~~~~~~~~~ - -or - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -4567+*+ -~~~~~~~~~~~~~~~~ - -Some of you may say that this notation seems familiar. That's true - it's the so called postfix[^pfix] notation. -This is one of Befunge's very neat "features" writing a mathematical expression will always result in a postfix notation and you can simply write a postfix notation in Befunge. - -> **NOTE:** -> -> - +, *, - ,/, %, !, ` are the operator commands -> - These pop their arguments from the stack and push the result back -> - You can write mathematical expressions in postfix notation - -### ... Eight, Nine, Ten ? - -Perhaps you remember Chapter 2, we learned how to push digits to the stack. But probably you will one day feel the need to have values greater `9` on the stack. Now you can't just simply write `12` to push a twelve. - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -12 -~~~~~~~~~~~~~~~~ - -would just push a `1` and a `2` on the stack. -The only option we have is two write a formula which results in a twelve on the stack, for example: - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -66+ -~~~~~~~~~~~~~~~~ -or -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -62* -~~~~~~~~~~~~~~~~ -or -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -93+ -~~~~~~~~~~~~~~~~ - -You see there are a lot of ways displaying the same value and we sure would like to know the best (= shortest) way to do so. - -Now there are a few recipes how to do so: - -#### Addition - -The most simple way of displaying numbers is expressing them with addition. -So -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -12 => 93+ -19 => 991+ -100 => 999999999991+ -~~~~~~~~~~~~~~~~ - -As you can see this method does not scale very well, and you will reach the acceptable limit pretty fast when the number becomes high enough. - -#### Base-9 - -Base-9 is by far my favorite way of expressing numbers. -You probably know about different bases in number representation. `14` is `14` when written in base-10 (our everyday standard). But its also `D` in base-16 (or hexadecimal as you may know it). Or its `16` in base-8 (= octal), or its `1110` in base-2 (= binary). -Know is base-9 something you probably never heard of, its not one of the bases you meet when walking normally through life, but in this case it has its justification to exist. - -Now back to work, we want to encode `105` (base-10). -`105` is `126` in base-9 and you can easily convert bases with this formula: - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -(((1*9) + 2) * 9) + 6 => 105 -~~~~~~~~~~~~~~~~ - -or in Befunge (Postfix): - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -69 29 1 *+ *+ -~~~~~~~~~~~~~~~~ -or shorter: -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -69291*+*+ -~~~~~~~~~~~~~~~~ - -Now you see why we use base-9, because we need to write the `9` in Befunge and `9` is the highest number we can push onto the stack in a single command. - -This representation is nice because its really fast (and easy) to calculate the representation - even for big numbers, an because you can easily tell for every number you want how long its base-9-representation will be. - -#### Factorization - -Base-9 is nice in most cases, but often its not the optimal way. Factorization is often more compact. - -The idea here is that you can split a number into its factors (and the factors should hopefully be `<10` ) and then multiply them. - -So `196` `(=4*7*7)` becomes - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -477* -~~~~~~~~~~~~~~~~ - -Its said that this only works nice when you can factorize the number with factors smaller ten. Otherwise you would need to incorporate other mathematical operation to get to your result, finding the optimal combination here can be very CPU-intensive. - -So for `107` a way of displaying it is: - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -92+9*8+ -~~~~~~~~~~~~~~~~ - -#### Stringify - -At last we can use a neat little trick. When we printed "Hello World", we put the ASCII values of the individual chars onto the stack. We can use that to express greater values. For example expressing `107` is as easy as `"k"`. - -And for greater values you can even go on and write expressions based on the ASCII values of character: - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -"~~)'"*++ (= 1851) -~~~~~~~~~~~~~~~~ - -### Example - -Number| Method | Code |Number| Method | Code |Number| Method | Code -------|----------------|----------------|------|----------------|----------------|------|----------------|---------------- - 0 | Boolean | `0` | 40 | Factorization | `58*` | 400 | Factorization | `25*5*8*` - 1 | Boolean | `1` | 41 | Stringmode | `")"` | 401 | Base9 | `59894*+*+` - 2 | Digit | `2` | 42 | Factorization | `67*` | 402 | Factorization | `79*4+6*` - 3 | Digit | `3` | 43 | Stringmode | `"+"` | 403 | Base9 | `79894*+*+` - 4 | Digit | `4` | 44 | Stringmode | `","` | 404 | Base9 | `89894*+*+` - 5 | Digit | `5` | 45 | Factorization | `59*` | 405 | Factorization | `59*9*` - 6 | Digit | `6` | 46 | Stringmode | `"."` | 406 | Base9 | `19095*+*+` - 7 | Digit | `7` | 47 | Stringmode | `"/"` | 407 | Factorization | `59*9*2+` - 8 | Digit | `8` | 48 | Factorization | `68*` | 408 | Factorization | `98+3*8*` - 9 | Digit | `9` | 49 | Factorization | `77*` | 409 | Factorization | `59*9*4+` - 10 | Factorization | `25*` | 50 | Stringmode | `"2"` | 410 | Base9 | `59095*+*+` - 11 | Factorization | `92+` | 51 | Stringmode | `"3"` | 411 | Base9 | `69095*+*+` - 12 | Factorization | `26*` | 52 | Stringmode | `"4"` | 412 | Base9 | `79095*+*+` - 13 | Factorization | `94+` | 53 | Stringmode | `"5"` | 413 | Factorization | `69*5+7*` - 14 | Factorization | `27*` | 54 | Factorization | `69*` | 414 | Base9 | `09195*+*+` - 15 | Factorization | `35*` | 55 | Stringmode | `"7"` | 415 | Factorization | `99*2+5*` - 16 | Factorization | `28*` | 56 | Factorization | `78*` | 416 | Factorization | `94+4*8*` - 17 | Factorization | `98+` | 57 | Stringmode | `"9"` | 417 | Base9 | `39195*+*+` - 18 | Factorization | `29*` | 58 | Stringmode | `":"` | 418 | Base9 | `49195*+*+` - 19 | Base9 | `192*+` | 59 | Stringmode | `";"` | 419 | Base9 | `59195*+*+` - 20 | Factorization | `45*` | 60 | Stringmode | `"<"` | 420 | Factorization | `25*6*7*` - 21 | Factorization | `37*` | 61 | Stringmode | `"="` | 421 | Base9 | `79195*+*+` - 22 | Base9 | `492*+` | 62 | Stringmode | `">"` | 422 | Base9 | `89195*+*+` - 23 | Base9 | `592*+` | 63 | Factorization | `79*` | 423 | Factorization | `59*2+9*` - 24 | Factorization | `38*` | 64 | Factorization | `88*` | 424 | Factorization | `59*8+8*` - 25 | Factorization | `55*` | 65 | Stringmode | `"A"` | 425 | Factorization | `98+5*5*` - 26 | Base9 | `892*+` | 66 | Stringmode | `"B"` | 426 | Factorization | `79*8+6*` - 27 | Factorization | `39*` | 67 | Stringmode | `"C"` | 427 | Factorization | `69*7+7*` - 28 | Factorization | `47*` | 68 | Stringmode | `"D"` | 428 | Base9 | `59295*+*+` - 29 | Base9 | `293*+` | 69 | Stringmode | `"E"` | 429 | Base9 | `69295*+*+` - 30 | Factorization | `56*` | 70 | Stringmode | `"F"` | 430 | Base9 | `79295*+*+` - 31 | Base9 | `493*+` | 71 | Stringmode | `"G"` | 431 | Base9 | `89295*+*+` - 32 | Factorization | `48*` | 72 | Factorization | `89*` | 432 | Factorization | `68*9*` - 33 | Stringmode | `"!"` | 73 | Stringmode | `"I"` | 433 | Factorization | `68*9*1+` - 34 | Base9 | `793*+` | 74 | Stringmode | `"J"` | 434 | Base9 | `29395*+*+` - 35 | Factorization | `57*` | 75 | Stringmode | `"K"` | 435 | Base9 | `39395*+*+` - 36 | Factorization | `49*` | 76 | Stringmode | `"L"` | 436 | Base9 | `49395*+*+` - 37 | Stringmode | `"%"` | 77 | Stringmode | `"M"` | 437 | Factorization | `68*9*5+` - 38 | Stringmode | `"&"` | 78 | Stringmode | `"N"` | 438 | Factorization | `89*1+6*` - 39 | Stringmode | `"'"` | 79 | Stringmode | `"O"` | 439 | Factorization | `68*9*7+` - - - -Chapter 4: One small step for a man ------------------------------------ - -As you might see in the TableOfContents this tutorial is reaching its end. -There is only one more topic i want to present you and after that only one more example to show. -I hope I could inspire you to do a little bit more with a little bit unconventional languages. Also I hope you had as much fun reading this as I had writing this. Or - wait, no - I hope you had more fun than I ... - -### Be the change you want to see - -Befunge has one pretty big feature you haven't even seen now ... **self-modification**. -Yes you heard right, Befunge is capable of modifying its own code while running. - -The responsible commands are `p` and `g`, namely *put* and *get*. - -With *put* you can modify a specific command. *put* gets 3 Values from the stack `x`, `y` and `value`. `x` and `y` describe the position of the command and `value` is the new value of this field. - -The *get* command works the other way around, it gets the value of a command at a specific position. *get* gets 2 values from the stack `x` and `y`, these values describe a specific field in the code, the command then gets the ASCII value of this command and pushed is onto the stack. - -### A more complex example - -Perhaps you want to try to solve the next task on your own. You already know everything you need and at the bottom of this tutorial you will find a full table of every command. - -> You shall write a program that outputs the Fibonacci numbers, one after the other -> An example output would look like: -> `1,1,2,3,5,8 ...` - -I write an simple solution that does this task. Note that i didn't highly optimize it on purpose, so its easier to follow whats actually going on: - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] ->> 100p 110p 1. ",", 1.",", > 00g 10g: 00p + :. ",", 10p v - ^ < -~~~~~~~~~~~~~~~~ - -![img05][5] - -If you want an explanation whats going on here, i also wrote an annotated version: - -~~~~~~~~~~~~~~~~ -[JAVASCRIPT] -[0,0] ist das erste "Speicherfeld" - es enthält den vorletzten Wert -[1,0] ist das zweite "Speicherfeld" - es enthält den letzten Wert - -100p Feld[0,0] mit '1' initialisieren -110p Feld[1,0] mit '1' initialisieren -1.",", '1,' ausgeben -1.",", '1,' ausgeben - -> Anfang Schleife -00g Hole [0,0] -10g Hole [1,0] -: Dupliziere [1,0] -00p Setze Feld [0,0] auf den Wert von [1,0] -+ Addiere [0,0] + [1,0] -: Dupliziere das Ergebnis -.",", Gib das Ergebnis und ein Komma aus -10p Schreibe das Ergebnis in [1,0] -v Ende Schleife -~~~~~~~~~~~~~~~~ - -Note that we use the Fields `[0,0]` and `[0,1]` are used as temporary "variable" fields. We can put there values with the `p` command and later read them with the `g` command - -### Command overview - -Charakter | Name | Description -----------|---------|--------------------------------------------------------------------- -`+` | ADD | Adds two values from the stack together and pushes the result back -`-` | SUB | Subtracts two values from the stack from each other and pushes the result back -`*` | MULT | Multiplicates two values from the stack and pushes the result back -`/` | DIV | Divides two values from the stack and pushes the result back -`%` | MOD | Executes Modulo on two values from the stack and pushed teh result back -`!` | NOT | Gets a (boolean) value from the stack and pushes it negated back -`´` | GT | Pushes the result of a greater than over two value from the stack, to the stack -`^` | PCT | Set PC-Delta to *up* -`>` | PCL | Set PC-Delta to *left* -`v` | PCB | Set PC-Delta to *down* -`<` | PCR | Set PC-Delta to *right* -`?` | PCRAND | Set PC-Delta to a random direction -`\#` | JMP | Jumps over the next command -`_` | IFH | A horizontal If -`\|` | IFV | A vertical If -`:` | DUP | Duplicates the TOS -`\` | SWAP | Swaps two values from the stack -`$` | POP | Removes the TOS -`.` | OUT-INT | Outputs the TOS as a number -`,` | OUT-ASC | Outputs the TOS as a character -`&` | IN-INT | Asks the user for a number and puts it on the stack -`~` | IN-ASC | Asks the user for a character and puts it on the stack -`p` | PUT | Sets a field to a specific value -`g` | GET | Gets the value of a field and pushes it onto the stack -`@` | STOP | Stops the programm execution -`"` | STRMODE | Starts/Stops the stringmode -`0`-`9` | NUMBERS | Pushes the respective number onto the stack - -[^tos]: TOS = top of stack - -[^pfix]: Postfix = [Postfix notation][6] - - - [1]: http://i.imgur.com/Jkks7Uy.gif?1 - [2]: http://i.imgur.com/Z5Ljr5Z.gif?1 - [3]: http://i.imgur.com/82FKwkM.gif?1 - [4]: http://i.imgur.com/AqpsPRW.gif?1 - [5]: http://i.imgur.com/rxqZhIJ.gif?1 - [6]: http://en.wikipedia.org/wiki/Reverse_Polish_notation \ No newline at end of file diff --git a/www/protected/components/widgets/views/expandedLogHeader.php b/www/protected/components/widgets/views/expandedLogHeader.php index d59cfd3..21dba5a 100644 --- a/www/protected/components/widgets/views/expandedLogHeader.php +++ b/www/protected/components/widgets/views/expandedLogHeader.php @@ -2,23 +2,29 @@ /* @var $this ExpandedLogHeader */ ?> -
+
- date, $this->caption, $this->link); ?> + isCollapsable()) { + echo MsHtml::interactiveCollapsedHeader($this->date, $this->caption, $this->collapseOwner, '#' . $this->getContentID()); + } else { + echo MsHtml::collapsedHeader($this->date, $this->caption, $this->link); + } + ?> -
-

- getContentTagDefinition(); ?>> +

+

+ beginWidget('CMarkdown'); + $this->beginWidget('CMarkdown'); - echo file_get_contents('protected/components/widgets/views/demo.md'); + echo $this->content; - $this->endWidget(); + $this->endWidget(); - ?> - - content; ?> -

+ ?> +

+
\ No newline at end of file diff --git a/www/protected/components/widgets/views/fullProgPreview.php b/www/protected/components/widgets/views/fullProgPreview.php index 66f0dd8..633974a 100644 --- a/www/protected/components/widgets/views/fullProgPreview.php +++ b/www/protected/components/widgets/views/fullProgPreview.php @@ -24,9 +24,9 @@ program->Sterne) - echo TbHtml::icon(TbHtml::ICON_STAR); + echo MsHtml::icon(MsHtml::ICON_STAR); else - echo TbHtml::icon(TbHtml::ICON_STAR_EMPTY); + echo MsHtml::icon(MsHtml::ICON_STAR_EMPTY); } ?> @@ -42,7 +42,7 @@

program->Kategorie)) { - echo TbHtml::icon(TbHtml::ICON_TAG); + echo MsHtml::icon(MsHtml::ICON_TAG); echo $this->program->Kategorie . ''; } ?> @@ -51,7 +51,7 @@

program->getLanguageList() as $lang) { - echo TbHtml::icon(TbHtml::ICON_GLOBE); + echo MsHtml::icon(MsHtml::ICON_GLOBE); echo $lang; echo '       '; } diff --git a/www/protected/components/widgets/views/thumbnailProgPreview.php b/www/protected/components/widgets/views/thumbnailProgPreview.php index 9f290c1..661ab38 100644 --- a/www/protected/components/widgets/views/thumbnailProgPreview.php +++ b/www/protected/components/widgets/views/thumbnailProgPreview.php @@ -31,7 +31,7 @@

category)) { - echo TbHtml::icon(TbHtml::ICON_TAG); + echo MsHtml::icon(MsHtml::ICON_TAG); echo $this->category . ''; } ?> @@ -40,7 +40,7 @@

language as $lang) { - echo TbHtml::icon(TbHtml::ICON_GLOBE); + echo MsHtml::icon(MsHtml::ICON_GLOBE); echo $lang; echo '       '; } @@ -52,9 +52,9 @@ starcount) - echo TbHtml::icon(TbHtml::ICON_STAR); + echo MsHtml::icon(MsHtml::ICON_STAR); else - echo TbHtml::icon(TbHtml::ICON_STAR_EMPTY); + echo MsHtml::icon(MsHtml::ICON_STAR_EMPTY); } ?>

diff --git a/www/protected/config/env/dev.php b/www/protected/config/env/dev.php index fcd5729..2b9a256 100644 --- a/www/protected/config/env/dev.php +++ b/www/protected/config/env/dev.php @@ -20,6 +20,15 @@ return [ 'errorAction' => 'msmain/debugerror', ], + 'urlManager' => + [ + 'rules' => + [ + 'gii'=>'gii', + 'gii/'=>'gii/', + 'gii//'=>'gii//', + ], + ], ], diff --git a/www/protected/config/main.php b/www/protected/config/main.php index 690eeb2..f9365f3 100644 --- a/www/protected/config/main.php +++ b/www/protected/config/main.php @@ -10,6 +10,7 @@ require_once('protected/lib/ArrayX.php'); use Yiinitializr\Helpers\ArrayX; return ArrayX::merge( + require_once('env/' . YII_CUSTOM_ENV . '.php'), [ 'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..', 'name' => 'Mikescher.de', @@ -54,6 +55,7 @@ return ArrayX::merge( [ // enable cookie-based authentication 'allowAutoLogin' => true, + 'loginUrl'=> ['msmain/login'], ], 'urlManager' => @@ -66,6 +68,9 @@ return ArrayX::merge( 'programs/' => 'programs/index', 'programs/view/' => 'programs/view', + 'log' => ['msmain/log', 'defaultParams' => ['logid' => '-1']], + 'log/' => ['msmain/log', 'defaultParams' => ['logid' => '-1']], + 'downloads/details.php' => 'programs/index', // Compatibility 'downloads/downloads.php' => 'programs/index', // Compatibility 'downloads/' => 'programs/view', // Compatibility @@ -102,4 +107,4 @@ return ArrayX::merge( // this is used in contact page 'adminEmail' => 'webmaster@example.com', ], - ], require_once('env/' . YII_CUSTOM_ENV . '.php')); \ No newline at end of file + ]); \ No newline at end of file diff --git a/www/protected/controllers/MSMainController.php b/www/protected/controllers/MSMainController.php index a9dbe12..6f53be7 100644 --- a/www/protected/controllers/MSMainController.php +++ b/www/protected/controllers/MSMainController.php @@ -4,9 +4,15 @@ class MSMainController extends MSController { public function actionIndex() { - $data = array(); + $criteria = new CDbCriteria; + $criteria->order = "date DESC"; + $all_log = Log::model()->findAll($criteria); + /* @var $all_log Log[] */ + + $data = array(); $data['program'] = ProgramHelper::GetDailyProg(); + $data['logs'] = $all_log; $this->render('index', $data); } @@ -69,9 +75,6 @@ class MSMainController extends MSController $this->render('about', $data); } - /** - * Displays the login page - */ public function actionLogin() { $model=new LoginForm; @@ -95,12 +98,23 @@ class MSMainController extends MSController $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); } + + public function actionLog($logid) { + $criteria = new CDbCriteria; + $criteria->order = "date DESC"; + + $all = Log::model()->findAll($criteria); + /* @var $all Log[] */ + + $this->render('log', + [ + 'logs' => $all, + 'logid' => $logid, + ]); + } } \ No newline at end of file diff --git a/www/protected/models/Log.php b/www/protected/models/Log.php new file mode 100644 index 0000000..21d8a6d --- /dev/null +++ b/www/protected/models/Log.php @@ -0,0 +1,115 @@ +'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', + 'date' => 'Date', + 'title' => 'Title', + 'content' => 'Content', + ); + } + + /** + * 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() + { + + $criteria=new CDbCriteria; + + $criteria->compare('ID',$this->ID); + $criteria->compare('date',$this->date,true); + $criteria->compare('title',$this->title,true); + $criteria->compare('content',$this->content,true); + + 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 Log the static model class + */ + public static function model($className=__CLASS__) + { + return parent::model($className); + } + + //#################################### + //########### MY FUNCTIONS ########### + //#################################### + + /** + * @return DateTime + */ + public function getDateTime() { + return new DateTime($this->date); + } + + /** + * @return string + */ + public function getLink() { + return '/log/' . $this->ID; + } +} diff --git a/www/protected/models/Program.php b/www/protected/models/Program.php index 2425d33..28e3c62 100644 --- a/www/protected/models/Program.php +++ b/www/protected/models/Program.php @@ -179,4 +179,11 @@ class Program extends CActiveRecord public function getLanguageList() { return explode("|", $this->Language); } + + /** + * @return DateTime + */ + public function getDateTime() { + return new DateTime($this->add_date); + } } diff --git a/www/protected/views/layouts/column2.php b/www/protected/views/layouts/column2.php index 1822777..a624e24 100644 --- a/www/protected/views/layouts/column2.php +++ b/www/protected/views/layouts/column2.php @@ -18,7 +18,7 @@ use Yiinitializr\Helpers\ArrayX; widget('bootstrap.widgets.TbNav', [ - 'type' => TbHtml::NAV_TYPE_LIST, + 'type' => MsHtml::NAV_TYPE_LIST, 'items' => ArrayX::merge( [ ['label' => 'List header'], diff --git a/www/protected/views/layouts/main.php b/www/protected/views/layouts/main.php index aa9e59e..f7cec48 100644 --- a/www/protected/views/layouts/main.php +++ b/www/protected/views/layouts/main.php @@ -50,13 +50,13 @@ ['label' => '[[Log "'.Yii::app()->user->name.'" out]]', 'url' => '/logout', 'visible' => !Yii::app()->user->isGuest] ], ], - TbHtml::navbarSearchForm('search', '', + MsHtml::navbarSearchForm('search', '', [ 'class' => 'pull-right', 'placeholder' => 'Search', 'inputOptions' => [ - 'append' => TbHtml::submitButton(TbHtml::icon(TbHtml::ICON_SEARCH)), + 'append' => MsHtml::submitButton(MsHtml::icon(MsHtml::ICON_SEARCH)), 'addOnOptions' => [ 'class' => 'pull-right', diff --git a/www/protected/views/msmain/about.php b/www/protected/views/msmain/about.php index 1b56152..fa69f79 100644 --- a/www/protected/views/msmain/about.php +++ b/www/protected/views/msmain/about.php @@ -1,5 +1,5 @@ pageTitle=Yii::app()->name; @@ -14,24 +14,24 @@ $this->selectedNav = 'about';
- - + + - +

Welcome to my private homepage.

My name is Mike Schwörer, and this is my homepage - here i upload program i write in my free time and sometimes i even write a blog entry.

-

If you want you can look at the things I programd

+

If you want you can look at the things I programd

beginWidget('bootstrap.widgets.TbActiveForm', [ - 'layout' => TbHtml::FORM_LAYOUT_HORIZONTAL + 'layout' => MsHtml::FORM_LAYOUT_HORIZONTAL ]); ?> @@ -41,37 +41,37 @@ $this->selectedNav = 'about'; echo $form->textFieldControlGroup($model, 'name', [ 'placeholder' => 'Name', - 'size' => TbHtml::INPUT_SIZE_XXLARGE, - 'prepend' => TbHtml::icon(TbHtml::ICON_USER), + 'size' => MsHtml::INPUT_SIZE_XXLARGE, + 'prepend' => MsHtml::icon(MsHtml::ICON_USER), 'span' => 2, ]); echo $form->textFieldControlGroup($model, 'email', [ 'placeholder' => 'Email address', - 'size' => TbHtml::INPUT_SIZE_XXLARGE, - 'prepend' => TbHtml::icon(TbHtml::ICON_ENVELOPE), + 'size' => MsHtml::INPUT_SIZE_XXLARGE, + 'prepend' => MsHtml::icon(MsHtml::ICON_ENVELOPE), 'span' => 2, ]); echo $form->textFieldControlGroup($model, 'header', [ 'placeholder' => 'Header', - 'size' => TbHtml::INPUT_SIZE_XXLARGE, - 'prepend' => TbHtml::icon(TbHtml::ICON_TAG), + 'size' => MsHtml::INPUT_SIZE_XXLARGE, + 'prepend' => MsHtml::icon(MsHtml::ICON_TAG), 'span' => 5, ]); echo $form->textAreaControlGroup( $model, 'message', [ 'placeholder' => 'Message', - 'size' => TbHtml::INPUT_SIZE_XXLARGE, + 'size' => MsHtml::INPUT_SIZE_XXLARGE, 'rows' => 10, ]); ?> - TbHtml::BUTTON_COLOR_PRIMARY)), - TbHtml::resetButton('Reset'), + MsHtml::submitButton('Submit', array('color' => MsHtml::BUTTON_COLOR_PRIMARY)), + MsHtml::resetButton('Reset'), ], [ 'class' => 'cstm-background-white', @@ -80,6 +80,6 @@ $this->selectedNav = 'about'; endWidget(); ?>
- +
\ No newline at end of file diff --git a/www/protected/views/msmain/index.php b/www/protected/views/msmain/index.php index 890f685..a314e71 100644 --- a/www/protected/views/msmain/index.php +++ b/www/protected/views/msmain/index.php @@ -1,6 +1,7 @@ pageTitle=Yii::app()->name; @@ -18,44 +19,30 @@ $this->selectedNav = 'index'; widget('FullProgPreview', [ 'caption' => "Program of the Day:", 'program' => $program, ]); + + $i = 0; + foreach ($logs as $logelem) { + if ($i == 0) { + $this->widget('ExpandedLogHeader', + [ + 'date' => $logelem->getDateTime(), + 'caption' => $logelem->title, + 'link' => '', + 'content' => $logelem->content, + ]); + } else { + echo MsHtml::collapsedHeader($logelem->getDateTime(), $logelem->title, $logelem->getLink()); + } + + $i++; + } + ?> - widget('ExpandedLogHeader', - [ - 'date' => new DateTime(), - 'caption' => 'test', - 'link' => '#', - 'content' => - 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et - dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. - Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit - amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna - aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd - gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.', - ]); - ?> - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/www/protected/views/msmain/log.php b/www/protected/views/msmain/log.php new file mode 100644 index 0000000..a660b6f --- /dev/null +++ b/www/protected/views/msmain/log.php @@ -0,0 +1,40 @@ +pageTitle=Yii::app()->name; + +$this->breadcrumbs= + [ + 'Log' + ]; + +$this->selectedNav = ''; + +?> + +
+ + + +
+ widget('ExpandedLogHeader', + [ + 'date' => new DateTime($logelem->date), + 'caption' => $logelem->title, + 'content' => $logelem->content, + 'collapseID' => $i, + 'collapseOwner' => '#lca', + 'collapseOpen' => ($logelem->ID == $logid), + ]); + } + ?> +
+ +
\ No newline at end of file diff --git a/www/protected/views/msmain/login.php b/www/protected/views/msmain/login.php index 11af234..0a4dc6a 100644 --- a/www/protected/views/msmain/login.php +++ b/www/protected/views/msmain/login.php @@ -9,47 +9,50 @@ $this->breadcrumbs = array( ); ?> -
+
-

Login

+ -

Please fill out the following form with your login credentials:

+
-
- beginWidget('TbActiveForm', array( - 'id' => 'login-form', - 'enableClientValidation' => true, - 'clientOptions' => array( - 'validateOnSubmit' => true, - ), - )); ?> +

Please fill out the following form with your login credentials:

-

Fields with * are required.

+
+ beginWidget('TbActiveForm', array( + 'id' => 'login-form', + 'enableClientValidation' => true, + 'clientOptions' => array( + 'validateOnSubmit' => true, + ), + )); ?> -
- labelEx($model, 'username'); ?> - textField($model, 'username'); ?> - error($model, 'username'); ?> -
+

Fields with * are required.

-
- labelEx($model, 'password'); ?> - passwordField($model, 'password'); ?> - error($model, 'password'); ?> -
+
+ labelEx($model, 'username'); ?> + textField($model, 'username'); ?> + error($model, 'username'); ?> +
-
- checkBox($model, 'rememberMe'); ?> - label($model, 'rememberMe'); ?> - error($model, 'rememberMe'); ?> -
+
+ labelEx($model, 'password'); ?> + passwordField($model, 'password'); ?> + error($model, 'password'); ?> +
-
- -
+
+ checkBox($model, 'rememberMe'); ?> + label($model, 'rememberMe'); ?> + error($model, 'rememberMe'); ?> +
- endWidget(); ?> -
- +
+ +
+ + endWidget(); ?> +
+ +
\ No newline at end of file diff --git a/www/protected/views/programs/_form.php b/www/protected/views/programs/_form.php index 61fbd40..d67917c 100644 --- a/www/protected/views/programs/_form.php +++ b/www/protected/views/programs/_form.php @@ -56,9 +56,9 @@ textFieldControlGroup($model,'highscore_gid',array('span'=>5)); ?>
- isNewRecord ? 'Create' : 'Save',array( - 'color'=>TbHtml::BUTTON_COLOR_PRIMARY, - 'size'=>TbHtml::BUTTON_SIZE_LARGE, + isNewRecord ? 'Create' : 'Save',array( + 'color'=>MsHtml::BUTTON_COLOR_PRIMARY, + 'size'=>MsHtml::BUTTON_SIZE_LARGE, )); ?>
diff --git a/www/protected/views/programs/_search.php b/www/protected/views/programs/_search.php index af4b16e..9939de7 100644 --- a/www/protected/views/programs/_search.php +++ b/www/protected/views/programs/_search.php @@ -50,7 +50,7 @@ textFieldControlGroup($model,'highscore_gid',array('span'=>5)); ?>
- TbHtml::BUTTON_COLOR_PRIMARY,));?> + MsHtml::BUTTON_COLOR_PRIMARY,));?>
endWidget(); ?> diff --git a/www/protected/views/programs/admin.php b/www/protected/views/programs/admin.php index e6446ef..fd975d8 100644 --- a/www/protected/views/programs/admin.php +++ b/www/protected/views/programs/admin.php @@ -46,7 +46,7 @@ or =) at the beginning of each of your search values to specify how the c


widget('bootstrap.widgets.TbGridView',array( - 'type' => TbHtml::GRID_TYPE_BORDERED, + 'type' => MsHtml::GRID_TYPE_BORDERED, 'id'=>'program-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, diff --git a/www/protected/views/programs/index.php b/www/protected/views/programs/index.php index e2c30fe..0e40331 100644 --- a/www/protected/views/programs/index.php +++ b/www/protected/views/programs/index.php @@ -19,8 +19,7 @@
-

My Programs

-

+
'; foreach($datarow as $dataelem) { + /* @var $dataelem Program */ $this->widget('ThumbnailProgPreview', [ 'caption' => $dataelem->Thumbnailname, @@ -39,7 +39,7 @@ 'image' => $dataelem->getImagePath(), 'starcount' => $dataelem->Sterne, 'downloads' => $dataelem->Downloads, - 'date' => new DateTime($dataelem->add_date), + 'date' => $dataelem->getDateTime(), 'enabled' => $dataelem->enabled, 'programminglang' => $dataelem->programming_lang, ]); @@ -61,7 +61,7 @@ } $pagination_arr[] = ['label' => '»', 'url' => '?page=' . ($page+1), 'disabled' => ($page >= $pagecount)]; - echo TbHtml::pagination($pagination_arr, + echo MsHtml::pagination($pagination_arr, [ 'align' => 'right', ]);