From 1e729183c8d0c1d5335d86ed335538bf46ffe54a Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 21 Oct 2013 13:17:43 +0200 Subject: [PATCH 1/7] Show snippets in behat.yml defaults, more dev friendly They should be hidden in CI, but its more of a cleanliness activity, while snippets are a great time saver for devs that they shouldn't need to go hunting for via CLI params. --- behat.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/behat.yml b/behat.yml index 8cc7531..3016be6 100644 --- a/behat.yml +++ b/behat.yml @@ -3,8 +3,6 @@ default: tags: "~@todo" formatter: name: pretty - parameters: - snippets: false extensions: From e0ce35217c25053ff6e68bdfb567cbdb1a8c9214 Mon Sep 17 00:00:00 2001 From: jonom Date: Mon, 11 Nov 2013 09:22:36 +0700 Subject: [PATCH 2/7] Removed misleading comments and legacy requirement calls The instructions in the init() function seem to be at odds with the current documentation which suggests that it is preferable to include requirements in PHP code rather than in templates. Also the requirement calls here are supposedly included so that older themes still work - but how old are we talking? I would assume that these older themes would not be compatible with SS3.1, and the bundled Simple theme does not need these requirement calls in the init() function, making them redundant. I am guessing that the Installer is primarily used by people just getting started with SilverStripe, so ideally this bundled example Page.php should provide a clear pathway to best practice SS development, rather than supporting out-dated code. --- mysite/code/Page.php | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/mysite/code/Page.php b/mysite/code/Page.php index 052b308..594536e 100755 --- a/mysite/code/Page.php +++ b/mysite/code/Page.php @@ -30,14 +30,8 @@ class Page_Controller extends ContentController { public function init() { parent::init(); - - // Note: you should use SS template require tags inside your templates - // instead of putting Requirements calls here. However these are - // included so that our older themes still work - Requirements::themedCSS('reset'); - Requirements::themedCSS('layout'); - Requirements::themedCSS('typography'); - Requirements::themedCSS('form'); + // You can include any CSS or JS required by your project here. + // See: http://doc.silverstripe.org/framework/en/reference/requirements } } From 68b8b08b2c8dcdbea26af459dd7a6bef11090ac9 Mon Sep 17 00:00:00 2001 From: Gordon Anderson Date: Tue, 12 Nov 2013 11:37:26 +0700 Subject: [PATCH 3/7] Addition of geographic files (gpx, kml) --- assets/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/.htaccess b/assets/.htaccess index eef9282..8f4e7c2 100644 --- a/assets/.htaccess +++ b/assets/.htaccess @@ -23,7 +23,7 @@ # does not support regular expression case insensitive matches using PCRE style. # Deny from all - + Allow from all From 72e8ae0b875e69de345c72397e18ccc0c310f399 Mon Sep 17 00:00:00 2001 From: Gordon Anderson Date: Tue, 12 Nov 2013 11:39:12 +0700 Subject: [PATCH 4/7] Addition of geographical file formats (gpx,kml) --- assets/web.config | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/assets/web.config b/assets/web.config index d8567e0..65b4b2d 100644 --- a/assets/web.config +++ b/assets/web.config @@ -92,8 +92,10 @@ directory. + + - \ No newline at end of file + From d80afcf5b6be2015a5add72215e16a617976f13a Mon Sep 17 00:00:00 2001 From: Fred Condo Date: Thu, 19 Dec 2013 15:04:46 -0800 Subject: [PATCH 5/7] Correct YAML syntax --- mysite/_config/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mysite/_config/config.yml b/mysite/_config/config.yml index c5e730b..537b5de 100644 --- a/mysite/_config/config.yml +++ b/mysite/_config/config.yml @@ -1,6 +1,8 @@ --- Name: mysite -After: 'framework/*','cms/*' +After: + - 'framework/*' + - 'cms/*' --- # YAML configuration for SilverStripe # See http://doc.silverstripe.org/framework/en/topics/configuration From a31512afc82dde88667ff0591de26ba8c012792e Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 3 Feb 2014 08:09:54 +1300 Subject: [PATCH 6/7] Remove obsolete tutorial theme (fixes #60) --- themes/tutorial/css/editor.css | 14 - themes/tutorial/css/form.css | 64 --- themes/tutorial/css/layout.css | 435 ------------------ themes/tutorial/css/typography.css | 113 ----- themes/tutorial/images/blueback.gif | Bin 285 -> 0 bytes themes/tutorial/images/body_bg.gif | Bin 51 -> 0 bytes themes/tutorial/images/menu1_left.gif | Bin 312 -> 0 bytes themes/tutorial/images/menu1_left_on.gif | Bin 446 -> 0 bytes themes/tutorial/images/menu1_right.gif | Bin 1341 -> 0 bytes themes/tutorial/images/menu1_right_on.gif | Bin 1854 -> 0 bytes themes/tutorial/images/menu2_arrow.gif | Bin 117 -> 0 bytes themes/tutorial/images/ss_logo.gif | Bin 556 -> 0 bytes themes/tutorial/images/ss_watermark.gif | Bin 4227 -> 0 bytes .../tutorial/images/treeicons/home-file.gif | Bin 173 -> 0 bytes .../tutorial/images/treeicons/news-file.gif | Bin 176 -> 0 bytes .../tutorial/images/treeicons/search-file.gif | Bin 170 -> 0 bytes themes/tutorial/images/welcome.png | Bin 19020 -> 0 bytes themes/tutorial/templates/Page.ss | 28 -- 18 files changed, 654 deletions(-) delete mode 100644 themes/tutorial/css/editor.css delete mode 100644 themes/tutorial/css/form.css delete mode 100644 themes/tutorial/css/layout.css delete mode 100644 themes/tutorial/css/typography.css delete mode 100644 themes/tutorial/images/blueback.gif delete mode 100644 themes/tutorial/images/body_bg.gif delete mode 100644 themes/tutorial/images/menu1_left.gif delete mode 100644 themes/tutorial/images/menu1_left_on.gif delete mode 100644 themes/tutorial/images/menu1_right.gif delete mode 100644 themes/tutorial/images/menu1_right_on.gif delete mode 100644 themes/tutorial/images/menu2_arrow.gif delete mode 100644 themes/tutorial/images/ss_logo.gif delete mode 100644 themes/tutorial/images/ss_watermark.gif delete mode 100644 themes/tutorial/images/treeicons/home-file.gif delete mode 100644 themes/tutorial/images/treeicons/news-file.gif delete mode 100644 themes/tutorial/images/treeicons/search-file.gif delete mode 100644 themes/tutorial/images/welcome.png delete mode 100644 themes/tutorial/templates/Page.ss diff --git a/themes/tutorial/css/editor.css b/themes/tutorial/css/editor.css deleted file mode 100644 index 9fe6dc9..0000000 --- a/themes/tutorial/css/editor.css +++ /dev/null @@ -1,14 +0,0 @@ -/** - * This support file is used to style the WYSIWYG editor in the CMS - */ - -@import "typography.css"; - -body.mceContentBody { - min-height: 200px; - font-size: 62.5%; -} -body.mceContentBody a.broken { - background-color: #FF7B71; - border: 1px red solid; -} diff --git a/themes/tutorial/css/form.css b/themes/tutorial/css/form.css deleted file mode 100644 index c57567c..0000000 --- a/themes/tutorial/css/form.css +++ /dev/null @@ -1,64 +0,0 @@ -/* GENERIC FORM STYLING */ -#Content form { - width:378px; -} - #Content form fieldset { - border:0; - padding:12px; - } - #Content .message { - color:red; - background:#ddd; - border:1px solid #ccc; - padding:5px; - margin:5px; - } - #Content span.message { - width: 300px; - } - #Content form div { - margin-top:10px; - width:100%; - } - #Content form label { - font-size:1.1em; - color:#333; - } - #Content form label.left { - float:left; - width:12em; - } - #Content form label.FormHeading { - font-size:1.3em; - color:#ff7200; - font-weight:bold; - } - #Content form input.text, - #Content form textarea, - #Content form select { - width:200px; - color:#000; - background:#f8f8f8; - border:1px solid #aaa; - padding:3px; - } - - #Content form input.numeric { - width:20px; - background:#f0f0f0; - border:1px solid #aaa; - padding:3px; - color:#000; - margin-right:4px; - } - #Content form input.year { - width:35px; - } - #Content form p.Actions { - text-align:right; - padding:0 22px 15px 0; - } - #Content form p.Actions input { - padding:2px; - } - diff --git a/themes/tutorial/css/layout.css b/themes/tutorial/css/layout.css deleted file mode 100644 index b246cfc..0000000 --- a/themes/tutorial/css/layout.css +++ /dev/null @@ -1,435 +0,0 @@ -/* Global Resetting */ -html{ - width: 100%; - height: 100%; - background:url(../images/body_bg.gif) repeat; -} -body { - width: 100%; - height: 100%; - font-size: 62.5%; - /* reset font-sizes to 1em == 10px */ -} -* { - font-size: 1em; - /* reset font-sizes to 1em == 10px */ - padding: 0; - margin: 0; - font-family:Verdana,Helvetica,sans-serif; - list-style:none; -} -a img{ - border:0; -} -.clear{ - clear:both; -} - -/* Layout CSS */ -#Main { - margin:20px auto; - width:900px; -} -#Header { - background:url(../images/blueback.gif) bottom left repeat-x; - border-left:1px solid #ccc; - border-right:1px solid #ccc; - clear:left; -} - #Header h1 { - color:#fff; - font-size:1.5em; - line-height:4.5em; - padding-left:20px; - } - #Menu1 { - padding:10px 50px 0; - } - #Menu1 li { - float:left; - margin-left:2px; - background:url(../images/menu1_right.gif) no-repeat right top; - } - #Menu1 li.current, - #Menu1 li.section { - background:url(../images/menu1_right_on.gif) no-repeat right top; - } - #Menu1 li a { - display:block; - color:#fff; - font-weight:bold; - font-size:1.1em; - text-decoration:none; - padding:5px 15px; - background:url(../images/menu1_left.gif) no-repeat left top; - } - #Menu1 li a:hover { - color:#d2ebff; - } - #Menu1 li.current a, - #Menu1 li.section a { - background:url(../images/menu1_left_on.gif) no-repeat left top; - color:#d2ebff; - } - -#ContentContainer { - background:#f5f5f5 url(../images/ss_watermark.gif) bottom left no-repeat; - padding-top:20px; - padding-bottom:20px; - overflow: auto; -} - -#Banner { - text-align: center; -} - -#Menu2 { - margin-left: 20px; - width: 17em; - float:left; - background:#f0f0f0; - border:1px solid #ddd; - padding:10px 10px 10px 10px; -} - #Menu2 li { - padding-left:15px; - background:url(../images/menu2_arrow.gif) no-repeat left center; - } - #Menu2 a { - color:#333; - font-weight:bold; - font-size:1.1em; - line-height:1.6em; - text-decoration:none; - } - #Menu2 a:hover { - text-decoration:underline; - } - #Menu2 li.current a, - #Menu2 li.section a { - color:#0083C8; - } - -#Content { - float: left; - margin: 0px 20px; - width:70%; -} - -div.breadcrumbs { - margin-bottom:10px; - font-size:1em; - color:#666; -} -div.breadcrumbs a { - text-decoration:none; -} - -#Footer { - background:#015581; - clear:both; - text-align:right; - padding-right:20px; - border:1px solid #ccc; - border-top:0; -} - #Footer span { - color:#ccc; - font-size:1.1em; - line-height:2em; - font-weight:bold; - padding-left:20px; - background:url(../images/ss_logo.gif) no-repeat; - } - #Footer a { - color:#fff; - } - #Footer a:hover { - text-decoration:none; - } - - -/* The rest of this file is for the second tutorial */ -#NewsList, -#StaffList { - background:#f0f0f0; - border:1px dotted #ccc; - padding:10px; -} - -#NewsList li, -#StaffList li { - margin: 0; - list-style-type: none; -} - #NewsList li.newsDateTitle span { - color:#666; - line-height:2em; - } - #NewsList li.newsDateTitle a { - font-size:1.3em; - font-weight:bold; - color:#0083C8; - text-decoration:none; - padding-left:20px; - background:url(../images/treeicons/news-file.gif) no-repeat left center; - } - #NewsList li.newsDateTitle a:hover { - border-bottom:1px dotted #0083C8; - } - - #NewsList li.newsSummary { - margin-bottom:20px; - } - #NewsList li.newsSummary span { - font-size:1.1em; - line-height:1.5em; - color:#333; - } - #NewsList li.newsSummary a.readMoreLink { - color:#0083C8; - text-decoration:none; - } - #NewsList li.newsSummary a.readMoreLink:hover { - border-bottom:1px dotted #0083C8; - } - -div.newsDetails { - margin-bottom:10px; -} - -div.newsDetails p { - color:#666; - margin:0; - font-size:1em; -} - -div.pageComments { - background:#f0f0f0; - border:1px dotted #ccc; - padding:10px; -} - -#StaffList .staffname { - clear: both; - padding-left: 60px; - height: 1.2em; -} - -#StaffList .staffphoto { - float: left; - margin-left: 3px; - margin-top: -1.2em; -} -#StaffList .staffphoto img { - border:1px solid #AAA; -} - -#StaffList .staffdescription { - margin-left: 60px; - margin-bottom:30px; -} - -#StaffPhoto { - float: left; - margin-right: 10px; -} - -#StaffPhoto img { - border:1px solid #AAA; -} - -#PageComments { - list-style:none; - background:#e9e9e9; - border:1px solid #ccc; - border-bottom:0; - padding:0; - margin:0; -} - #PageComments li { - list-style:none; - padding:5px; - margin:0; - font-size:1em; - border-bottom:1px dotted #bbb; - } - #PageComments li p span { - font-style:italic; - } - #PageComments a.deletelink { - font-weight:bold; - } - - -#PageNumbers { - font-weight:bold; - color:#333; - font-size:1.1em; - text-align:center; - padding:5px; - border:1px solid #ddd; - background:#e9e9e9; -} -#PageNumbers * { - padding:0 5px; - line-height:1.5em; -} -#PageNumbers a { - color:#0083C8; - text-decoration:none; -} - #PageNumbers a:hover { - text-decoration:underline; - } - -#BrowserPoll { - width: 200px; - float: right; - margin-right: 20px; - margin-top: 20px; -} -#BrowserPoll h2 { - color:#0083C8; - font-size:1.2em; -} -#BrowserPoll ul { - margin: 0; -} -#BrowserPoll li { - list-style-type: none; - margin: 0; -} -#BrowserPoll .browser { - color:#333; - line-height:1.5em; - font-size:1.1em; -} -#BrowserPoll .bar { - background-color: #015581; -} -#BrowserPoll form { - width:100%; -} - #BrowserPoll form fieldset{ - border:0; - } - #BrowserPoll .message { - color:red; - background:#ddd; - border:1px solid #ccc; - padding:5px; - margin:5px; - } - #BrowserPoll span.message { - width: 100%; - } - #BrowserPoll form div { - margin-top:10px; - width:100%; - } - #BrowserPoll form label { - font-size:1.1em; - color:#333; - } - #BrowserPoll form label.left { - float:left; - } - #BrowserPoll form label.FormHeading { - font-size:1.3em; - color:#ff7200; - font-weight:bold; - } - #BrowserPoll form input.text, - #BrowserPoll form textarea, - #BrowserPoll form select { - width:100%; - color:#000; - background:#f8f8f8; - border:1px solid #aaa; - padding:3px; - } - - #BrowserPoll form input.numeric { - width:20px; - background:#f0f0f0; - border:1px solid #aaa; - padding:3px; - color:#000; - margin-right:4px; - } - #BrowserPoll form input.year { - width:35px; - } - #BrowserPoll form p.Actions { - text-align:right; - padding:0 22px 15px 0; - } - #BrowserPoll form p.Actions input { - padding:2px; - } - #BrowserPoll form ul.optionset { - padding-top: 15px; - padding-left: 15px; - } - #BrowserPoll form ul.optionset li { - list-style-type: none; - } - -#Header form { - float:right; - width:160px; - margin:25px 25px 0px 25px; -} - #Header form * { - display:inline !important; - } - #Header form div { - } - #Header form input.text { - width:110px; - color:#000; - background:#f0f0f0; - border:1px solid #aaa; - padding:3px; - } - #Header form input.action { - font-weight:bold; - } - -.searchResults h2 { - font-size:2.2em; - font-weight:normal; - color:#0083C8; - margin-bottom:15px; -} -.searchResults p.searchQuery { - color:#333; - margin-bottom:10px; -} - -.searchResults ul#SearchResults li { - margin-bottom:20px; -} - ul#SearchResults p { - font-size:1.1em; - font-weight:normal; - line-height:2em; - color:#333; - } - ul#SearchResults a.searchResultHeader { - font-size:1.3em; - font-weight:bold; - color:#0083C8; - text-decoration:none; - margin:20px 0 8px 0; - padding-left:20px; - background:url(../images/treeicons/search-file.gif) no-repeat left center; - } - ul#SearchResults a { - text-decoration:none; - color:#0083C8; - } - ul#SearchResults a:hover { - border-bottom:1px dotted #0083C8; - } \ No newline at end of file diff --git a/themes/tutorial/css/typography.css b/themes/tutorial/css/typography.css deleted file mode 100644 index 21d401f..0000000 --- a/themes/tutorial/css/typography.css +++ /dev/null @@ -1,113 +0,0 @@ -/** - * This typography file is included in the WYSIWYG editor - */ -.typography * { - font-family:Verdana,Arial,sans-serif; - font-size:1em; -} -.typography blockquote { - margin-left:20px; -} -.typography hr { - padding:5px; -} -.typography p, -.typography ul li, -.typography ol li, -.typography a { - color:#333; - line-height:1.5em; - font-size:1.1em; -} -.typography p { - margin-bottom:20px; -} - - -/** CMS LIST STYLES **/ -.typography ul, -.typography ol { - margin-left:10px; - margin-bottom:20px; -} - .typography ul li, - .typography ol li { - margin:4px 10px; - line-height:1.4em; - } - .typography ul li { - list-style-type:disc; - } - .typography ol li { - list-style-type:decimal; - } - -/* HEADER STYLES */ - -.typography h1, -.typography h2, -.typography h3, -.typography h4 { - margin-bottom:14px; - color:#0083C8; -} -.typography h1, -.typography h4 { - font-weight:bold; -} -.typography h2, -.typography h3 { - font-weight:normal; -} - .typography h1 { - font-size:2.2em; - } - .typography h2 { - font-size:2.2em; - } - .typography h3 { - font-size:1.6em; - } - .typography h4 { - font-size:1.4em; - } - -/* LINK STYLES */ -.typography a { - color:#0083C8; - font-size:1em; - text-decoration:none; -} - .typography a:hover { - text-decoration:underline; - } - - -.typography table { - font-size:1.1em; -} - .typography table tr td { - padding:3px 5px; - } - - -/* WYSIWYG EDITOR ALIGNMENT CLASSES */ -.typography .left { - text-align:left; -} -.typography .center { - text-align:center; -} -.typography .right { - text-align:right; -} -.typography img.right { - float:right; -} -.typography img.left { - float:left; -} - -.typography p.MsoNormal, .typography p.MsoBodyText { - margin: 0; -} \ No newline at end of file diff --git a/themes/tutorial/images/blueback.gif b/themes/tutorial/images/blueback.gif deleted file mode 100644 index edc39b2b9cd4810a38923ea1b117f96d42977c64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmZ?wbhEHbWMoKTxXQr57~04f+shc;%~-aDv3LVx`aH&hHH=A98N-?xBik7hCo_h( zGG;Gf%v!`)wTrXoB4g7r#)=)xZKoOYS23o}Vyxc7Sa*Q2|N*CI?pl2 z^)n{V;OM@<*l>g~cNt^e3dZtnj8UD8X>*ubPcddL;Of1^(td_9ej;PdK8EHK3={yx zpDbYAIv^6{Ck8evhlTg%d2+Z)@OT3b4s zJ9_$iCw5Qkn>2I!)ETq8<}R4CX#U~}OO`KNIc3G_Rg>4xTDWGzymcFwuHCt1)3&X< xwr@VLchCNPyLTKvcW$l{?moEls6dgy8UPLbmqGvl diff --git a/themes/tutorial/images/menu1_left_on.gif b/themes/tutorial/images/menu1_left_on.gif deleted file mode 100644 index cf3a3c7e3fdcdea3020884df51502854f36891d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmZ?wbhEHb37z68Jz~k- zLJ6Icsl8HZy~2rI_wU~qP3o3N>EVy-m@;LGKzzrfNt32cn>Km!B{ohnDd_w1 z=FANnHZV{LDE?#to1_CGL4IOj zyY0|nP;3;dC(!5a%w;Jf5U~7Wg_V&~Ym1j`u1HkpjxUU}MW?h@?OotBeGct=!n8d);JB@*L#zcnMEHh@Yuq|R%SIk0=@!6S$FAKSNg`W}D4?gv<;pW2?xnBg*dS{)Kygcz=6;ctcP9c+BU@A^;C~2>{g9)iIgO z`uh5Yh6Xm9-PqX3;c#keYZ(j%nM|&!sbR5LO-)UBJf23Q5s5@Pold1vA3b_hU0qEe z5UQ%GN=r*sDixQ@C6P!aB_(Jy8i&In5C|+53x~rg6bc4|$;!%-%jFdn6;i1*FE6jG ztPF)hA(6=9;$ppC5BMMK{7xA|NG-VE32Q@)<1vQ zFnqKu@%`ff!Nh#$q)~KVV@(fwtILMcSzV!q(lAE9u zKV?SL+r2wGVb$14cOB)~@H|GnG#TkF7mp z`r9~a{-NREB9BO;ndWep#Hs#vu4bS*Bo}ms*Ss)HzrZy6lA4TshOqTtg|$s<6>WEP zQ__yqgf1^=PmBK*?_kCFXOBxVe!E^HCx;Qk1-y^Cac-hY=HG@Gi}eD7H-e7O^-T^l zFAa1G)>jk)tZ8u&|E;-gKRRomtIJ>jbZVT^;Mt)d)3qCR({M}g`RYs)tD~Td&8U(| z#P&G)3`%k$(qQ+yjoV`o+7%zaClhqh`--XUp48dg?|b8+IUHLd>G1;*U0vWiw0Sn) zZW;W#$aSslYA$da<2A;@;f4#w<*@r3+&iBgSBrj%W5oV>(Rg7Ne;Ks}T6%5{JXd}l zldaB*Zz->R63KJd;9wa(8Ukdr+_mcdGW|O4ff-Oui~}abXCs@^=Skb$#Pj4GzQ6^F zB?PiiyLFHABs!Fpy+8vetPzlB?*g@qx4-0Q>n0dtE%RkNP*;B~2XZ+-V&asJB@>Bt z?9L5dVq>=qa+AXb<-V;GAH0{qm1O{LHJ65my`zlAtjD)Z92DPbMP*ndRnHbkuD8!k zWgC)s$t+1y#rw_*Y6E4CN8{sqbH6KFd(VvR+Bm-j_UydX=_QQWuG7DD11&_b9=||K zPTsb&{$N2R-huW)bG4q-%S*0j3ES?bv-|E`%u6nIHAGTLo@7RHzk}@b9rA%x-Uq2Z zX^kUzxV)b#Js$DIt8bsZVDBKrq%UQ-d@Xueat{3|<>eAI|LMJ`+XU@kkiGT@7FtM% zc@-x#ZxIF40$eAOu9>G!da=$NQCcW&c}!X91YRneb*IDAhh%5c8qRm{S7x#-s(w(r zIasBq7PJQVNV0YQt8W}3vh+l9oTGO?F*K@uymsuq?*hYb-bcf}1X_R14T*{JQ@8G_ z@|)=}netP0sh#|lJwhm7A*2!buOx*^{@B26r-0Gn2x!2_*inLDNMWxO$W?mB4XJuK lI-_61t_&3Gawh|Yi@!P=p6f%RGkaD%D-C}om>B{5{srwxvDp9s diff --git a/themes/tutorial/images/menu1_right_on.gif b/themes/tutorial/images/menu1_right_on.gif deleted file mode 100644 index 7048cac3724e2cf542f9dd97c32e012426f5d3d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1854 zcmdUs`#Tc~1AsSau2Ct}k=!cGJT9dvC#2)jWv=0zrf*DgJ4dM_w-}qvWn(kuoKBc1 zm)VTiI3`p2m|28SE@Ly7NlV+IP&-fGfAPIPyg$Fs^LqJsLY>290199c003UiQVGu5 z9g0@}1+yzS8yJ)c^h*Kyr|MkCX~D4vBJ%ek@(d#JYCmH%ujTAVd5 z1;DE)VBmdFC|Wfn8yJ`Y3`ht1rvU@*1A|aN-{h>UETHc_jbC#1gy9ZH5wzjhz5mHQ z7*U`Xo)7d(HH^fUm6ZvF!XKgvOG`^}I9zdYadvigNl6KrOh%*8{&#UTH8sJ>`KA%s zI$>B6i8MSsTv=Hu5D2QPt1%c17K>HAnhB1^dEL&<$;qM7XmYt6kH-W4uQ2_h`oCVA z@BaP-pr%AwWuy1yU~##5`2~1FVG)s3OfD&$))c6-O)ot&;`-3&`@ZM|cf$F(ffO;5X>a=BnlYus=7{Ke$kcT>|dv%Rb>Z{H29) z^%rX0>uPVZb=W{_{b;RU^~LgwZ4GZ|KN;B68JfAnQVmo9)Q{EueMu+V8p8N2`V{+? zQan(8iOrblOqNS$rYIN(Rp`>Gy?c}5f!dJas4G!=+2TH;`K5}>9W4_6AC7UegB?$o zhNwr(L$QHNbI*-*LZV5*G{I{ol3#J9leIS0erI)7(8-nwxoE!5J~Ji^ud3qbO{jVf zI?4bS+MZLXomicG8Yg_!)wwB~dr@%I_ZjDle7Q->lku=au6_PGIao%0_I3NSd{sEq z-K|stK$deTRsHC>tc^cCLlgP+EO*dhgg>6 z#X#Z1twe#Wm#G;2*yXC+;|uM;m z()zk54bp~2mQ+fsDm-?g+~F|7P0bk5ACt)3kghgyLE!gH`ao>V?t_u26?(h$tyxn9 z&}6N3EI4khZ8D0s#+puAU1QH-!5`WeU{fY^waIrqY8^T(lgE<(f@K`Vc$}9ziMse>(GNz=j=vJN9nWv|XQ-$NNtL=o05wp7!>oJKQsBkk(f&{P&LB@>Cba$mI~Y zg6Dc-Mllv-zM~lQrosOihmWTH^ZLj=$j0P+M%V3eCo+BG-J1slhvE1>0c*-X4zf8D zF-l;KByY~N&W3M8J`3$+af-KDx{Tyu)WqPXh}bj@ohF6Yrp#*{{l*%j+%x{P@G#AG ztCu?U3!EfthP*4*ex1*bg|bsFfP$LMJcu zM8%FA2@yJq3Oy3Ou8$iO-QVa*7`iW;%}hvBeirdz8DHp?Mdzf_CfC&M4{17?JCq^c z%!LhMck;I_-B+2)jP0X<_2XRN038K-_?O~j2>Z=3W`@>Sx!hR22Pt8sys4({nB}?; z#4r=pcMucjEuYg#Oia*OQ%#MV?u%IvG&ty?CKB3uXoPs%D7{K8!JBIokbrY>q3WK# z`L~H?bIz#wqg{k{rym@eZ@|(;5@J7h#>f6Qe~xGgJLxtV^BMzh6&dg-FYN;w@lhp) zhexB^>|jKK)m?M#`OvmgBP2u;N6fFY>~WToVp4XHT`E@nQ|ry>Dsbc;iTZ_~7V*SF z#SwG8Lp(27OKvIWkcFcL<4WSlU)L&jEZFC*E{ekv^Bzx&On>+01?A&Q7_Is?NFVyo zBgK)m3K7ISihpgRn9_~EVHf5+7^MHSr0>8D2iK0vFegXyP-EmtbLT5w!GWX+n@FeK z9Rk;+z#<_B30;B0pcFD;=`!++p#7CSOI{!wi*RXz`dW?4^EM+R&Jo&&Og6|kB`4f1 Y20Co04+(UQm)QES-7qcSy@0d-0@qGjdH?_b diff --git a/themes/tutorial/images/menu2_arrow.gif b/themes/tutorial/images/menu2_arrow.gif deleted file mode 100644 index 42c722251f008a4f82d9972b0388781b605242b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmV-*0E+)dNk%w1VF&;S0J9DNEOy5*gVt!7(Yns$jj-6~>h4RK=1GjwNP@+2q1I4` z#CNmrWvc8zkl*m|@Bjb+A^8LW000gEEC2ui00;mG000Cc(8)rib>$41L`uuDA&tQ> XAprnE$q0miC`zDR1+d|j6afG`$+j%H)d{Q%;Jd_E~iAw48iI zC2xwuj1%^g4=GQ&pg8G*(!>jPotw0ZXK5GDG?{kRe&!kbNe7IlpR;ORXFU0Y{DcPjs$Z9PT zBjLfu!fGQEBgkTA9}~gP%&DTr9Oj_G5E2t;z`+rv7-PrC&BMqWqu}f-?j8`M%wXlk z=BDi*%^WTlqp8d28WYOJz@#tW9V2bQU~AIE=cgsi9uut2Wa`w{EaajW^n>@6g7e`8 H4h+@+u1Bho diff --git a/themes/tutorial/images/ss_watermark.gif b/themes/tutorial/images/ss_watermark.gif deleted file mode 100644 index 793317f3e440e7779dbbcbb94bbf577c57b160dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4227 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 diff --git a/themes/tutorial/images/treeicons/search-file.gif b/themes/tutorial/images/treeicons/search-file.gif deleted file mode 100644 index 5788fd18d8c7a7227846698a82524906927f6c64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 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 L?JTOyD6#(qU(1|f diff --git a/themes/tutorial/templates/Page.ss b/themes/tutorial/templates/Page.ss deleted file mode 100644 index af94843..0000000 --- a/themes/tutorial/templates/Page.ss +++ /dev/null @@ -1,28 +0,0 @@ - - - - <% base_tag %> - - - - - - - -
- -
-
- $Content - $Form -
-
- -
- $SilverStripeNavigator - - From aa07a0edd87f0bf88ec259c500d5355046686d9f Mon Sep 17 00:00:00 2001 From: colymba Date: Sat, 20 Apr 2013 10:31:47 +0300 Subject: [PATCH 7/7] BUGFIX #34 Only block root vendor folder Use RewriteRule instead to take in account any subfolder via RewriteBase. Deny ss-cache and composer via RewriteRule too. Move to RewriteRules --- .htaccess | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.htaccess b/.htaccess index e4d313a..683ba0b 100644 --- a/.htaccess +++ b/.htaccess @@ -20,15 +20,13 @@ ErrorDocument 404 /assets/error-404.html ErrorDocument 500 /assets/error-500.html - - RedirectMatch 403 /silverstripe-cache(/|$) - RedirectMatch 403 /vendor(/|$) - RedirectMatch 403 /composer\.(json|lock) - - SetEnv HTTP_MOD_REWRITE On - RewriteEngine On + RewriteEngine On + + RewriteRule ^vendor(/|$) - [F,L,NC] + RewriteRule silverstripe-cache(/|$) - [F,L,NC] + RewriteRule composer\.(json|lock) - [F,L,NC] RewriteCond %{REQUEST_URI} ^(.*)$ RewriteCond %{REQUEST_FILENAME} !-f