slitaz-forge rev 2
move vanilla-config & themes in vanilla directory
line diff
1.1 --- a/forum/themes/slitaz-2/README.txt Wed Dec 22 10:36:12 2010 +0100 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,45 +0,0 @@ 1.4 -How to create a theme: 1.5 - 1.6 -Part 1: CSS / Design 1.7 -================================================================================ 1.8 -1. Copy this "default" theme folder and rename it to your new theme name. 1.9 -2. Open the "about.php" file and edit the information to reflect your theme. Be 1.10 - sure to change the array key like this: $ThemeInfo['YourThemeNameHere']. 1.11 -3. Create a "design" subfolder and copy /applications/dashboard/design/style.css 1.12 - and /applications/vanilla/design/vanilla.css into it. 1.13 -4. Any background images you want to continue using (like the star png images 1.14 - for bookmarking) should be copied along with their respective stylesheets. 1.15 -5. Go to your Dashboard, Themes, and apply your new theme. 1.16 -6. Edit the copied CSS files to look however you wish! 1.17 - 1.18 -Other things you should know: 1.19 - 1.20 - + All non-forum pages should be edited in the global "style.css" file. 1.21 - 1.22 - + If you want to edit the look & feel of the administrative screens, also 1.23 - copy /applications/dashboard/design/admin.css in step 3. Similarly, you can 1.24 - copy other CSS files like /applications/vanilla/design/vanillaprofile.css to 1.25 - customize those pages as well. 1.26 - 1.27 - 1.28 -Part 2: HTML / Views 1.29 -================================================================================ 1.30 -If you want to customize the HTML, you can edit that too. 1.31 -Our pages are made up of two parts: 1.32 - 1.33 - 1. Master Views - these represent everything that wraps the main content of the 1.34 - page. If all you want to do is add a menu or banner above Vanilla, this is 1.35 - all you need to alter. To do so, copy the default master view from 1.36 - /applications/dashboard/views/default.master.php to 1.37 - /themes/yourtheme/views/default.master.php and edit it there. 1.38 - 1.39 - 2. Views - these represent all of the content in each page. Every application 1.40 - has a "views" folder that contains all of the HTML for every page. So, for 1.41 - example, if you wanted to edit the HTML for the Discussions list, you could 1.42 - copy the views from /applications/vanilla/views/discussions to 1.43 - /themes/yourtheme/views/discussions and edit them there. 1.44 - 1.45 -You can avoid naming conflicts between applications' views and specify which 1.46 -app a view is for by optionally adding a subfolder with the app's name in 1.47 -/themes/yourtheme/views/ (e.g.: /themes/yourtheme/views/appname/) and placing 1.48 -views there rather than directly in the "views" folder. 1.49 \ No newline at end of file
2.1 --- a/forum/themes/slitaz-2/about.php Wed Dec 22 10:36:12 2010 +0100 2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 2.3 @@ -1,21 +0,0 @@ 2.4 -<?php if (!defined('APPLICATION')) exit(); 2.5 -/* 2.6 -Copyright 2008, 2009 Vanilla Forums Inc. 2.7 -This file is part of Garden. 2.8 -Garden is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 2.9 -Garden is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 2.10 -You should have received a copy of the GNU General Public License along with Garden. If not, see <http://www.gnu.org/licenses/>. 2.11 -Contact Vanilla Forums Inc. at support [at] vanillaforums [dot] com 2.12 -*/ 2.13 - 2.14 -/** 2.15 - * An associative array of information about this application. 2.16 - */ 2.17 -$ThemeInfo['SliTaz-2'] = array( 2.18 - 'Name' => 'SliTaz-2', 2.19 - 'Description' => "SliTaz Vanilla 2 official theme", 2.20 - 'Version' => '2.0', 2.21 - 'Author' => "Christophe Lincoln", 2.22 - 'AuthorEmail' => 'pankso@slitaz.org', 2.23 - 'AuthorUrl' => 'http://www.slitaz.org' 2.24 -);
3.1 Binary file forum/themes/slitaz-2/design/favicon.ico has changed
4.1 Binary file forum/themes/slitaz-2/design/favicon.png has changed
5.1 --- a/forum/themes/slitaz-2/design/style.css Wed Dec 22 10:36:12 2010 +0100 5.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 5.3 @@ -1,422 +0,0 @@ 5.4 -@charset "utf-8"; 5.5 -/* CSS Document */ 5.6 - 5.7 -/***--- MAIN / DEFAULT --***/ 5.8 -html, body { height: 102%; margin: 0; } 5.9 -html, body, input, select, textarea, button { 5.10 - font-family: Verdana, Geneva, sans-serif; 5.11 - font-size: 11px; 5.12 - line-height: 17px; 5.13 - color: #555; 5.14 -} 5.15 -a { color: #2f6c8e; text-decoration: none; } 5.16 -a:hover { color: #69a1c1; } 5.17 -a img { border: none; } 5.18 -ul, ol { margin: 0; padding: 0; list-style: none; } 5.19 - 5.20 -.clear { 5.21 - clear: both; 5.22 - display: block; 5.23 - height: 0; 5.24 - overflow: hidden; 5.25 - visibility: hidden; 5.26 - width: 0; 5.27 -} 5.28 - 5.29 -#Wrapper { min-height: 100%; position: relative; margin: 0 auto; } 5.30 -.Hidden { display: none; } 5.31 - 5.32 -/***--- HEADER(S) --***/ 5.33 - 5.34 - 5.35 -#Header h1 { padding: 15px; font-size: 2em; } 5.36 -#Header a { color: #69a1c1; } 5.37 -#Header a:hover { color: #FFF; } 5.38 - 5.39 -#Header{ 5.40 - background: #f0ba08 url(../images/header.png) repeat-x top; 5.41 - color: black; 5.42 - width: 100%; 5.43 - height: 50px; 5.44 - border-top: 1px solid black; 5.45 - border-bottom: 1px solid black; 5.46 - margin-bottom: 30px; 5.47 - position: absolute; 5.48 - top: 0; 5.49 -} 5.50 - 5.51 -#titre { 5.52 - position: absolute; 5.53 - font-size: 16px; 5.54 - font-weight: bolder ; 5.55 - margin-left: 200px; 5.56 - margin-top: 28px; 5.57 -} 5.58 - 5.59 -#logo { 5.60 - position: absolute; 5.61 - float: left; 5.62 - margin-left: 16px; 5.63 - margin-top: 0px; 5.64 -} 5.65 - 5.66 -/***--- NAV --***/ 5.67 -#Nav { 5.68 - right: 0; 5.69 - position: absolute; 5.70 - top: 3px; 5.71 - font-size: 10px; 5.72 - font-weight: bold; } 5.73 - 5.74 -/* search */ 5.75 -#Search { 5.76 - -moz-border-radius: 4px; 5.77 - -webkit-border-radius: 4px; 5.78 - height: 20px; 5.79 - float: right; 5.80 - background: #FFF; 5.81 - padding: 2px 2px; 5.82 - margin: 11px 95px 0 0; } 5.83 -#Search form { padding: 0; border: none; } 5.84 -#Nav #Search input.InputBox { width: 150px; border: none; } 5.85 -#Search input.Button { 5.86 - -moz-border-radius: 4px; 5.87 - -webkit-border-radius: 4px; 5.88 - height: 17px; 5.89 - margin: 0; 5.90 - padding: 0; } 5.91 - 5.92 -/***--- MAIN --***/ 5.93 -/*#Main { }*/ 5.94 - 5.95 -/* If you prefer the panel on the left and content on the right, simply switch the "float" property for #Content & #Panel and set the "margin-left" to "margin-right" for the #Content */ 5.96 -#Content { 5.97 - margin: 0px 320px 0px 0px; 5.98 - padding: 86px 40px 65px 80px; 5.99 - } 5.100 -#Panel { 5.101 - position: absolute; 5.102 - top: 76px; 5.103 - right: 80px; 5.104 - color: #555555; 5.105 - float: right; 5.106 - width: 250px; 5.107 - line-height: 1.5em; 5.108 - text-align: left; 5.109 - font-size: 12px; 5.110 - } 5.111 -.Box, #UserOptions { 5.112 - -moz-border-radius: 8px; 5.113 - -webkit-border-radius: 8px; 5.114 - list-style-type: none; 5.115 - margin: 10px 0; 5.116 - padding: 10px 24px 10px 24px; 5.117 - background-color: #eaeaea;} 5.118 -#Panel .Box ul { 5.119 - list-style-type: none; 5.120 - margin: 0; 5.121 - padding: 10px 24px 10px 0px; 5.122 - font-weight: bold; 5.123 -} 5.124 - 5.125 -/***--- CONTENT --***/ 5.126 -.GuestBox { background: #eaeaea; } 5.127 -.GuestBox p { padding: 0; } 5.128 -.Message img { max-width: 100%; } 5.129 - 5.130 -/* headers */ 5.131 -h1 { margin: 0; font-size: 1.5em; } 5.132 -#Content h1, h2, #Popup h1, div.DiscussionTabs .SubTab { 5.133 - -moz-border-radius: 8px; 5.134 - -webkit-border-radius: 8px; 5.135 - font-size: 1.1em; background: #555555; color: #fff; margin: 0 0 10px; padding: 10px; font-weight: bold; 5.136 -} 5.137 -div.DiscussionTabs .SubTab { margin: 0; } 5.138 - 5.139 -#Panel h4, #Panel .GuestBox h4 { 5.140 - font-size: 110%; 5.141 - color: #666666; 5.142 - font-weight: bold; 5.143 - padding: 0 0 1px 0; 5.144 - margin: 0; 5.145 - border-bottom: 1px solid #cecece; } 5.146 - 5.147 -div.Empty, div#Status { padding: 10px; } 5.148 - 5.149 -/* tabs */ 5.150 -.Tabs li, .SubTab { 5.151 - -moz-border-radius: 8px; 5.152 - -webkit-border-radius: 8px; 5.153 - background: #CECECE; 5.154 - padding: 5px 8px; 5.155 - font-size: 140%; 5.156 - font-weight: bold; 5.157 - border-bottom: 1px solid #fff; } 5.158 -.Tabs li.Active { background: #555; border-bottom: none; } 5.159 -.Tabs li.Active a { color: #fff; } 5.160 -.Tabs span { display: inline-block; margin: 0 10px; color: #888; } 5.161 -.SubTab { font-size: 1em; } 5.162 - 5.163 -/* DISCUSSIONS */ 5.164 -.DataList li.Item, .Conversation li.Item { 5.165 - border-bottom: 1px solid #ccc; 5.166 - position: relative; 5.167 - padding: 10px; 5.168 - -moz-border-radius: 8px; 5.169 - -webkit-border-radius: 8px; 5.170 -} 5.171 -.Activities li.Item { min-height: 50px; } 5.172 -.DataList li.Item a.Title { display: block; font-size: 1.15em; font-weight: bold; padding: 0 0 8px; } 5.173 - 5.174 -/* discussions meta */ 5.175 -.DataList .Meta span, .DataList .Meta strong { 5.176 - min-width: 100px; display: inline-block; margin: 0 5px 0 0; 5.177 -} 5.178 -.DataList .Meta .LastCommentBy { width: 175px; } 5.179 -.DataList .Meta .LastCommentDate { width: 100px; } 5.180 - 5.181 -/* discussions highlight */ 5.182 -.DataList li.Mine { background: #f1f1f1; border-bottom-color: #fff; } 5.183 -.DataList li.New { background: #d8ecbc; } 5.184 -.DataList li.Bookmarked { background: #ffdf5d; border-bottom-color: #fff; } 5.185 - 5.186 -.DataList li.Closed { background: #eee; } 5.187 -.DataList .Meta .Closed { color: #333; } 5.188 -.DataList li.Closed a.Title { text-decoration: line-through; } 5.189 - 5.190 -.DataList li.Announcement { background: #FFC; } 5.191 -.DataList .Meta .Announcement, .DataList .Meta .Closed { 5.192 - width: 100px; font-weight: bold; 5.193 -} 5.194 -.DataList .Meta .Announcement { color: #C60; } 5.195 - 5.196 -/* DISCUSSION */ 5.197 -div.DiscussionTabs li { font-size: 1em; } 5.198 -ul.Discussion { margin: 0 0 10px; } 5.199 - 5.200 -/* bookmark */ 5.201 -a.Bookmark { width: 9px; height: 9px; position: absolute; top: 8px; right: 10px; font-size: 0; background: #fff; border: 1px dotted #ffcc00; } 5.202 -.Discussion a.Bookmark { top: 41px; } 5.203 -a.Bookmarked { background: #ffcc00; border: 1px solid #fff; } 5.204 -div.Options a.Bookmark { top: 14px; } 5.205 - 5.206 -div.Comment { 5.207 - position: relative; 5.208 - border-bottom: 1px dotted #ccc; 5.209 - padding: 10px; } 5.210 -li.Even { background: #f8f8f8; } 5.211 - 5.212 -/* discussion meta */ 5.213 -.Comment .Message, .Comment .MessageForm, .ConversationMessage .Message { 5.214 - margin-left: 215px; line-height: 1.75em; 5.215 -} 5.216 -.Comment .Meta, .ConversationMessage .Meta { 5.217 - width: 175px; float: left; padding: 10px; background: #FFC; 5.218 - -moz-border-radius: 8px; 5.219 - -webkit-border-radius: 8px; 5.220 -} 5.221 -.Comment .Meta span, .ConversationMessage .Meta span, div.Meta div.PostCount { 5.222 - display: block; border-bottom: 1px dotted #ccc; font-size: 0.85em; padding: 1px 0; 5.223 -} 5.224 -.Comment .Author, .ConversationMessage span.Author { 5.225 - background: #fff; padding: 5px; border-bottom: none; 5.226 -} 5.227 -.Comment .Author img, .ConversationMessage .Author a.Photo { 5.228 - float: left; margin: 0 10px 0 0; 5.229 -} 5.230 -.Comment .Author a, .ConversationMessage .Author a { 5.231 - font-weight: bold; font-size: 1.1em; 5.232 -} 5.233 -blockquote { margin: 0; padding: 10px; background: #fff; border: 1px dotted #ccc; } 5.234 -.Odd blockquote { background: #F8F8F8; } 5.235 - 5.236 -/* post */ 5.237 -ul.PostOptions { margin: 0 0 10px; } 5.238 -.Preview { padding: 10px; margin: 0 0 10px; border-bottom: 1px dotted #ccc; } 5.239 - 5.240 -/*- Conversations & Activities -*/ 5.241 -ul.Activities .Title { margin: 0 0 0 60px; font-weight: bold; } 5.242 -ul.Conversations .Photo, ul.Activities .Photo { 5.243 - width: 50px; height: 50px; float: left; font-size: 0.9em; color: #ccc; overflow: hidden; background: #eee; 5.244 -} 5.245 -ul.Conversations .Excerpt, ul.Activities .Excerpt { 5.246 - margin: 0 0 10px 60px; 5.247 -} 5.248 -ul.Conversations .Meta, ul.Activities .Meta, .SearchResults .Meta { 5.249 - margin: 0 0 0 60px;background: #FFC; padding: 3px 5px; 5.250 -} 5.251 -.SearchResults .Meta { margin: 5px 0 0; } 5.252 -ul.ActivityComments { margin: 0 0 0 60px; } 5.253 - 5.254 -.ConversationMessage .Message { min-height: 100px; } 5.255 -.ConversationMessage span.Author { height: 50px; } 5.256 -.ConversationMessage span.ItemLink { display: none; } 5.257 - 5.258 -/***--- PANEL --***/ 5.259 -.Block { padding: 15px; background: #ddd; margin: 0 10px 0 0; } 5.260 -.Post #Panel, .Search #Panel { 5.261 - display: none; 5.262 -} 5.263 - 5.264 -.PanelInfo li { padding: 0px 0px; } 5.265 -.PanelInfo li strong { font-weight: normal; } 5.266 -.PanelInfo li.Active a { color: #c60; } 5.267 -.PanelInfo li.Parent { background: #ccc; padding: 2px 5px; font-size: 1.1em; font-weight: bold; } 5.268 - 5.269 -.PanelInfo a, .Box a { 5.270 - color: #0F314E; 5.271 - background: inherit; 5.272 - display: block; 5.273 - text-decoration: none; 5.274 - font-weight: bold; 5.275 -} 5.276 - 5.277 -.PanelInfo a:hover, .Box a:hover { 5.278 - color: #c60; 5.279 - text-decoration: none; 5.280 - display: block; 5.281 -} 5.282 -/* account */ 5.283 - 5.284 -#Panel .Photo { background: #ddd; position: absolute; right: 10px; padding: 0 0 10px 10px; } 5.285 -#Panel .Photo img { width: 50px; display: block; border: 5px solid #fff; border-bottom-width: 12px; } 5.286 -#Panel .Photo img:hover { width: auto; } 5.287 - 5.288 -#Panel dl { padding: 10px; background: #fff; margin: 0; } 5.289 -#Panel dt { font-weight: bold; padding: 2px 0 0; } 5.290 -#Panel dd { margin: 0; border-bottom: 1px dotted #ccc; padding: 0 0 2px; } 5.291 - 5.292 -/* inbox */ 5.293 -.PanelInfo li strong { display: inline-block; margin: 0 5px 0 0; } 5.294 - 5.295 -/*- Form elements -*/ 5.296 -form { padding: 0 10px 10px; border-bottom: 1px dotted #ccc; } 5.297 -fieldset { margin: 0; padding: 0; border: none; } 5.298 - 5.299 -form#Form_User_Register { margin-top: 10px; } 5.300 - 5.301 -input, textarea, select { 5.302 - border: 1px solid #ccc; padding: 3px 5px; margin: 0; 5.303 -} 5.304 -input.InputBox { width: 325px; margin: 0 10px 5px 0; } 5.305 - 5.306 -input.Button, input.Cancel { 5.307 - -moz-border-radius: 4px; 5.308 - -webkit-border-radius: 4px; 5.309 - cursor: pointer; border: none; background: #c60; color: #fff; padding: 4px; 5.310 -} 5.311 -input.Button:hover, input.Cancel:hover { 5.312 - background: #555555; color: white; 5.313 -} 5.314 - 5.315 -a.Back, a.Cancel { 5.316 - margin: 0 5px 0 0; 5.317 -} 5.318 - 5.319 -textarea { width: 95%; min-height: 100px; display: block; margin: 10px 0; } 5.320 - 5.321 -label { display: block; font-weight: bold; } 5.322 -label.RadioLabel, label.CheckBoxLabel { 5.323 - font-weight: normal; 5.324 -} 5.325 -label.RadioLabel input, label.CheckBoxLabel input { 5.326 - border: none; 5.327 -} 5.328 - 5.329 -li.Gender, li.CaptchaInput { 5.330 - margin: 0 0 10px; 5.331 -} 5.332 -li.CreateAccount, li.Buttons { 5.333 - margin: 5px 0 0; 5.334 -} 5.335 -.cleditorMain { margin: 10px 0; } 5.336 - 5.337 -.CommentForm div.Messages { margin: 8px 0 0; } 5.338 -.Errors, .Warning { 5.339 - color: #F00; 5.340 -} 5.341 - 5.342 -/***--- BUTTONS ---***/ 5.343 -.GuestBox a.Button { 5.344 - -moz-border-radius: 4px; 5.345 - -webkit-border-radius: 4px; 5.346 - font-size: 11px; 5.347 - padding: 4px; 5.348 - margin: 0 0 10px; 5.349 - background: #c60; 5.350 - color: #FFF; } 5.351 -.GuestBox .Button:hover { 5.352 - background: #555555; } 5.353 - 5.354 -a.BigButton { 5.355 - -moz-border-radius: 8px; 5.356 - -webkit-border-radius: 8px; 5.357 - display: block; 5.358 - background: #c60; 5.359 - color: #FFF; 5.360 - padding: 10px; 5.361 - font-size: 1.1em; 5.362 - font-weight: bold; 5.363 - text-align: center} 5.364 -a.BigButton:hover { background: #555555; } 5.365 -a.ClearConversation { margin: 10px 0 0; } 5.366 - 5.367 -/* options */ 5.368 -div.Options, div.OptionButton { 5.369 - position: absolute; top: 12px; right: 10px; 5.370 -} 5.371 -div.OptionButton { font-weight: bold; color: #555; } 5.372 -ul.Options strong { 5.373 - -moz-border-radius: 4px; 5.374 - -webkit-border-radius: 4px; 5.375 - cursor: pointer; 5.376 - display: block; 5.377 - padding: 5px 10px; 5.378 - background: #FFC; 5.379 - border: 1px solid #ccc; } 5.380 - 5.381 -ul.Options { margin: 5px 40px 0 0; } 5.382 -ul.Options li { position: relative; } 5.383 -ul.Options ul { min-width: 125px; display: none; position: absolute; z-index: 1000; background: #FFC; right: 0; border: 1px dotted #ccc; margin-top: -1px; } 5.384 -ul.Options li:hover ul { display: block; } 5.385 -ul.Options ul li { display: block; border-top: 1px dotted #ccc; } 5.386 -ul.Options ul li:first-child { border-top: none; } 5.387 -ul.Options ul li a { display: block; padding: 5px 10px; } 5.388 - 5.389 -/*- Pager -*/ 5.390 -#PagerAfter { margin: 10px 0; text-align: center; background: #ddd; padding: 2px 10px; } 5.391 -#PagerAfter a { display: inline-block; padding: 0 5px; } 5.392 -#PagerAfter a.Highlight { color: #c60; } 5.393 -span.Previous, a.Previous { float: left; } 5.394 -#PagerAfter span.Next, #PagerAfter a.Next { float: right; padding: 0; } 5.395 - 5.396 -#PagerMore { text-align: right; padding: 5px 10px; } 5.397 - 5.398 -/***--- FOOTER --***/ 5.399 -#Footer { 5.400 - font-size: 11px ; 5.401 - width: 100%; 5.402 - position: absolute; 5.403 - bottom: 0; 5.404 - background: inherit; 5.405 - color: #a8a8a8; } 5.406 -#Footer ul { margin: 16px 15px; } 5.407 -#Footer li { float: left; } 5.408 -#Footer a { text-decoration: underline; background: inherit; color: #a8a8a8; } 5.409 -#Footer a:hover { color: #666666; } 5.410 - 5.411 -/***--- OVERLAY ---***/ 5.412 -.Overlay { width: 100%; position: absolute; top: 0; z-index: 10000; background: url(../images/overlayBg.png); } 5.413 -.Overlay #Popup { width: 720px; padding: 15px; background: #FFF; margin: 0 auto; border: 1px dotted #c60; position: relative; } 5.414 - 5.415 -.Overlay .Buttons input.Button { margin: 0 0 10px; } 5.416 -.Overlay p { padding: 0 10px; } 5.417 -.Overlay a.Close { position: absolute; display: block; top: 10px; right: 15px; padding: 13px; font-size: 1.5em; color: #fff; } 5.418 -.Overlay a.Close:hover { color: #c60; } 5.419 -.Overlay ul { margin: 10px 0 0; } 5.420 - 5.421 -.Overlay input.Button { margin: 10px 0 0; } 5.422 -.Overlay textarea { margin: 10px 0 0; } 5.423 -.Overlay li.Gender { margin: 0; } 5.424 - 5.425 -.Overlay #Form_Picture { margin: 0 0 10px; }
6.1 Binary file forum/themes/slitaz-2/images/header.png has changed
7.1 Binary file forum/themes/slitaz-2/images/logo.png has changed
8.1 Binary file forum/themes/slitaz-2/images/overlayBg.png has changed
9.1 Binary file forum/themes/slitaz-2/screenshot.png has changed
10.1 --- a/forum/themes/slitaz-2/views/default.master.php Wed Dec 22 10:36:12 2010 +0100 10.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 10.3 @@ -1,84 +0,0 @@ 10.4 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 10.5 -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 10.6 - <head> 10.7 - <?php $this->RenderAsset('Head'); ?> 10.8 - </head> 10.9 - <body id="<?php echo $BodyIdentifier; ?>" class="<?php echo $this->CssClass; ?>"> 10.10 - <div id="Wrapper"> 10.11 - <div id="Main"> 10.12 - <div id="ContentHolder"> 10.13 - <div id="Content"> 10.14 - <?php $this->RenderAsset('Content'); ?> 10.15 - </div> 10.16 - </div> 10.17 - <div id="PanelHolder"> 10.18 - <div id="Panel"> 10.19 - 10.20 - <div class="Box"> 10.21 - <h4>Navigation</h4> 10.22 - 10.23 - <?php 10.24 - $Session = Gdn::Session(); 10.25 - if ($this->Menu) { 10.26 - $this->Menu->AddLink('Dashboard', T('Dashboard'), '/dashboard/settings', array('Garden.Settings.Manage')); 10.27 - // $this->Menu->AddLink('Dashboard', T('Users'), '/user/browse', array('Garden.Users.Add', 'Garden.Users.Edit', 'Garden.Users.Delete')); 10.28 - $this->Menu->AddLink('Activity', T('Activity'), '/activity'); 10.29 - $Authenticator = Gdn::Authenticator(); 10.30 - if ($Session->IsValid()) { 10.31 - $Name = $Session->User->Name; 10.32 - $CountNotifications = $Session->User->CountNotifications; 10.33 - if (is_numeric($CountNotifications) && $CountNotifications > 0) 10.34 - $Name .= ' <span>'.$CountNotifications.'</span>'; 10.35 - 10.36 - $this->Menu->AddLink('User', "Profile ($Name)", '/profile/{UserID}/{Username}', array('Garden.SignIn.Allow'), array('class' => 'UserNotifications')); 10.37 - $this->Menu->AddLink('SignOut', T('Sign Out'), $Authenticator->SignOutUrl(), FALSE, array('class' => 'NonTab SignOut')); 10.38 - } else { 10.39 - $Attribs = array(); 10.40 - if (C('Garden.SignIn.Popup') && strpos(Gdn::Request()->Url(), 'entry') === FALSE) 10.41 - $Attribs['class'] = 'SignInPopup'; 10.42 - 10.43 - $this->Menu->AddLink('Entry', T('Sign In'), $Authenticator->SignInUrl($this->SelfUrl), FALSE, array('class' => 'NonTab'), $Attribs); 10.44 - } 10.45 - echo $this->Menu->ToString(); 10.46 - } 10.47 - ?> 10.48 - </div> 10.49 - <?php $this->RenderAsset('Panel'); ?> 10.50 - </div> 10.51 - </div> 10.52 - <div class="clear"> </div> 10.53 - </div> 10.54 - 10.55 - <div id="Header"> 10.56 - 10.57 - <a href="http://forum.slitaz.org/"><img id="logo" 10.58 - src="themes/slitaz/images/logo.png" title="www.slitaz.org" alt="www.slitaz.org" 10.59 - style="border: 0px solid ; width: 200px; height: 74px;" /></a> 10.60 - <p id="titre">#!/Support/Forum</p> 10.61 - 10.62 - </div> 10.63 - 10.64 - <div id="Nav"> 10.65 - 10.66 - <div id="Search"> 10.67 - <?php 10.68 - $Form = Gdn::Factory('Form'); 10.69 - $Form->InputPrefix = ''; 10.70 - echo 10.71 - $Form->Open(array('action' => Url('/search'), 'method' => 'get')), 10.72 - $Form->TextBox('Search'), 10.73 - $Form->Button('Search', array('Name' => '')), 10.74 - $Form->Close(); 10.75 - ?> 10.76 - </div> 10.77 - </div> 10.78 - 10.79 - <div id="Footer"> 10.80 - Copyright © 2010 <a href="http://www.slitaz.org/">SliTaz</a> - 10.81 - <a href="http://vanillaforums.org">Powered by Vanilla</a> 10.82 - </div> 10.83 - </div> 10.84 - 10.85 - <?php $this->FireEvent('AfterBody'); ?> 10.86 - </body> 10.87 -</html>
11.1 --- a/forum/themes/slitaz-2/views/discussion/comments.php Wed Dec 22 10:36:12 2010 +0100 11.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 11.3 @@ -1,25 +0,0 @@ 11.4 -<?php if (!defined('APPLICATION')) exit(); 11.5 -$Session = Gdn::Session(); 11.6 -$this->FireEvent('BeforeCommentsRender'); 11.7 -if (!function_exists('WriteComment')) 11.8 - include($this->FetchViewLocation('helper_functions', 'discussion')); 11.9 - 11.10 -$CurrentOffset = $this->Offset; 11.11 -if ($CurrentOffset == 0 && !$this->Data('NewComments', FALSE)) { 11.12 - echo WriteComment($this->Discussion, $this, $Session, $CurrentOffset); 11.13 -} 11.14 - 11.15 -// Only prints individual comment list items 11.16 -$CommentData = $this->CommentData->Result(); 11.17 -$i = 0; 11.18 -foreach ($CommentData as $Comment) { 11.19 - ++$CurrentOffset; 11.20 - $this->CurrentComment = $Comment; 11.21 - if ($i % 2) { 11.22 - $counter = 'Odd'; 11.23 - } else { 11.24 - $counter = 'Even'; 11.25 - } 11.26 - WriteComment($Comment, $this, $Session, $CurrentOffset, $counter); 11.27 - $i++; 11.28 -}
12.1 --- a/forum/themes/slitaz-2/views/discussion/helper_functions.php Wed Dec 22 10:36:12 2010 +0100 12.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 12.3 @@ -1,118 +0,0 @@ 12.4 -<?php if (!defined('APPLICATION')) exit(); 12.5 - 12.6 -/** 12.7 - * $Object is either a Comment or the original Discussion. 12.8 - */ 12.9 -function WriteComment($Object, $Sender, $Session, $CurrentOffset, $counter) { 12.10 - $Author = UserBuilder($Object, 'Insert'); 12.11 - $Type = property_exists($Object, 'CommentID') ? 'Comment' : 'Discussion'; 12.12 - $Sender->EventArguments['Object'] = $Object; 12.13 - $Sender->EventArguments['Type'] = $Type; 12.14 - $Sender->EventArguments['Author'] = $Author; 12.15 - $CssClass = 'Item Comment ' . $counter; 12.16 - if ($Type == 'Comment') { 12.17 - $Sender->EventArguments['Comment'] = $Object; 12.18 - $Id = 'Comment_'.$Object->CommentID; 12.19 - $Permalink = '/discussion/comment/'.$Object->CommentID.'/#Comment_'.$Object->CommentID; 12.20 - } else { 12.21 - $Sender->EventArguments['Discussion'] = $Object; 12.22 - $CssClass .= ' FirstComment'; 12.23 - $Id = 'Discussion_'.$Object->DiscussionID; 12.24 - $Permalink = '/discussion/'.$Object->DiscussionID.'/'.Gdn_Format::Url($Object->Name).'/p1'; 12.25 - } 12.26 - $Sender->Options = ''; 12.27 - $CssClass .= $Object->InsertUserID == $Session->UserID ? ' Mine' : ''; 12.28 - $Sender->FireEvent('BeforeCommentDisplay'); 12.29 -?> 12.30 -<li class="<?php echo $CssClass; ?>" id="<?php echo $Id; ?>"> 12.31 - <div class="Comment"> 12.32 - <div class="Meta"> 12.33 - <?php $Sender->FireEvent('BeforeCommentMeta'); ?> 12.34 - <div class="Author"> 12.35 - <?php 12.36 - echo UserPhoto($Author); 12.37 - echo UserAnchor($Author); 12.38 - ?> 12.39 - <div class="clear"> </div> 12.40 - </div> 12.41 - <span class="DateCreated"> 12.42 - <?php 12.43 - echo Gdn_Format::Date($Object->DateInserted); 12.44 - ?> 12.45 - </span> 12.46 - <span class="Permalink"> 12.47 - <?php echo Anchor(T('Permalink'), $Permalink, 'Permalink', array('name' => 'Item_'.($CurrentOffset+1), 'rel' => 'nofollow')); ?> 12.48 - </span> 12.49 - <?php WriteOptionList($Object, $Sender, $Session); ?> 12.50 - <div class="CommentInfo"> 12.51 - <?php $Sender->FireEvent('CommentInfo'); ?> 12.52 - </div> 12.53 - <?php $Sender->FireEvent('AfterCommentMeta'); ?> 12.54 - </div> 12.55 - <div class="Message"> 12.56 - <?php $Sender->FireEvent('BeforeCommentBody'); ?> 12.57 - <?php 12.58 - $Object->FormatBody = Gdn_Format::To($Object->Body, $Object->Format); 12.59 - $Sender->FireEvent('AfterCommentFormat'); 12.60 - $Object = $Sender->EventArguments['Object']; 12.61 - echo $Object->FormatBody; 12.62 - ?> 12.63 - </div><div class="clear"> </div> 12.64 - <?php $Sender->FireEvent('AfterCommentBody'); ?> 12.65 - </div> 12.66 -</li> 12.67 -<?php 12.68 - $Sender->FireEvent('AfterComment'); 12.69 -} 12.70 - 12.71 -function WriteOptionList($Object, $Sender, $Session) { 12.72 - $EditContentTimeout = C('Garden.EditContentTimeout', -1); 12.73 - $CanEdit = $EditContentTimeout == -1 || strtotime($Object->DateInserted) + $EditContentTimeout > time(); 12.74 - $TimeLeft = ''; 12.75 - if ($CanEdit && $EditContentTimeout > 0) { 12.76 - $TimeLeft = strtotime($Object->DateInserted) + $EditContentTimeout - time(); 12.77 - $TimeLeft = $TimeLeft > 0 ? ' ('.Gdn_Format::Seconds($TimeLeft).')' : ''; 12.78 - } 12.79 - 12.80 - $Sender->Options = ''; 12.81 - $CategoryID = GetValue('CategoryID', $Object); 12.82 - if(!$CategoryID && property_exists($Sender, 'Discussion')) 12.83 - $CategoryID = GetValue('CategoryID', $Sender->Discussion); 12.84 - 12.85 - // Show discussion options if this is the discussion / first comment 12.86 - if ($Sender->EventArguments['Type'] == 'Discussion') { 12.87 - // Can the user edit the discussion? 12.88 - if (($CanEdit && $Session->UserID == $Object->InsertUserID) || $Session->CheckPermission('Vanilla.Discussions.Edit', TRUE, 'Category', $CategoryID)) 12.89 - $Sender->Options .= '<span>'.Anchor(T('Edit'), '/vanilla/post/editdiscussion/'.$Object->DiscussionID, 'EditDiscussion').$TimeLeft.'</span>'; 12.90 - 12.91 - // Can the user announce? 12.92 - if ($Session->CheckPermission('Vanilla.Discussions.Announce', TRUE, 'Category', $CategoryID)) 12.93 - $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Announce == '1' ? 'Unannounce' : 'Announce'), 'vanilla/discussion/announce/'.$Object->DiscussionID.'/'.$Session->TransientKey(), 'AnnounceDiscussion') . '</span>'; 12.94 - 12.95 - // Can the user sink? 12.96 - if ($Session->CheckPermission('Vanilla.Discussions.Sink', TRUE, 'Category', $CategoryID)) 12.97 - $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Sink == '1' ? 'Unsink' : 'Sink'), 'vanilla/discussion/sink/'.$Object->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'SinkDiscussion') . '</span>'; 12.98 - 12.99 - // Can the user close? 12.100 - if ($Session->CheckPermission('Vanilla.Discussions.Close', TRUE, 'Category', $CategoryID)) 12.101 - $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Closed == '1' ? 'Reopen' : 'Close'), 'vanilla/discussion/close/'.$Object->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'CloseDiscussion') . '</span>'; 12.102 - 12.103 - // Can the user delete? 12.104 - if ($Session->CheckPermission('Vanilla.Discussions.Delete', TRUE, 'Category', $CategoryID)) 12.105 - $Sender->Options .= '<span>'.Anchor(T('Delete Discussion'), 'vanilla/discussion/delete/'.$Object->DiscussionID.'/'.$Session->TransientKey(), 'DeleteDiscussion') . '</span>'; 12.106 - } else { 12.107 - // And if this is just another comment in the discussion ... 12.108 - 12.109 - // Can the user edit the comment? 12.110 - if (($CanEdit && $Session->UserID == $Object->InsertUserID) || $Session->CheckPermission('Vanilla.Comments.Edit', TRUE, 'Category', $Sender->Discussion->CategoryID)) 12.111 - $Sender->Options .= '<span>'.Anchor(T('Edit'), '/vanilla/post/editcomment/'.$Object->CommentID, 'EditComment').$TimeLeft.'</span>'; 12.112 - 12.113 - // Can the user delete the comment? 12.114 - if ($Session->CheckPermission('Vanilla.Comments.Delete', TRUE, 'Category', $CategoryID)) 12.115 - $Sender->Options .= '<span>'.Anchor(T('Delete'), 'vanilla/discussion/deletecomment/'.$Object->CommentID.'/'.$Session->TransientKey().'/?Target='.urlencode($Sender->SelfUrl), 'DeleteComment') . '</span>'; 12.116 - } 12.117 - 12.118 - // Allow plugins to add options 12.119 - $Sender->FireEvent('CommentOptions'); 12.120 - echo $Sender->Options; 12.121 -} 12.122 \ No newline at end of file
13.1 --- a/forum/themes/slitaz-2/views/discussions/helper_functions.php Wed Dec 22 10:36:12 2010 +0100 13.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 13.3 @@ -1,186 +0,0 @@ 13.4 -<?php 13.5 -if (!defined('APPLICATION')) exit(); 13.6 - 13.7 -function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt) { 13.8 - $CssClass = 'Item'; 13.9 - $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; 13.10 - $CssClass .= $Discussion->Closed == '1' ? ' Closed' : ''; 13.11 - $CssClass .= $Alt.' '; 13.12 - $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; 13.13 - $CssClass .= $Discussion->Dismissed == '1' ? ' Dismissed' : ''; 13.14 - $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; 13.15 - $CssClass .= ($Discussion->CountUnreadComments > 0 && $Session->IsValid()) ? ' New' : ''; 13.16 - $Sender->EventArguments['Discussion'] = &$Discussion; 13.17 - $First = UserBuilder($Discussion, 'First'); 13.18 - $Last = UserBuilder($Discussion, 'Last'); 13.19 - 13.20 - $Sender->FireEvent('BeforeDiscussionName'); 13.21 - 13.22 - $DiscussionName = Gdn_Format::Text($Discussion->Name); 13.23 - if ($DiscussionName == '') 13.24 - $DiscussionName = T('Blank Discussion Topic'); 13.25 - 13.26 - static $FirstDiscussion = TRUE; 13.27 - if (!$FirstDiscussion) 13.28 - $Sender->FireEvent('BetweenDiscussion'); 13.29 - else 13.30 - $FirstDiscussion = FALSE; 13.31 -?> 13.32 -<li class="<?php echo $CssClass; ?> "> 13.33 - <?php 13.34 - $Sender->FireEvent('BeforeDiscussionContent'); 13.35 - WriteOptions($Discussion, $Sender, $Session); 13.36 - ?> 13.37 - <div class="ItemContent Discussion"> 13.38 - <?php echo Anchor($DiscussionName, '/discussion/'.$Discussion->DiscussionID.'/'.Gdn_Format::Url($Discussion->Name).($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') ? '/#Item_'.$Discussion->CountCommentWatch : ''), 'Title'); ?> 13.39 - <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> 13.40 - <div class="Meta"> 13.41 - <?php if ($Discussion->Announce == '1') { ?> 13.42 - <span class="Announcement"><?php echo T('Announcement'); ?></span> 13.43 - <?php } ?> 13.44 - <?php if ($Discussion->Closed == '1') { ?> 13.45 - <span class="Closed"><?php echo T('Closed'); ?></span> 13.46 - <?php } ?> 13.47 - <span class="CommentCount"><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?></span> 13.48 - <?php 13.49 - if ($Session->IsValid() && $Discussion->CountUnreadComments > 0) 13.50 - echo '<strong>'.Plural($Discussion->CountUnreadComments, '%s New', '%s New Plural').'</strong>'; 13.51 - 13.52 - if ($Discussion->LastCommentID != '') { 13.53 - echo '<span class="LastCommentBy">'.sprintf(T('Most recent by %1$s'), UserAnchor($Last)).'</span>'; 13.54 - echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->LastDate).'</span>'; 13.55 - } else { 13.56 - echo '<span class="LastCommentBy">'.sprintf(T('Started by %1$s'), UserAnchor($First)).'</span>'; 13.57 - echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->FirstDate).'</span>'; 13.58 - } 13.59 - 13.60 - if (C('Vanilla.Categories.Use')) 13.61 - echo Wrap(Anchor($Discussion->Category, '/categories/'.$Discussion->CategoryUrlCode, 'Category')); 13.62 - 13.63 - $Sender->FireEvent('DiscussionMeta'); 13.64 - ?> 13.65 - </div> 13.66 - </div> 13.67 -</li> 13.68 -<?php 13.69 -} 13.70 - 13.71 -function WriteFilterTabs(&$Sender) { 13.72 - $Session = Gdn::Session(); 13.73 - $Title = property_exists($Sender, 'Category') && is_object($Sender->Category) ? $Sender->Category->Name : T('All Discussions'); 13.74 - $Bookmarked = T('My Bookmarks'); 13.75 - $MyDiscussions = T('My Discussions'); 13.76 - $MyDrafts = T('My Drafts'); 13.77 - $CountBookmarks = 0; 13.78 - $CountDiscussions = 0; 13.79 - $CountDrafts = 0; 13.80 - if ($Session->IsValid()) { 13.81 - $CountBookmarks = $Session->User->CountBookmarks; 13.82 - $CountDiscussions = $Session->User->CountDiscussions; 13.83 - $CountDrafts = $Session->User->CountDrafts; 13.84 - } 13.85 - if (is_numeric($CountBookmarks) && $CountBookmarks > 0) 13.86 - $Bookmarked .= '<span>'.$CountBookmarks.'</span>'; 13.87 - 13.88 - if (is_numeric($CountDiscussions) && $CountDiscussions > 0) 13.89 - $MyDiscussions .= '<span>'.$CountDiscussions.'</span>'; 13.90 - 13.91 - if (is_numeric($CountDrafts) && $CountDrafts > 0) 13.92 - $MyDrafts .= '<span>'.$CountDrafts.'</span>'; 13.93 - 13.94 - ?> 13.95 -<div class="Tabs DiscussionsTabs"> 13.96 - <ul> 13.97 - <?php $Sender->FireEvent('BeforeDiscussionTabs'); ?> 13.98 - <li<?php echo strtolower($Sender->ControllerName) == 'discussionscontroller' && strtolower($Sender->RequestMethod) == 'index' ? ' class="Active"' : ''; ?>><?php echo Anchor(T('All Discussions'), 'discussions'); ?></li> 13.99 - <?php $Sender->FireEvent('AfterAllDiscussionsTab'); ?> 13.100 - <?php if ($CountBookmarks > 0 || $Sender->RequestMethod == 'bookmarked') { ?> 13.101 - <li<?php echo $Sender->RequestMethod == 'bookmarked' ? ' class="Active"' : ''; ?>><?php echo Anchor($Bookmarked, '/discussions/bookmarked', 'MyBookmarks'); ?></li> 13.102 - <?php 13.103 - $Sender->FireEvent('AfterBookmarksTab'); 13.104 - } 13.105 - if ($CountDiscussions > 0 || $Sender->RequestMethod == 'mine') { 13.106 - ?> 13.107 - <li<?php echo $Sender->RequestMethod == 'mine' ? ' class="Active"' : ''; ?>><?php echo Anchor($MyDiscussions, '/discussions/mine', 'MyDiscussions'); ?></li> 13.108 - <?php 13.109 - } 13.110 - if ($CountDrafts > 0 || $Sender->ControllerName == 'draftscontroller') { 13.111 - ?> 13.112 - <li<?php echo $Sender->ControllerName == 'draftscontroller' ? ' class="Active"' : ''; ?>><?php echo Anchor($MyDrafts, '/drafts', 'MyDrafts'); ?></li> 13.113 - <?php 13.114 - } 13.115 - $Sender->FireEvent('AfterDiscussionTabs'); 13.116 - ?> 13.117 - </ul> 13.118 - <?php 13.119 - if (property_exists($Sender, 'Category') && is_object($Sender->Category)) { 13.120 - ?> 13.121 - <div class="SubTab">↳ <?php echo $Sender->Category->Name; ?></div> 13.122 - <?php 13.123 - } 13.124 - ?> 13.125 -</div> 13.126 - <?php 13.127 -} 13.128 - 13.129 -/** 13.130 - * Render options that the user has for this discussion. 13.131 - */ 13.132 -function WriteOptions($Discussion, &$Sender, &$Session) { 13.133 - if ($Session->IsValid() && $Sender->ShowOptions) { 13.134 - echo '<div class="Options">'; 13.135 - // Bookmark link 13.136 - $Title = T($Discussion->Bookmarked == '1' ? 'Unbookmark' : 'Bookmark'); 13.137 - echo Anchor( 13.138 - '<span class="Star">' 13.139 - .Img('applications/dashboard/design/images/pixel.png', array('alt' => $Title)) 13.140 - .'</span>', 13.141 - '/vanilla/discussion/bookmark/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 13.142 - 'Bookmark' . ($Discussion->Bookmarked == '1' ? ' Bookmarked' : ''), 13.143 - array('title' => $Title) 13.144 - ); 13.145 - 13.146 - $Sender->Options = ''; 13.147 - 13.148 - // Dismiss an announcement 13.149 - if (C('Vanilla.Discussions.Dismiss', 1) && $Discussion->Announce == '1' && $Discussion->Dismissed != '1') 13.150 - $Sender->Options .= '<li>'.Anchor(T('Dismiss'), 'vanilla/discussion/dismissannouncement/'.$Discussion->DiscussionID.'/'.$Session->TransientKey(), 'DismissAnnouncement') . '</li>'; 13.151 - 13.152 - // Edit discussion 13.153 - if ($Discussion->FirstUserID == $Session->UserID || $Session->CheckPermission('Vanilla.Discussions.Edit', TRUE, 'Category', $Discussion->CategoryID)) 13.154 - $Sender->Options .= '<li>'.Anchor(T('Edit'), 'vanilla/post/editdiscussion/'.$Discussion->DiscussionID, 'EditDiscussion') . '</li>'; 13.155 - 13.156 - // Announce discussion 13.157 - if ($Session->CheckPermission('Vanilla.Discussions.Announce', TRUE, 'Category', $Discussion->CategoryID)) 13.158 - $Sender->Options .= '<li>'.Anchor(T($Discussion->Announce == '1' ? 'Unannounce' : 'Announce'), 'vanilla/discussion/announce/'.$Discussion->DiscussionID.'/'.$Session->TransientKey(), 'AnnounceDiscussion') . '</li>'; 13.159 - 13.160 - // Sink discussion 13.161 - if ($Session->CheckPermission('Vanilla.Discussions.Sink', TRUE, 'Category', $Discussion->CategoryID)) 13.162 - $Sender->Options .= '<li>'.Anchor(T($Discussion->Sink == '1' ? 'Unsink' : 'Sink'), 'vanilla/discussion/sink/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'SinkDiscussion') . '</li>'; 13.163 - 13.164 - // Close discussion 13.165 - if ($Session->CheckPermission('Vanilla.Discussions.Close', TRUE, 'Category', $Discussion->CategoryID)) 13.166 - $Sender->Options .= '<li>'.Anchor(T($Discussion->Closed == '1' ? 'Reopen' : 'Close'), 'vanilla/discussion/close/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'CloseDiscussion') . '</li>'; 13.167 - 13.168 - // Delete discussion 13.169 - if ($Session->CheckPermission('Vanilla.Discussions.Delete', TRUE, 'Category', $Discussion->CategoryID)) 13.170 - $Sender->Options .= '<li>'.Anchor(T('Delete'), 'vanilla/discussion/delete/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'DeleteDiscussion') . '</li>'; 13.171 - 13.172 - // Allow plugins to add options 13.173 - $Sender->FireEvent('DiscussionOptions'); 13.174 - 13.175 - if ($Sender->Options != '') { 13.176 - ?> 13.177 - <ul class="Options"> 13.178 - <li> 13.179 - <strong><?php echo T('Options'); ?></strong> 13.180 - <ul> 13.181 - <?php echo $Sender->Options; ?> 13.182 - </ul> 13.183 - </li> 13.184 - </ul> 13.185 - <?php 13.186 - } 13.187 - echo '</div>'; 13.188 - } 13.189 -} 13.190 \ No newline at end of file
14.1 --- a/forum/themes/slitaz/README.txt Wed Dec 22 10:36:12 2010 +0100 14.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 14.3 @@ -1,45 +0,0 @@ 14.4 -How to create a theme: 14.5 - 14.6 -Part 1: CSS / Design 14.7 -================================================================================ 14.8 -1. Copy this "default" theme folder and rename it to your new theme name. 14.9 -2. Open the "about.php" file and edit the information to reflect your theme. Be 14.10 - sure to change the array key like this: $ThemeInfo['YourThemeNameHere']. 14.11 -3. Create a "design" subfolder and copy /applications/dashboard/design/style.css 14.12 - and /applications/vanilla/design/vanilla.css into it. 14.13 -4. Any background images you want to continue using (like the star png images 14.14 - for bookmarking) should be copied along with their respective stylesheets. 14.15 -5. Go to your Dashboard, Themes, and apply your new theme. 14.16 -6. Edit the copied CSS files to look however you wish! 14.17 - 14.18 -Other things you should know: 14.19 - 14.20 - + All non-forum pages should be edited in the global "style.css" file. 14.21 - 14.22 - + If you want to edit the look & feel of the administrative screens, also 14.23 - copy /applications/dashboard/design/admin.css in step 3. Similarly, you can 14.24 - copy other CSS files like /applications/vanilla/design/vanillaprofile.css to 14.25 - customize those pages as well. 14.26 - 14.27 - 14.28 -Part 2: HTML / Views 14.29 -================================================================================ 14.30 -If you want to customize the HTML, you can edit that too. 14.31 -Our pages are made up of two parts: 14.32 - 14.33 - 1. Master Views - these represent everything that wraps the main content of the 14.34 - page. If all you want to do is add a menu or banner above Vanilla, this is 14.35 - all you need to alter. To do so, copy the default master view from 14.36 - /applications/dashboard/views/default.master.php to 14.37 - /themes/yourtheme/views/default.master.php and edit it there. 14.38 - 14.39 - 2. Views - these represent all of the content in each page. Every application 14.40 - has a "views" folder that contains all of the HTML for every page. So, for 14.41 - example, if you wanted to edit the HTML for the Discussions list, you could 14.42 - copy the views from /applications/vanilla/views/discussions to 14.43 - /themes/yourtheme/views/discussions and edit them there. 14.44 - 14.45 -You can avoid naming conflicts between applications' views and specify which 14.46 -app a view is for by optionally adding a subfolder with the app's name in 14.47 -/themes/yourtheme/views/ (e.g.: /themes/yourtheme/views/appname/) and placing 14.48 -views there rather than directly in the "views" folder. 14.49 \ No newline at end of file
15.1 --- a/forum/themes/slitaz/about.php Wed Dec 22 10:36:12 2010 +0100 15.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 15.3 @@ -1,21 +0,0 @@ 15.4 -<?php if (!defined('APPLICATION')) exit(); 15.5 -/* 15.6 -Copyright 2008, 2009 Vanilla Forums Inc. 15.7 -This file is part of Garden. 15.8 -Garden is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 15.9 -Garden is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 15.10 -You should have received a copy of the GNU General Public License along with Garden. If not, see <http://www.gnu.org/licenses/>. 15.11 -Contact Vanilla Forums Inc. at support [at] vanillaforums [dot] com 15.12 -*/ 15.13 - 15.14 -/** 15.15 - * An associative array of information about this application. 15.16 - */ 15.17 -$ThemeInfo['SliTaz'] = array( 15.18 - 'Name' => 'SliTaz', 15.19 - 'Description' => "SliTaz Vanilla 2 official theme", 15.20 - 'Version' => '1.0', 15.21 - 'Author' => "Christophe Lincoln", 15.22 - 'AuthorEmail' => 'pankso@slitaz.org', 15.23 - 'AuthorUrl' => 'http://www.slitaz.org' 15.24 -);
16.1 Binary file forum/themes/slitaz/design/favicon.ico has changed
17.1 Binary file forum/themes/slitaz/design/favicon.png has changed
18.1 --- a/forum/themes/slitaz/design/style.css Wed Dec 22 10:36:12 2010 +0100 18.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 18.3 @@ -1,438 +0,0 @@ 18.4 -@charset "utf-8"; 18.5 -/* CSS Document */ 18.6 - 18.7 -/***--- MAIN / DEFAULT --***/ 18.8 -html, body { height: 102%; margin: 0; } 18.9 -html, body, input, select, textarea, button { 18.10 - font-family: Verdana, Geneva, sans-serif; 18.11 - font-size: 11px; 18.12 - line-height: 17px; 18.13 - color: #555; 18.14 -} 18.15 -a { color: #2f6c8e; text-decoration: none; } 18.16 -a:hover { color: #69a1c1; } 18.17 -a img { border: none; } 18.18 -ul, ol { margin: 0; padding: 0; list-style: none; } 18.19 - 18.20 -.clear { 18.21 - clear: both; 18.22 - display: block; 18.23 - height: 0; 18.24 - overflow: hidden; 18.25 - visibility: hidden; 18.26 - width: 0; 18.27 -} 18.28 - 18.29 -#Wrapper { min-height: 100%; position: relative; margin: 0 auto; } 18.30 -.Hidden { display: none; } 18.31 - 18.32 -/***--- HEADER(S) --***/ 18.33 - 18.34 - 18.35 -#Header h1 { padding: 15px; font-size: 2em; } 18.36 -#Header a { color: #69a1c1; } 18.37 -#Header a:hover { color: #FFF; } 18.38 - 18.39 -#Header{ 18.40 - background: #f0ba08 url(../images/header.png) repeat-x top; 18.41 - color: black; 18.42 - width: 100%; 18.43 - height: 50px; 18.44 - border-top: 1px solid black; 18.45 - border-bottom: 1px solid black; 18.46 - margin-bottom: 30px; 18.47 - position: absolute; 18.48 - top: 0; 18.49 -} 18.50 - 18.51 -#titre { 18.52 - position: absolute; 18.53 - font-size: 16px; 18.54 - font-weight: bolder ; 18.55 - margin-left: 200px; 18.56 - margin-top: 28px; 18.57 -} 18.58 - 18.59 -#logo { 18.60 - position: absolute; 18.61 - float: left; 18.62 - margin-left: 16px; 18.63 - margin-top: 0px; 18.64 -} 18.65 - 18.66 -/***--- NAV --***/ 18.67 -#Nav { 18.68 - right: 0; 18.69 - position: absolute; 18.70 - top: 3px; 18.71 - font-size: 10px; 18.72 - font-weight: bold; } 18.73 - 18.74 -ul#Menu { 18.75 - margin: 10px 15px; 18.76 - float: left; } 18.77 - 18.78 -#Menu li { float: left; margin: 0 1px 0 0; } 18.79 -#Menu a { 18.80 - display: block; 18.81 - padding: 5px 4px; 18.82 - background: inherit; 18.83 - color: white; 18.84 - text-decoration: none; } 18.85 - 18.86 -#Menu a:hover { 18.87 - background: inherit; 18.88 - color: #222222; } 18.89 -#Menu li.Highlight a { color: #222222; } 18.90 - 18.91 -/* search */ 18.92 -#Search { 18.93 - -moz-border-radius: 4px; 18.94 - -webkit-border-radius: 4px; 18.95 - height: 20px; 18.96 - float: right; 18.97 - background: #FFF; 18.98 - padding: 2px 2px; 18.99 - margin: 11px 15px; } 18.100 -#Search form { padding: 0; border: none; } 18.101 -#Nav #Search input.InputBox { width: 150px; border: none; } 18.102 -#Search input.Button { 18.103 - -moz-border-radius: 4px; 18.104 - -webkit-border-radius: 4px; 18.105 - height: 17px; 18.106 - margin: 0; 18.107 - padding: 0; } 18.108 - 18.109 -/***--- MAIN --***/ 18.110 -/*#Main { }*/ 18.111 - 18.112 -/* If you prefer the panel on the left and content on the right, simply switch the "float" property for #Content & #Panel and set the "margin-left" to "margin-right" for the #Content */ 18.113 -#Content { 18.114 - margin: 0px 320px 0px 0px; 18.115 - padding: 86px 40px 65px 80px; 18.116 - } 18.117 -#Panel { 18.118 - position: absolute; 18.119 - top: 86px; 18.120 - right: 80px; 18.121 - color: #555555; 18.122 - float: right; 18.123 - width: 250px; 18.124 - line-height: 1.5em; 18.125 - text-align: left; 18.126 - font-size: 12px; 18.127 - } 18.128 -.Box, #UserOptions { 18.129 - -moz-border-radius: 8px; 18.130 - -webkit-border-radius: 8px; 18.131 - list-style-type: none; 18.132 - margin: 10px 0; 18.133 - padding: 10px 24px 10px 24px; 18.134 - background-color: #eaeaea;} 18.135 -#Panel .Box ul { 18.136 - list-style-type: none; 18.137 - margin: 0; 18.138 - padding: 10px 24px 10px 0px; 18.139 -} 18.140 - 18.141 -/***--- CONTENT --***/ 18.142 -.GuestBox { background: #eaeaea; } 18.143 -.GuestBox p { padding: 0; } 18.144 -.Message img { max-width: 100%; } 18.145 - 18.146 -/* headers */ 18.147 -h1 { margin: 0; font-size: 1.5em; } 18.148 -#Content h1, h2, #Popup h1, div.DiscussionTabs .SubTab { 18.149 - -moz-border-radius: 8px; 18.150 - -webkit-border-radius: 8px; 18.151 - font-size: 1.1em; background: #555555; color: #fff; margin: 0 0 10px; padding: 10px; font-weight: bold; 18.152 -} 18.153 -div.DiscussionTabs .SubTab { margin: 0; } 18.154 - 18.155 -#Panel h4, #Panel .GuestBox h4 { 18.156 - font-size: 110%; 18.157 - color: #666666; 18.158 - font-weight: bold; 18.159 - padding: 0 0 1px 0; 18.160 - margin: 0; 18.161 - border-bottom: 1px solid #cecece; } 18.162 - 18.163 -div.Empty, div#Status { padding: 10px; } 18.164 - 18.165 -/* tabs */ 18.166 -.Tabs li, .SubTab { 18.167 - -moz-border-radius: 8px; 18.168 - -webkit-border-radius: 8px; 18.169 - background: #CECECE; 18.170 - padding: 5px 8px; 18.171 - font-size: 140%; 18.172 - font-weight: bold; 18.173 - border-bottom: 1px solid #fff; } 18.174 -.Tabs li.Active { background: #555; border-bottom: none; } 18.175 -.Tabs li.Active a { color: #fff; } 18.176 -.Tabs span { display: inline-block; margin: 0 10px; color: #888; } 18.177 -.SubTab { font-size: 1em; } 18.178 - 18.179 -/* DISCUSSIONS */ 18.180 -.DataList li.Item, .Conversation li.Item { 18.181 - border-bottom: 1px solid #ccc; 18.182 - position: relative; 18.183 - padding: 10px; 18.184 - -moz-border-radius: 8px; 18.185 - -webkit-border-radius: 8px; 18.186 -} 18.187 -.Activities li.Item { min-height: 50px; } 18.188 -.DataList li.Item a.Title { display: block; font-size: 1.15em; font-weight: bold; padding: 0 0 8px; } 18.189 - 18.190 -/* discussions meta */ 18.191 -.DataList .Meta span, .DataList .Meta strong { 18.192 - min-width: 100px; display: inline-block; margin: 0 5px 0 0; 18.193 -} 18.194 -.DataList .Meta .LastCommentBy { width: 175px; } 18.195 -.DataList .Meta .LastCommentDate { width: 100px; } 18.196 - 18.197 -/* discussions highlight */ 18.198 -.DataList li.Mine { background: #f1f1f1; border-bottom-color: #fff; } 18.199 -.DataList li.New { background: #d8ecbc; } 18.200 -.DataList li.Bookmarked { background: #ffdf5d; border-bottom-color: #fff; } 18.201 - 18.202 -.DataList li.Closed { background: #eee; } 18.203 -.DataList .Meta .Closed { color: #333; } 18.204 -.DataList li.Closed a.Title { text-decoration: line-through; } 18.205 - 18.206 -.DataList li.Announcement { background: #FFC; } 18.207 -.DataList .Meta .Announcement, .DataList .Meta .Closed { 18.208 - width: 100px; font-weight: bold; 18.209 -} 18.210 -.DataList .Meta .Announcement { color: #C60; } 18.211 - 18.212 -/* DISCUSSION */ 18.213 -div.DiscussionTabs li { font-size: 1em; } 18.214 -ul.Discussion { margin: 0 0 10px; } 18.215 - 18.216 -/* bookmark */ 18.217 -a.Bookmark { width: 9px; height: 9px; position: absolute; top: 8px; right: 10px; font-size: 0; background: #fff; border: 1px dotted #ffcc00; } 18.218 -.Discussion a.Bookmark { top: 41px; } 18.219 -a.Bookmarked { background: #ffcc00; border: 1px solid #fff; } 18.220 -div.Options a.Bookmark { top: 14px; } 18.221 - 18.222 -div.Comment { 18.223 - position: relative; 18.224 - border-bottom: 1px dotted #ccc; 18.225 - padding: 10px; } 18.226 -li.Even { background: #f8f8f8; } 18.227 - 18.228 -/* discussion meta */ 18.229 -.Comment .Message, .Comment .MessageForm, .ConversationMessage .Message { 18.230 - margin-left: 215px; line-height: 1.75em; 18.231 -} 18.232 -.Comment .Meta, .ConversationMessage .Meta { 18.233 - width: 175px; float: left; padding: 10px; background: #FFC; 18.234 - -moz-border-radius: 8px; 18.235 - -webkit-border-radius: 8px; 18.236 -} 18.237 -.Comment .Meta span, .ConversationMessage .Meta span, div.Meta div.PostCount { 18.238 - display: block; border-bottom: 1px dotted #ccc; font-size: 0.85em; padding: 1px 0; 18.239 -} 18.240 -.Comment .Author, .ConversationMessage span.Author { 18.241 - background: #fff; padding: 5px; border-bottom: none; 18.242 -} 18.243 -.Comment .Author img, .ConversationMessage .Author a.Photo { 18.244 - float: left; margin: 0 10px 0 0; 18.245 -} 18.246 -.Comment .Author a, .ConversationMessage .Author a { 18.247 - font-weight: bold; font-size: 1.1em; 18.248 -} 18.249 -blockquote { margin: 0; padding: 10px; background: #fff; border: 1px dotted #ccc; } 18.250 -.Odd blockquote { background: #F8F8F8; } 18.251 - 18.252 -/* post */ 18.253 -ul.PostOptions { margin: 0 0 10px; } 18.254 -.Preview { padding: 10px; margin: 0 0 10px; border-bottom: 1px dotted #ccc; } 18.255 - 18.256 -/*- Conversations & Activities -*/ 18.257 -ul.Activities .Title { margin: 0 0 0 60px; font-weight: bold; } 18.258 -ul.Conversations .Photo, ul.Activities .Photo { 18.259 - width: 50px; height: 50px; float: left; font-size: 0.9em; color: #ccc; overflow: hidden; background: #eee; 18.260 -} 18.261 -ul.Conversations .Excerpt, ul.Activities .Excerpt { 18.262 - margin: 0 0 10px 60px; 18.263 -} 18.264 -ul.Conversations .Meta, ul.Activities .Meta, .SearchResults .Meta { 18.265 - margin: 0 0 0 60px;background: #FFC; padding: 3px 5px; 18.266 -} 18.267 -.SearchResults .Meta { margin: 5px 0 0; } 18.268 -ul.ActivityComments { margin: 0 0 0 60px; } 18.269 - 18.270 -.ConversationMessage .Message { min-height: 100px; } 18.271 -.ConversationMessage span.Author { height: 50px; } 18.272 -.ConversationMessage span.ItemLink { display: none; } 18.273 - 18.274 -/***--- PANEL --***/ 18.275 -.Block { padding: 15px; background: #ddd; margin: 0 10px 0 0; } 18.276 -.Post #Panel, .Search #Panel { 18.277 - display: none; 18.278 -} 18.279 - 18.280 -.PanelInfo li { padding: 0px 0px; } 18.281 -.PanelInfo li strong { font-weight: normal; } 18.282 -.PanelInfo li.Active a { color: #c60; } 18.283 -.PanelInfo li.Parent { background: #ccc; padding: 2px 5px; font-size: 1.1em; font-weight: bold; } 18.284 - 18.285 -.PanelInfo a { 18.286 - color: #0F314E; 18.287 - background: inherit; 18.288 - display: block; 18.289 - text-decoration: none; 18.290 - font-weight: bold; 18.291 -} 18.292 - 18.293 -.PanelInfo a:hover { 18.294 - color: #c60; 18.295 - text-decoration: none; 18.296 - display: block; 18.297 -} 18.298 -/* account */ 18.299 - 18.300 -#Panel .Photo { background: #ddd; position: absolute; right: 10px; padding: 0 0 10px 10px; } 18.301 -#Panel .Photo img { width: 50px; display: block; border: 5px solid #fff; border-bottom-width: 12px; } 18.302 -#Panel .Photo img:hover { width: auto; } 18.303 - 18.304 -#Panel dl { padding: 10px; background: #fff; margin: 0; } 18.305 -#Panel dt { font-weight: bold; padding: 2px 0 0; } 18.306 -#Panel dd { margin: 0; border-bottom: 1px dotted #ccc; padding: 0 0 2px; } 18.307 - 18.308 -/* inbox */ 18.309 -.PanelInfo li strong { display: inline-block; margin: 0 5px 0 0; } 18.310 - 18.311 -/*- Form elements -*/ 18.312 -form { padding: 0 10px 10px; border-bottom: 1px dotted #ccc; } 18.313 -fieldset { margin: 0; padding: 0; border: none; } 18.314 - 18.315 -form#Form_User_Register { margin-top: 10px; } 18.316 - 18.317 -input, textarea, select { 18.318 - border: 1px solid #ccc; padding: 3px 5px; margin: 0; 18.319 -} 18.320 -input.InputBox { width: 325px; margin: 0 10px 5px 0; } 18.321 - 18.322 -input.Button, input.Cancel { 18.323 - -moz-border-radius: 4px; 18.324 - -webkit-border-radius: 4px; 18.325 - cursor: pointer; border: none; background: #c60; color: #fff; padding: 4px; 18.326 -} 18.327 -input.Button:hover, input.Cancel:hover { 18.328 - background: #555555; color: white; 18.329 -} 18.330 - 18.331 -a.Back, a.Cancel { 18.332 - margin: 0 5px 0 0; 18.333 -} 18.334 - 18.335 -textarea { width: 95%; min-height: 100px; display: block; margin: 10px 0; } 18.336 - 18.337 -label { display: block; font-weight: bold; } 18.338 -label.RadioLabel, label.CheckBoxLabel { 18.339 - font-weight: normal; 18.340 -} 18.341 -label.RadioLabel input, label.CheckBoxLabel input { 18.342 - border: none; 18.343 -} 18.344 - 18.345 -li.Gender, li.CaptchaInput { 18.346 - margin: 0 0 10px; 18.347 -} 18.348 -li.CreateAccount, li.Buttons { 18.349 - margin: 5px 0 0; 18.350 -} 18.351 -.cleditorMain { margin: 10px 0; } 18.352 - 18.353 -.CommentForm div.Messages { margin: 8px 0 0; } 18.354 -.Errors, .Warning { 18.355 - color: #F00; 18.356 -} 18.357 - 18.358 -/***--- BUTTONS ---***/ 18.359 -.GuestBox a.Button { 18.360 - -moz-border-radius: 4px; 18.361 - -webkit-border-radius: 4px; 18.362 - font-size: 11px; 18.363 - padding: 4px; 18.364 - margin: 0 0 10px; 18.365 - background: #c60; 18.366 - color: #FFF; } 18.367 -.GuestBox .Button:hover { 18.368 - background: #555555; } 18.369 - 18.370 -a.BigButton { 18.371 - -moz-border-radius: 8px; 18.372 - -webkit-border-radius: 8px; 18.373 - display: block; 18.374 - background: #c60; 18.375 - color: #FFF; 18.376 - padding: 10px; 18.377 - font-size: 1.1em; 18.378 - font-weight: bold; 18.379 - text-align: center} 18.380 -a.BigButton:hover { background: #555555; } 18.381 -a.ClearConversation { margin: 10px 0 0; } 18.382 - 18.383 -/* options */ 18.384 -div.Options, div.OptionButton { 18.385 - position: absolute; top: 12px; right: 10px; 18.386 -} 18.387 -div.OptionButton { font-weight: bold; color: #555; } 18.388 -ul.Options strong { 18.389 - -moz-border-radius: 4px; 18.390 - -webkit-border-radius: 4px; 18.391 - cursor: pointer; 18.392 - display: block; 18.393 - padding: 5px 10px; 18.394 - background: #FFC; 18.395 - border: 1px solid #ccc; } 18.396 - 18.397 -ul.Options { margin: 5px 40px 0 0; } 18.398 -ul.Options li { position: relative; } 18.399 -ul.Options ul { min-width: 125px; display: none; position: absolute; z-index: 1000; background: #FFC; right: 0; border: 1px dotted #ccc; margin-top: -1px; } 18.400 -ul.Options li:hover ul { display: block; } 18.401 -ul.Options ul li { display: block; border-top: 1px dotted #ccc; } 18.402 -ul.Options ul li:first-child { border-top: none; } 18.403 -ul.Options ul li a { display: block; padding: 5px 10px; } 18.404 - 18.405 -/*- Pager -*/ 18.406 -#PagerAfter { margin: 10px 0; text-align: center; background: #ddd; padding: 2px 10px; } 18.407 -#PagerAfter a { display: inline-block; padding: 0 5px; } 18.408 -#PagerAfter a.Highlight { color: #c60; } 18.409 -span.Previous, a.Previous { float: left; } 18.410 -#PagerAfter span.Next, #PagerAfter a.Next { float: right; padding: 0; } 18.411 - 18.412 -#PagerMore { text-align: right; padding: 5px 10px; } 18.413 - 18.414 -/***--- FOOTER --***/ 18.415 -#Footer { 18.416 - font-size: 11px ; 18.417 - width: 100%; 18.418 - position: absolute; 18.419 - bottom: 0; 18.420 - background: inherit; 18.421 - color: #a8a8a8; } 18.422 -#Footer ul { margin: 16px 15px; } 18.423 -#Footer li { float: left; } 18.424 -#Footer a { text-decoration: underline; background: inherit; color: #a8a8a8; } 18.425 -#Footer a:hover { color: #666666; } 18.426 - 18.427 -/***--- OVERLAY ---***/ 18.428 -.Overlay { width: 100%; position: absolute; top: 0; z-index: 10000; background: url(../images/overlayBg.png); } 18.429 -.Overlay #Popup { width: 720px; padding: 15px; background: #FFF; margin: 0 auto; border: 1px dotted #c60; position: relative; } 18.430 - 18.431 -.Overlay .Buttons input.Button { margin: 0 0 10px; } 18.432 -.Overlay p { padding: 0 10px; } 18.433 -.Overlay a.Close { position: absolute; display: block; top: 10px; right: 15px; padding: 13px; font-size: 1.5em; color: #fff; } 18.434 -.Overlay a.Close:hover { color: #c60; } 18.435 -.Overlay ul { margin: 10px 0 0; } 18.436 - 18.437 -.Overlay input.Button { margin: 10px 0 0; } 18.438 -.Overlay textarea { margin: 10px 0 0; } 18.439 -.Overlay li.Gender { margin: 0; } 18.440 - 18.441 -.Overlay #Form_Picture { margin: 0 0 10px; }
19.1 Binary file forum/themes/slitaz/images/header.png has changed
20.1 Binary file forum/themes/slitaz/images/logo.png has changed
21.1 Binary file forum/themes/slitaz/images/overlayBg.png has changed
22.1 Binary file forum/themes/slitaz/screenshot.png has changed
23.1 --- a/forum/themes/slitaz/views/default.master.php Wed Dec 22 10:36:12 2010 +0100 23.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 23.3 @@ -1,76 +0,0 @@ 23.4 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 23.5 -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 23.6 - <head> 23.7 - <?php $this->RenderAsset('Head'); ?> 23.8 - </head> 23.9 - <body id="<?php echo $BodyIdentifier; ?>" class="<?php echo $this->CssClass; ?>"> 23.10 - <div id="Wrapper"> 23.11 - <div id="Main"> 23.12 - <div id="ContentHolder"> 23.13 - <div id="Content"> 23.14 - <?php $this->RenderAsset('Content'); ?> 23.15 - </div> 23.16 - </div> 23.17 - <div id="PanelHolder"> 23.18 - <div id="Panel"><?php $this->RenderAsset('Panel'); ?></div> 23.19 - </div> 23.20 - <div class="clear"> </div> 23.21 - </div> 23.22 - 23.23 - <div id="Header"> 23.24 - 23.25 - <a href="<?php echo Url('/'); ?>"><img id="logo" 23.26 - src="themes/slitaz/images/logo.png" title="www.slitaz.org" alt="www.slitaz.org" 23.27 - style="border: 0px solid ; width: 200px; height: 74px;" /></a> 23.28 - <p id="titre">#!/Support/Forum</p> 23.29 - 23.30 - </div> 23.31 - 23.32 - <div id="Nav"> 23.33 - <?php 23.34 - $Session = Gdn::Session(); 23.35 - if ($this->Menu) { 23.36 - $this->Menu->AddLink('Dashboard', T('Dashboard'), '/dashboard/settings', array('Garden.Settings.Manage')); 23.37 - // $this->Menu->AddLink('Dashboard', T('Users'), '/user/browse', array('Garden.Users.Add', 'Garden.Users.Edit', 'Garden.Users.Delete')); 23.38 - $this->Menu->AddLink('Activity', T('Activity'), '/activity'); 23.39 - $Authenticator = Gdn::Authenticator(); 23.40 - if ($Session->IsValid()) { 23.41 - $Name = $Session->User->Name; 23.42 - $CountNotifications = $Session->User->CountNotifications; 23.43 - if (is_numeric($CountNotifications) && $CountNotifications > 0) 23.44 - $Name .= ' <span>'.$CountNotifications.'</span>'; 23.45 - 23.46 - $this->Menu->AddLink('User', "Profile ($Name)", '/profile/{UserID}/{Username}', array('Garden.SignIn.Allow'), array('class' => 'UserNotifications')); 23.47 - $this->Menu->AddLink('SignOut', T('Sign Out'), $Authenticator->SignOutUrl(), FALSE, array('class' => 'NonTab SignOut')); 23.48 - } else { 23.49 - $Attribs = array(); 23.50 - if (C('Garden.SignIn.Popup') && strpos(Gdn::Request()->Url(), 'entry') === FALSE) 23.51 - $Attribs['class'] = 'SignInPopup'; 23.52 - 23.53 - $this->Menu->AddLink('Entry', T('Sign In'), $Authenticator->SignInUrl($this->SelfUrl), FALSE, array('class' => 'NonTab'), $Attribs); 23.54 - } 23.55 - echo $this->Menu->ToString(); 23.56 - } 23.57 - ?> 23.58 - <div id="Search"> 23.59 - <?php 23.60 - $Form = Gdn::Factory('Form'); 23.61 - $Form->InputPrefix = ''; 23.62 - echo 23.63 - $Form->Open(array('action' => Url('/search'), 'method' => 'get')), 23.64 - $Form->TextBox('Search'), 23.65 - $Form->Button('Search', array('Name' => '')), 23.66 - $Form->Close(); 23.67 - ?> 23.68 - </div> 23.69 - </div> 23.70 - 23.71 - <div id="Footer"> 23.72 - Copyright © 2010 <a href="http://www.slitaz.org/">SliTaz</a> - 23.73 - <a href="http://vanillaforums.org">Powered by Vanilla</a> 23.74 - </div> 23.75 - </div> 23.76 - 23.77 - <?php $this->FireEvent('AfterBody'); ?> 23.78 - </body> 23.79 -</html>
24.1 --- a/forum/themes/slitaz/views/discussion/comments.php Wed Dec 22 10:36:12 2010 +0100 24.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 24.3 @@ -1,25 +0,0 @@ 24.4 -<?php if (!defined('APPLICATION')) exit(); 24.5 -$Session = Gdn::Session(); 24.6 -$this->FireEvent('BeforeCommentsRender'); 24.7 -if (!function_exists('WriteComment')) 24.8 - include($this->FetchViewLocation('helper_functions', 'discussion')); 24.9 - 24.10 -$CurrentOffset = $this->Offset; 24.11 -if ($CurrentOffset == 0 && !$this->Data('NewComments', FALSE)) { 24.12 - echo WriteComment($this->Discussion, $this, $Session, $CurrentOffset); 24.13 -} 24.14 - 24.15 -// Only prints individual comment list items 24.16 -$CommentData = $this->CommentData->Result(); 24.17 -$i = 0; 24.18 -foreach ($CommentData as $Comment) { 24.19 - ++$CurrentOffset; 24.20 - $this->CurrentComment = $Comment; 24.21 - if ($i % 2) { 24.22 - $counter = 'Odd'; 24.23 - } else { 24.24 - $counter = 'Even'; 24.25 - } 24.26 - WriteComment($Comment, $this, $Session, $CurrentOffset, $counter); 24.27 - $i++; 24.28 -}
25.1 --- a/forum/themes/slitaz/views/discussion/helper_functions.php Wed Dec 22 10:36:12 2010 +0100 25.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 25.3 @@ -1,118 +0,0 @@ 25.4 -<?php if (!defined('APPLICATION')) exit(); 25.5 - 25.6 -/** 25.7 - * $Object is either a Comment or the original Discussion. 25.8 - */ 25.9 -function WriteComment($Object, $Sender, $Session, $CurrentOffset, $counter) { 25.10 - $Author = UserBuilder($Object, 'Insert'); 25.11 - $Type = property_exists($Object, 'CommentID') ? 'Comment' : 'Discussion'; 25.12 - $Sender->EventArguments['Object'] = $Object; 25.13 - $Sender->EventArguments['Type'] = $Type; 25.14 - $Sender->EventArguments['Author'] = $Author; 25.15 - $CssClass = 'Item Comment ' . $counter; 25.16 - if ($Type == 'Comment') { 25.17 - $Sender->EventArguments['Comment'] = $Object; 25.18 - $Id = 'Comment_'.$Object->CommentID; 25.19 - $Permalink = '/discussion/comment/'.$Object->CommentID.'/#Comment_'.$Object->CommentID; 25.20 - } else { 25.21 - $Sender->EventArguments['Discussion'] = $Object; 25.22 - $CssClass .= ' FirstComment'; 25.23 - $Id = 'Discussion_'.$Object->DiscussionID; 25.24 - $Permalink = '/discussion/'.$Object->DiscussionID.'/'.Gdn_Format::Url($Object->Name).'/p1'; 25.25 - } 25.26 - $Sender->Options = ''; 25.27 - $CssClass .= $Object->InsertUserID == $Session->UserID ? ' Mine' : ''; 25.28 - $Sender->FireEvent('BeforeCommentDisplay'); 25.29 -?> 25.30 -<li class="<?php echo $CssClass; ?>" id="<?php echo $Id; ?>"> 25.31 - <div class="Comment"> 25.32 - <div class="Meta"> 25.33 - <?php $Sender->FireEvent('BeforeCommentMeta'); ?> 25.34 - <div class="Author"> 25.35 - <?php 25.36 - echo UserPhoto($Author); 25.37 - echo UserAnchor($Author); 25.38 - ?> 25.39 - <div class="clear"> </div> 25.40 - </div> 25.41 - <span class="DateCreated"> 25.42 - <?php 25.43 - echo Gdn_Format::Date($Object->DateInserted); 25.44 - ?> 25.45 - </span> 25.46 - <span class="Permalink"> 25.47 - <?php echo Anchor(T('Permalink'), $Permalink, 'Permalink', array('name' => 'Item_'.($CurrentOffset+1), 'rel' => 'nofollow')); ?> 25.48 - </span> 25.49 - <?php WriteOptionList($Object, $Sender, $Session); ?> 25.50 - <div class="CommentInfo"> 25.51 - <?php $Sender->FireEvent('CommentInfo'); ?> 25.52 - </div> 25.53 - <?php $Sender->FireEvent('AfterCommentMeta'); ?> 25.54 - </div> 25.55 - <div class="Message"> 25.56 - <?php $Sender->FireEvent('BeforeCommentBody'); ?> 25.57 - <?php 25.58 - $Object->FormatBody = Gdn_Format::To($Object->Body, $Object->Format); 25.59 - $Sender->FireEvent('AfterCommentFormat'); 25.60 - $Object = $Sender->EventArguments['Object']; 25.61 - echo $Object->FormatBody; 25.62 - ?> 25.63 - </div><div class="clear"> </div> 25.64 - <?php $Sender->FireEvent('AfterCommentBody'); ?> 25.65 - </div> 25.66 -</li> 25.67 -<?php 25.68 - $Sender->FireEvent('AfterComment'); 25.69 -} 25.70 - 25.71 -function WriteOptionList($Object, $Sender, $Session) { 25.72 - $EditContentTimeout = C('Garden.EditContentTimeout', -1); 25.73 - $CanEdit = $EditContentTimeout == -1 || strtotime($Object->DateInserted) + $EditContentTimeout > time(); 25.74 - $TimeLeft = ''; 25.75 - if ($CanEdit && $EditContentTimeout > 0) { 25.76 - $TimeLeft = strtotime($Object->DateInserted) + $EditContentTimeout - time(); 25.77 - $TimeLeft = $TimeLeft > 0 ? ' ('.Gdn_Format::Seconds($TimeLeft).')' : ''; 25.78 - } 25.79 - 25.80 - $Sender->Options = ''; 25.81 - $CategoryID = GetValue('CategoryID', $Object); 25.82 - if(!$CategoryID && property_exists($Sender, 'Discussion')) 25.83 - $CategoryID = GetValue('CategoryID', $Sender->Discussion); 25.84 - 25.85 - // Show discussion options if this is the discussion / first comment 25.86 - if ($Sender->EventArguments['Type'] == 'Discussion') { 25.87 - // Can the user edit the discussion? 25.88 - if (($CanEdit && $Session->UserID == $Object->InsertUserID) || $Session->CheckPermission('Vanilla.Discussions.Edit', TRUE, 'Category', $CategoryID)) 25.89 - $Sender->Options .= '<span>'.Anchor(T('Edit'), '/vanilla/post/editdiscussion/'.$Object->DiscussionID, 'EditDiscussion').$TimeLeft.'</span>'; 25.90 - 25.91 - // Can the user announce? 25.92 - if ($Session->CheckPermission('Vanilla.Discussions.Announce', TRUE, 'Category', $CategoryID)) 25.93 - $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Announce == '1' ? 'Unannounce' : 'Announce'), 'vanilla/discussion/announce/'.$Object->DiscussionID.'/'.$Session->TransientKey(), 'AnnounceDiscussion') . '</span>'; 25.94 - 25.95 - // Can the user sink? 25.96 - if ($Session->CheckPermission('Vanilla.Discussions.Sink', TRUE, 'Category', $CategoryID)) 25.97 - $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Sink == '1' ? 'Unsink' : 'Sink'), 'vanilla/discussion/sink/'.$Object->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'SinkDiscussion') . '</span>'; 25.98 - 25.99 - // Can the user close? 25.100 - if ($Session->CheckPermission('Vanilla.Discussions.Close', TRUE, 'Category', $CategoryID)) 25.101 - $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Closed == '1' ? 'Reopen' : 'Close'), 'vanilla/discussion/close/'.$Object->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'CloseDiscussion') . '</span>'; 25.102 - 25.103 - // Can the user delete? 25.104 - if ($Session->CheckPermission('Vanilla.Discussions.Delete', TRUE, 'Category', $CategoryID)) 25.105 - $Sender->Options .= '<span>'.Anchor(T('Delete Discussion'), 'vanilla/discussion/delete/'.$Object->DiscussionID.'/'.$Session->TransientKey(), 'DeleteDiscussion') . '</span>'; 25.106 - } else { 25.107 - // And if this is just another comment in the discussion ... 25.108 - 25.109 - // Can the user edit the comment? 25.110 - if (($CanEdit && $Session->UserID == $Object->InsertUserID) || $Session->CheckPermission('Vanilla.Comments.Edit', TRUE, 'Category', $Sender->Discussion->CategoryID)) 25.111 - $Sender->Options .= '<span>'.Anchor(T('Edit'), '/vanilla/post/editcomment/'.$Object->CommentID, 'EditComment').$TimeLeft.'</span>'; 25.112 - 25.113 - // Can the user delete the comment? 25.114 - if ($Session->CheckPermission('Vanilla.Comments.Delete', TRUE, 'Category', $CategoryID)) 25.115 - $Sender->Options .= '<span>'.Anchor(T('Delete'), 'vanilla/discussion/deletecomment/'.$Object->CommentID.'/'.$Session->TransientKey().'/?Target='.urlencode($Sender->SelfUrl), 'DeleteComment') . '</span>'; 25.116 - } 25.117 - 25.118 - // Allow plugins to add options 25.119 - $Sender->FireEvent('CommentOptions'); 25.120 - echo $Sender->Options; 25.121 -} 25.122 \ No newline at end of file
26.1 --- a/forum/themes/slitaz/views/discussions/helper_functions.php Wed Dec 22 10:36:12 2010 +0100 26.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 26.3 @@ -1,186 +0,0 @@ 26.4 -<?php 26.5 -if (!defined('APPLICATION')) exit(); 26.6 - 26.7 -function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt) { 26.8 - $CssClass = 'Item'; 26.9 - $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; 26.10 - $CssClass .= $Discussion->Closed == '1' ? ' Closed' : ''; 26.11 - $CssClass .= $Alt.' '; 26.12 - $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; 26.13 - $CssClass .= $Discussion->Dismissed == '1' ? ' Dismissed' : ''; 26.14 - $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; 26.15 - $CssClass .= ($Discussion->CountUnreadComments > 0 && $Session->IsValid()) ? ' New' : ''; 26.16 - $Sender->EventArguments['Discussion'] = &$Discussion; 26.17 - $First = UserBuilder($Discussion, 'First'); 26.18 - $Last = UserBuilder($Discussion, 'Last'); 26.19 - 26.20 - $Sender->FireEvent('BeforeDiscussionName'); 26.21 - 26.22 - $DiscussionName = Gdn_Format::Text($Discussion->Name); 26.23 - if ($DiscussionName == '') 26.24 - $DiscussionName = T('Blank Discussion Topic'); 26.25 - 26.26 - static $FirstDiscussion = TRUE; 26.27 - if (!$FirstDiscussion) 26.28 - $Sender->FireEvent('BetweenDiscussion'); 26.29 - else 26.30 - $FirstDiscussion = FALSE; 26.31 -?> 26.32 -<li class="<?php echo $CssClass; ?> "> 26.33 - <?php 26.34 - $Sender->FireEvent('BeforeDiscussionContent'); 26.35 - WriteOptions($Discussion, $Sender, $Session); 26.36 - ?> 26.37 - <div class="ItemContent Discussion"> 26.38 - <?php echo Anchor($DiscussionName, '/discussion/'.$Discussion->DiscussionID.'/'.Gdn_Format::Url($Discussion->Name).($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') ? '/#Item_'.$Discussion->CountCommentWatch : ''), 'Title'); ?> 26.39 - <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> 26.40 - <div class="Meta"> 26.41 - <?php if ($Discussion->Announce == '1') { ?> 26.42 - <span class="Announcement"><?php echo T('Announcement'); ?></span> 26.43 - <?php } ?> 26.44 - <?php if ($Discussion->Closed == '1') { ?> 26.45 - <span class="Closed"><?php echo T('Closed'); ?></span> 26.46 - <?php } ?> 26.47 - <span class="CommentCount"><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?></span> 26.48 - <?php 26.49 - if ($Session->IsValid() && $Discussion->CountUnreadComments > 0) 26.50 - echo '<strong>'.Plural($Discussion->CountUnreadComments, '%s New', '%s New Plural').'</strong>'; 26.51 - 26.52 - if ($Discussion->LastCommentID != '') { 26.53 - echo '<span class="LastCommentBy">'.sprintf(T('Most recent by %1$s'), UserAnchor($Last)).'</span>'; 26.54 - echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->LastDate).'</span>'; 26.55 - } else { 26.56 - echo '<span class="LastCommentBy">'.sprintf(T('Started by %1$s'), UserAnchor($First)).'</span>'; 26.57 - echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->FirstDate).'</span>'; 26.58 - } 26.59 - 26.60 - if (C('Vanilla.Categories.Use')) 26.61 - echo Wrap(Anchor($Discussion->Category, '/categories/'.$Discussion->CategoryUrlCode, 'Category')); 26.62 - 26.63 - $Sender->FireEvent('DiscussionMeta'); 26.64 - ?> 26.65 - </div> 26.66 - </div> 26.67 -</li> 26.68 -<?php 26.69 -} 26.70 - 26.71 -function WriteFilterTabs(&$Sender) { 26.72 - $Session = Gdn::Session(); 26.73 - $Title = property_exists($Sender, 'Category') && is_object($Sender->Category) ? $Sender->Category->Name : T('All Discussions'); 26.74 - $Bookmarked = T('My Bookmarks'); 26.75 - $MyDiscussions = T('My Discussions'); 26.76 - $MyDrafts = T('My Drafts'); 26.77 - $CountBookmarks = 0; 26.78 - $CountDiscussions = 0; 26.79 - $CountDrafts = 0; 26.80 - if ($Session->IsValid()) { 26.81 - $CountBookmarks = $Session->User->CountBookmarks; 26.82 - $CountDiscussions = $Session->User->CountDiscussions; 26.83 - $CountDrafts = $Session->User->CountDrafts; 26.84 - } 26.85 - if (is_numeric($CountBookmarks) && $CountBookmarks > 0) 26.86 - $Bookmarked .= '<span>'.$CountBookmarks.'</span>'; 26.87 - 26.88 - if (is_numeric($CountDiscussions) && $CountDiscussions > 0) 26.89 - $MyDiscussions .= '<span>'.$CountDiscussions.'</span>'; 26.90 - 26.91 - if (is_numeric($CountDrafts) && $CountDrafts > 0) 26.92 - $MyDrafts .= '<span>'.$CountDrafts.'</span>'; 26.93 - 26.94 - ?> 26.95 -<div class="Tabs DiscussionsTabs"> 26.96 - <ul> 26.97 - <?php $Sender->FireEvent('BeforeDiscussionTabs'); ?> 26.98 - <li<?php echo strtolower($Sender->ControllerName) == 'discussionscontroller' && strtolower($Sender->RequestMethod) == 'index' ? ' class="Active"' : ''; ?>><?php echo Anchor(T('All Discussions'), 'discussions'); ?></li> 26.99 - <?php $Sender->FireEvent('AfterAllDiscussionsTab'); ?> 26.100 - <?php if ($CountBookmarks > 0 || $Sender->RequestMethod == 'bookmarked') { ?> 26.101 - <li<?php echo $Sender->RequestMethod == 'bookmarked' ? ' class="Active"' : ''; ?>><?php echo Anchor($Bookmarked, '/discussions/bookmarked', 'MyBookmarks'); ?></li> 26.102 - <?php 26.103 - $Sender->FireEvent('AfterBookmarksTab'); 26.104 - } 26.105 - if ($CountDiscussions > 0 || $Sender->RequestMethod == 'mine') { 26.106 - ?> 26.107 - <li<?php echo $Sender->RequestMethod == 'mine' ? ' class="Active"' : ''; ?>><?php echo Anchor($MyDiscussions, '/discussions/mine', 'MyDiscussions'); ?></li> 26.108 - <?php 26.109 - } 26.110 - if ($CountDrafts > 0 || $Sender->ControllerName == 'draftscontroller') { 26.111 - ?> 26.112 - <li<?php echo $Sender->ControllerName == 'draftscontroller' ? ' class="Active"' : ''; ?>><?php echo Anchor($MyDrafts, '/drafts', 'MyDrafts'); ?></li> 26.113 - <?php 26.114 - } 26.115 - $Sender->FireEvent('AfterDiscussionTabs'); 26.116 - ?> 26.117 - </ul> 26.118 - <?php 26.119 - if (property_exists($Sender, 'Category') && is_object($Sender->Category)) { 26.120 - ?> 26.121 - <div class="SubTab">↳ <?php echo $Sender->Category->Name; ?></div> 26.122 - <?php 26.123 - } 26.124 - ?> 26.125 -</div> 26.126 - <?php 26.127 -} 26.128 - 26.129 -/** 26.130 - * Render options that the user has for this discussion. 26.131 - */ 26.132 -function WriteOptions($Discussion, &$Sender, &$Session) { 26.133 - if ($Session->IsValid() && $Sender->ShowOptions) { 26.134 - echo '<div class="Options">'; 26.135 - // Bookmark link 26.136 - $Title = T($Discussion->Bookmarked == '1' ? 'Unbookmark' : 'Bookmark'); 26.137 - echo Anchor( 26.138 - '<span class="Star">' 26.139 - .Img('applications/dashboard/design/images/pixel.png', array('alt' => $Title)) 26.140 - .'</span>', 26.141 - '/vanilla/discussion/bookmark/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 26.142 - 'Bookmark' . ($Discussion->Bookmarked == '1' ? ' Bookmarked' : ''), 26.143 - array('title' => $Title) 26.144 - ); 26.145 - 26.146 - $Sender->Options = ''; 26.147 - 26.148 - // Dismiss an announcement 26.149 - if (C('Vanilla.Discussions.Dismiss', 1) && $Discussion->Announce == '1' && $Discussion->Dismissed != '1') 26.150 - $Sender->Options .= '<li>'.Anchor(T('Dismiss'), 'vanilla/discussion/dismissannouncement/'.$Discussion->DiscussionID.'/'.$Session->TransientKey(), 'DismissAnnouncement') . '</li>'; 26.151 - 26.152 - // Edit discussion 26.153 - if ($Discussion->FirstUserID == $Session->UserID || $Session->CheckPermission('Vanilla.Discussions.Edit', TRUE, 'Category', $Discussion->CategoryID)) 26.154 - $Sender->Options .= '<li>'.Anchor(T('Edit'), 'vanilla/post/editdiscussion/'.$Discussion->DiscussionID, 'EditDiscussion') . '</li>'; 26.155 - 26.156 - // Announce discussion 26.157 - if ($Session->CheckPermission('Vanilla.Discussions.Announce', TRUE, 'Category', $Discussion->CategoryID)) 26.158 - $Sender->Options .= '<li>'.Anchor(T($Discussion->Announce == '1' ? 'Unannounce' : 'Announce'), 'vanilla/discussion/announce/'.$Discussion->DiscussionID.'/'.$Session->TransientKey(), 'AnnounceDiscussion') . '</li>'; 26.159 - 26.160 - // Sink discussion 26.161 - if ($Session->CheckPermission('Vanilla.Discussions.Sink', TRUE, 'Category', $Discussion->CategoryID)) 26.162 - $Sender->Options .= '<li>'.Anchor(T($Discussion->Sink == '1' ? 'Unsink' : 'Sink'), 'vanilla/discussion/sink/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'SinkDiscussion') . '</li>'; 26.163 - 26.164 - // Close discussion 26.165 - if ($Session->CheckPermission('Vanilla.Discussions.Close', TRUE, 'Category', $Discussion->CategoryID)) 26.166 - $Sender->Options .= '<li>'.Anchor(T($Discussion->Closed == '1' ? 'Reopen' : 'Close'), 'vanilla/discussion/close/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'CloseDiscussion') . '</li>'; 26.167 - 26.168 - // Delete discussion 26.169 - if ($Session->CheckPermission('Vanilla.Discussions.Delete', TRUE, 'Category', $Discussion->CategoryID)) 26.170 - $Sender->Options .= '<li>'.Anchor(T('Delete'), 'vanilla/discussion/delete/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'DeleteDiscussion') . '</li>'; 26.171 - 26.172 - // Allow plugins to add options 26.173 - $Sender->FireEvent('DiscussionOptions'); 26.174 - 26.175 - if ($Sender->Options != '') { 26.176 - ?> 26.177 - <ul class="Options"> 26.178 - <li> 26.179 - <strong><?php echo T('Options'); ?></strong> 26.180 - <ul> 26.181 - <?php echo $Sender->Options; ?> 26.182 - </ul> 26.183 - </li> 26.184 - </ul> 26.185 - <?php 26.186 - } 26.187 - echo '</div>'; 26.188 - } 26.189 -} 26.190 \ No newline at end of file
27.1 --- a/forum/vanilla-config/config.php Wed Dec 22 10:36:12 2010 +0100 27.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 27.3 @@ -1,72 +0,0 @@ 27.4 -<?php if (!defined('APPLICATION')) exit(); 27.5 - 27.6 -// Conversations 27.7 -$Configuration['Conversations']['Version'] = '2.0.16'; 27.8 - 27.9 -// Database 27.10 -$Configuration['Database']['Name'] = 'slitaz_forum'; 27.11 -$Configuration['Database']['Host'] = 'localhost'; 27.12 -$Configuration['Database']['User'] = '***'; 27.13 -$Configuration['Database']['Password'] = '***'; 27.14 - 27.15 -// EnabledApplications 27.16 -$Configuration['EnabledApplications']['Conversations'] = 'conversations'; 27.17 -$Configuration['EnabledApplications']['Skeleton'] = 'skeleton'; 27.18 -$Configuration['EnabledApplications']['Vanilla'] = 'vanilla'; 27.19 - 27.20 -// EnabledPlugins 27.21 -$Configuration['EnabledPlugins']['HtmLawed'] = 'HtmLawed'; 27.22 -$Configuration['EnabledPlugins']['Gravatar'] = 'Gravatar'; 27.23 -$Configuration['EnabledPlugins']['FileUpload'] = 'FileUpload'; 27.24 -$Configuration['EnabledPlugins']['WhosOnline'] = 'WhosOnline'; 27.25 -$Configuration['EnabledPlugins']['Minify'] = 'Minify'; 27.26 -$Configuration['EnabledPlugins']['cleditor'] = 'cleditor'; 27.27 -$Configuration['EnabledPlugins']['Tagging'] = 'Tagging'; 27.28 - 27.29 -// Garden 27.30 -$Configuration['Garden']['Title'] = 'SliTaz Forum'; 27.31 -$Configuration['Garden']['Cookie']['Salt'] = 'VS0GNTQ0ML'; 27.32 -$Configuration['Garden']['Cookie']['Domain'] = ''; 27.33 -$Configuration['Garden']['Version'] = '2.0.16'; 27.34 -$Configuration['Garden']['RewriteUrls'] = FALSE; 27.35 -$Configuration['Garden']['CanProcessImages'] = TRUE; 27.36 -$Configuration['Garden']['Installed'] = TRUE; 27.37 -$Configuration['Garden']['Errors']['MasterView'] = 'error.master.php'; 27.38 -$Configuration['Garden']['Theme'] = 'slitaz-2'; 27.39 -$Configuration['Garden']['Messages']['Cache'] = 'a:1:{i:0;s:6:"[Base]";}'; 27.40 -$Configuration['Garden']['EditContentTimeout'] = '-1'; 27.41 -$Configuration['Garden']['RequiredUpdates'] = 'a:0:{}'; 27.42 -$Configuration['Garden']['UpdateCheckDate'] = 1292966704; 27.43 -$Configuration['Garden']['Registration']['Method'] = 'Captcha'; 27.44 -$Configuration['Garden']['Registration']['CaptchaPrivateKey'] = '6Ld7zwgAAAAAAPo5ydoZaBn_8Wapn7nb0dypEf6M'; 27.45 -$Configuration['Garden']['Registration']['CaptchaPublicKey'] = '6Ld7zwgAAAAAALF1IeGgtdlEg1WYupYxd5ZqGIpg'; 27.46 -$Configuration['Garden']['Registration']['InviteExpiration'] = '-1 week'; 27.47 -$Configuration['Garden']['Registration']['InviteRoles'] = 'a:2:{i:8;s:1:"0";i:16;s:1:"0";}'; 27.48 - 27.49 -// Plugins 27.50 -$Configuration['Plugins']['GettingStarted']['Dashboard'] = '1'; 27.51 -$Configuration['Plugins']['GettingStarted']['Categories'] = '1'; 27.52 -$Configuration['Plugins']['GettingStarted']['Plugins'] = '1'; 27.53 -$Configuration['Plugins']['GettingStarted']['Discussion'] = '1'; 27.54 -$Configuration['Plugins']['FileUpload']['Enabled'] = TRUE; 27.55 -$Configuration['Plugins']['OpenID']['Enabled'] = FALSE; 27.56 -$Configuration['Plugins']['Tagging']['Enabled'] = TRUE; 27.57 - 27.58 -// Routes 27.59 -$Configuration['Routes']['DefaultController'] = 'a:2:{i:0;s:10:"categories";i:1;s:8:"Internal";}'; 27.60 - 27.61 -// Vanilla 27.62 -$Configuration['Vanilla']['Version'] = '2.0.16'; 27.63 -$Configuration['Vanilla']['Categories']['Use'] = TRUE; 27.64 -$Configuration['Vanilla']['Discussions']['PerPage'] = '30'; 27.65 -$Configuration['Vanilla']['Comments']['AutoRefresh'] = '0'; 27.66 -$Configuration['Vanilla']['Comments']['PerPage'] = '50'; 27.67 -$Configuration['Vanilla']['Archive']['Date'] = ''; 27.68 -$Configuration['Vanilla']['Archive']['Exclude'] = FALSE; 27.69 - 27.70 -// WhosOnline 27.71 -$Configuration['WhosOnline']['Frequency'] = '20'; 27.72 -$Configuration['WhosOnline']['Location']['Show'] = 'every'; 27.73 -$Configuration['WhosOnline']['Hide'] = TRUE; 27.74 - 27.75 -// Last edited by pankso (213.3.10.214)2010-12-21 16:25:04 27.76 \ No newline at end of file
28.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 28.2 +++ b/forum/vanilla/conf/config.php Wed Dec 22 10:41:18 2010 +0100 28.3 @@ -0,0 +1,72 @@ 28.4 +<?php if (!defined('APPLICATION')) exit(); 28.5 + 28.6 +// Conversations 28.7 +$Configuration['Conversations']['Version'] = '2.0.16'; 28.8 + 28.9 +// Database 28.10 +$Configuration['Database']['Name'] = 'slitaz_forum'; 28.11 +$Configuration['Database']['Host'] = 'localhost'; 28.12 +$Configuration['Database']['User'] = '***'; 28.13 +$Configuration['Database']['Password'] = '***'; 28.14 + 28.15 +// EnabledApplications 28.16 +$Configuration['EnabledApplications']['Conversations'] = 'conversations'; 28.17 +$Configuration['EnabledApplications']['Skeleton'] = 'skeleton'; 28.18 +$Configuration['EnabledApplications']['Vanilla'] = 'vanilla'; 28.19 + 28.20 +// EnabledPlugins 28.21 +$Configuration['EnabledPlugins']['HtmLawed'] = 'HtmLawed'; 28.22 +$Configuration['EnabledPlugins']['Gravatar'] = 'Gravatar'; 28.23 +$Configuration['EnabledPlugins']['FileUpload'] = 'FileUpload'; 28.24 +$Configuration['EnabledPlugins']['WhosOnline'] = 'WhosOnline'; 28.25 +$Configuration['EnabledPlugins']['Minify'] = 'Minify'; 28.26 +$Configuration['EnabledPlugins']['cleditor'] = 'cleditor'; 28.27 +$Configuration['EnabledPlugins']['Tagging'] = 'Tagging'; 28.28 + 28.29 +// Garden 28.30 +$Configuration['Garden']['Title'] = 'SliTaz Forum'; 28.31 +$Configuration['Garden']['Cookie']['Salt'] = 'VS0GNTQ0ML'; 28.32 +$Configuration['Garden']['Cookie']['Domain'] = ''; 28.33 +$Configuration['Garden']['Version'] = '2.0.16'; 28.34 +$Configuration['Garden']['RewriteUrls'] = FALSE; 28.35 +$Configuration['Garden']['CanProcessImages'] = TRUE; 28.36 +$Configuration['Garden']['Installed'] = TRUE; 28.37 +$Configuration['Garden']['Errors']['MasterView'] = 'error.master.php'; 28.38 +$Configuration['Garden']['Theme'] = 'slitaz-2'; 28.39 +$Configuration['Garden']['Messages']['Cache'] = 'a:1:{i:0;s:6:"[Base]";}'; 28.40 +$Configuration['Garden']['EditContentTimeout'] = '-1'; 28.41 +$Configuration['Garden']['RequiredUpdates'] = 'a:0:{}'; 28.42 +$Configuration['Garden']['UpdateCheckDate'] = 1292966704; 28.43 +$Configuration['Garden']['Registration']['Method'] = 'Captcha'; 28.44 +$Configuration['Garden']['Registration']['CaptchaPrivateKey'] = '6Ld7zwgAAAAAAPo5ydoZaBn_8Wapn7nb0dypEf6M'; 28.45 +$Configuration['Garden']['Registration']['CaptchaPublicKey'] = '6Ld7zwgAAAAAALF1IeGgtdlEg1WYupYxd5ZqGIpg'; 28.46 +$Configuration['Garden']['Registration']['InviteExpiration'] = '-1 week'; 28.47 +$Configuration['Garden']['Registration']['InviteRoles'] = 'a:2:{i:8;s:1:"0";i:16;s:1:"0";}'; 28.48 + 28.49 +// Plugins 28.50 +$Configuration['Plugins']['GettingStarted']['Dashboard'] = '1'; 28.51 +$Configuration['Plugins']['GettingStarted']['Categories'] = '1'; 28.52 +$Configuration['Plugins']['GettingStarted']['Plugins'] = '1'; 28.53 +$Configuration['Plugins']['GettingStarted']['Discussion'] = '1'; 28.54 +$Configuration['Plugins']['FileUpload']['Enabled'] = TRUE; 28.55 +$Configuration['Plugins']['OpenID']['Enabled'] = FALSE; 28.56 +$Configuration['Plugins']['Tagging']['Enabled'] = TRUE; 28.57 + 28.58 +// Routes 28.59 +$Configuration['Routes']['DefaultController'] = 'a:2:{i:0;s:10:"categories";i:1;s:8:"Internal";}'; 28.60 + 28.61 +// Vanilla 28.62 +$Configuration['Vanilla']['Version'] = '2.0.16'; 28.63 +$Configuration['Vanilla']['Categories']['Use'] = TRUE; 28.64 +$Configuration['Vanilla']['Discussions']['PerPage'] = '30'; 28.65 +$Configuration['Vanilla']['Comments']['AutoRefresh'] = '0'; 28.66 +$Configuration['Vanilla']['Comments']['PerPage'] = '50'; 28.67 +$Configuration['Vanilla']['Archive']['Date'] = ''; 28.68 +$Configuration['Vanilla']['Archive']['Exclude'] = FALSE; 28.69 + 28.70 +// WhosOnline 28.71 +$Configuration['WhosOnline']['Frequency'] = '20'; 28.72 +$Configuration['WhosOnline']['Location']['Show'] = 'every'; 28.73 +$Configuration['WhosOnline']['Hide'] = TRUE; 28.74 + 28.75 +// Last edited by pankso (213.3.10.214)2010-12-21 16:25:04 28.76 \ No newline at end of file
29.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 29.2 +++ b/forum/vanilla/themes/slitaz-2/README.txt Wed Dec 22 10:41:18 2010 +0100 29.3 @@ -0,0 +1,45 @@ 29.4 +How to create a theme: 29.5 + 29.6 +Part 1: CSS / Design 29.7 +================================================================================ 29.8 +1. Copy this "default" theme folder and rename it to your new theme name. 29.9 +2. Open the "about.php" file and edit the information to reflect your theme. Be 29.10 + sure to change the array key like this: $ThemeInfo['YourThemeNameHere']. 29.11 +3. Create a "design" subfolder and copy /applications/dashboard/design/style.css 29.12 + and /applications/vanilla/design/vanilla.css into it. 29.13 +4. Any background images you want to continue using (like the star png images 29.14 + for bookmarking) should be copied along with their respective stylesheets. 29.15 +5. Go to your Dashboard, Themes, and apply your new theme. 29.16 +6. Edit the copied CSS files to look however you wish! 29.17 + 29.18 +Other things you should know: 29.19 + 29.20 + + All non-forum pages should be edited in the global "style.css" file. 29.21 + 29.22 + + If you want to edit the look & feel of the administrative screens, also 29.23 + copy /applications/dashboard/design/admin.css in step 3. Similarly, you can 29.24 + copy other CSS files like /applications/vanilla/design/vanillaprofile.css to 29.25 + customize those pages as well. 29.26 + 29.27 + 29.28 +Part 2: HTML / Views 29.29 +================================================================================ 29.30 +If you want to customize the HTML, you can edit that too. 29.31 +Our pages are made up of two parts: 29.32 + 29.33 + 1. Master Views - these represent everything that wraps the main content of the 29.34 + page. If all you want to do is add a menu or banner above Vanilla, this is 29.35 + all you need to alter. To do so, copy the default master view from 29.36 + /applications/dashboard/views/default.master.php to 29.37 + /themes/yourtheme/views/default.master.php and edit it there. 29.38 + 29.39 + 2. Views - these represent all of the content in each page. Every application 29.40 + has a "views" folder that contains all of the HTML for every page. So, for 29.41 + example, if you wanted to edit the HTML for the Discussions list, you could 29.42 + copy the views from /applications/vanilla/views/discussions to 29.43 + /themes/yourtheme/views/discussions and edit them there. 29.44 + 29.45 +You can avoid naming conflicts between applications' views and specify which 29.46 +app a view is for by optionally adding a subfolder with the app's name in 29.47 +/themes/yourtheme/views/ (e.g.: /themes/yourtheme/views/appname/) and placing 29.48 +views there rather than directly in the "views" folder. 29.49 \ No newline at end of file
30.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 30.2 +++ b/forum/vanilla/themes/slitaz-2/about.php Wed Dec 22 10:41:18 2010 +0100 30.3 @@ -0,0 +1,21 @@ 30.4 +<?php if (!defined('APPLICATION')) exit(); 30.5 +/* 30.6 +Copyright 2008, 2009 Vanilla Forums Inc. 30.7 +This file is part of Garden. 30.8 +Garden is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 30.9 +Garden is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 30.10 +You should have received a copy of the GNU General Public License along with Garden. If not, see <http://www.gnu.org/licenses/>. 30.11 +Contact Vanilla Forums Inc. at support [at] vanillaforums [dot] com 30.12 +*/ 30.13 + 30.14 +/** 30.15 + * An associative array of information about this application. 30.16 + */ 30.17 +$ThemeInfo['SliTaz-2'] = array( 30.18 + 'Name' => 'SliTaz-2', 30.19 + 'Description' => "SliTaz Vanilla 2 official theme", 30.20 + 'Version' => '2.0', 30.21 + 'Author' => "Christophe Lincoln", 30.22 + 'AuthorEmail' => 'pankso@slitaz.org', 30.23 + 'AuthorUrl' => 'http://www.slitaz.org' 30.24 +);
31.1 Binary file forum/vanilla/themes/slitaz-2/design/favicon.ico has changed
32.1 Binary file forum/vanilla/themes/slitaz-2/design/favicon.png has changed
33.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 33.2 +++ b/forum/vanilla/themes/slitaz-2/design/style.css Wed Dec 22 10:41:18 2010 +0100 33.3 @@ -0,0 +1,422 @@ 33.4 +@charset "utf-8"; 33.5 +/* CSS Document */ 33.6 + 33.7 +/***--- MAIN / DEFAULT --***/ 33.8 +html, body { height: 102%; margin: 0; } 33.9 +html, body, input, select, textarea, button { 33.10 + font-family: Verdana, Geneva, sans-serif; 33.11 + font-size: 11px; 33.12 + line-height: 17px; 33.13 + color: #555; 33.14 +} 33.15 +a { color: #2f6c8e; text-decoration: none; } 33.16 +a:hover { color: #69a1c1; } 33.17 +a img { border: none; } 33.18 +ul, ol { margin: 0; padding: 0; list-style: none; } 33.19 + 33.20 +.clear { 33.21 + clear: both; 33.22 + display: block; 33.23 + height: 0; 33.24 + overflow: hidden; 33.25 + visibility: hidden; 33.26 + width: 0; 33.27 +} 33.28 + 33.29 +#Wrapper { min-height: 100%; position: relative; margin: 0 auto; } 33.30 +.Hidden { display: none; } 33.31 + 33.32 +/***--- HEADER(S) --***/ 33.33 + 33.34 + 33.35 +#Header h1 { padding: 15px; font-size: 2em; } 33.36 +#Header a { color: #69a1c1; } 33.37 +#Header a:hover { color: #FFF; } 33.38 + 33.39 +#Header{ 33.40 + background: #f0ba08 url(../images/header.png) repeat-x top; 33.41 + color: black; 33.42 + width: 100%; 33.43 + height: 50px; 33.44 + border-top: 1px solid black; 33.45 + border-bottom: 1px solid black; 33.46 + margin-bottom: 30px; 33.47 + position: absolute; 33.48 + top: 0; 33.49 +} 33.50 + 33.51 +#titre { 33.52 + position: absolute; 33.53 + font-size: 16px; 33.54 + font-weight: bolder ; 33.55 + margin-left: 200px; 33.56 + margin-top: 28px; 33.57 +} 33.58 + 33.59 +#logo { 33.60 + position: absolute; 33.61 + float: left; 33.62 + margin-left: 16px; 33.63 + margin-top: 0px; 33.64 +} 33.65 + 33.66 +/***--- NAV --***/ 33.67 +#Nav { 33.68 + right: 0; 33.69 + position: absolute; 33.70 + top: 3px; 33.71 + font-size: 10px; 33.72 + font-weight: bold; } 33.73 + 33.74 +/* search */ 33.75 +#Search { 33.76 + -moz-border-radius: 4px; 33.77 + -webkit-border-radius: 4px; 33.78 + height: 20px; 33.79 + float: right; 33.80 + background: #FFF; 33.81 + padding: 2px 2px; 33.82 + margin: 11px 95px 0 0; } 33.83 +#Search form { padding: 0; border: none; } 33.84 +#Nav #Search input.InputBox { width: 150px; border: none; } 33.85 +#Search input.Button { 33.86 + -moz-border-radius: 4px; 33.87 + -webkit-border-radius: 4px; 33.88 + height: 17px; 33.89 + margin: 0; 33.90 + padding: 0; } 33.91 + 33.92 +/***--- MAIN --***/ 33.93 +/*#Main { }*/ 33.94 + 33.95 +/* If you prefer the panel on the left and content on the right, simply switch the "float" property for #Content & #Panel and set the "margin-left" to "margin-right" for the #Content */ 33.96 +#Content { 33.97 + margin: 0px 320px 0px 0px; 33.98 + padding: 86px 40px 65px 80px; 33.99 + } 33.100 +#Panel { 33.101 + position: absolute; 33.102 + top: 76px; 33.103 + right: 80px; 33.104 + color: #555555; 33.105 + float: right; 33.106 + width: 250px; 33.107 + line-height: 1.5em; 33.108 + text-align: left; 33.109 + font-size: 12px; 33.110 + } 33.111 +.Box, #UserOptions { 33.112 + -moz-border-radius: 8px; 33.113 + -webkit-border-radius: 8px; 33.114 + list-style-type: none; 33.115 + margin: 10px 0; 33.116 + padding: 10px 24px 10px 24px; 33.117 + background-color: #eaeaea;} 33.118 +#Panel .Box ul { 33.119 + list-style-type: none; 33.120 + margin: 0; 33.121 + padding: 10px 24px 10px 0px; 33.122 + font-weight: bold; 33.123 +} 33.124 + 33.125 +/***--- CONTENT --***/ 33.126 +.GuestBox { background: #eaeaea; } 33.127 +.GuestBox p { padding: 0; } 33.128 +.Message img { max-width: 100%; } 33.129 + 33.130 +/* headers */ 33.131 +h1 { margin: 0; font-size: 1.5em; } 33.132 +#Content h1, h2, #Popup h1, div.DiscussionTabs .SubTab { 33.133 + -moz-border-radius: 8px; 33.134 + -webkit-border-radius: 8px; 33.135 + font-size: 1.1em; background: #555555; color: #fff; margin: 0 0 10px; padding: 10px; font-weight: bold; 33.136 +} 33.137 +div.DiscussionTabs .SubTab { margin: 0; } 33.138 + 33.139 +#Panel h4, #Panel .GuestBox h4 { 33.140 + font-size: 110%; 33.141 + color: #666666; 33.142 + font-weight: bold; 33.143 + padding: 0 0 1px 0; 33.144 + margin: 0; 33.145 + border-bottom: 1px solid #cecece; } 33.146 + 33.147 +div.Empty, div#Status { padding: 10px; } 33.148 + 33.149 +/* tabs */ 33.150 +.Tabs li, .SubTab { 33.151 + -moz-border-radius: 8px; 33.152 + -webkit-border-radius: 8px; 33.153 + background: #CECECE; 33.154 + padding: 5px 8px; 33.155 + font-size: 140%; 33.156 + font-weight: bold; 33.157 + border-bottom: 1px solid #fff; } 33.158 +.Tabs li.Active { background: #555; border-bottom: none; } 33.159 +.Tabs li.Active a { color: #fff; } 33.160 +.Tabs span { display: inline-block; margin: 0 10px; color: #888; } 33.161 +.SubTab { font-size: 1em; } 33.162 + 33.163 +/* DISCUSSIONS */ 33.164 +.DataList li.Item, .Conversation li.Item { 33.165 + border-bottom: 1px solid #ccc; 33.166 + position: relative; 33.167 + padding: 10px; 33.168 + -moz-border-radius: 8px; 33.169 + -webkit-border-radius: 8px; 33.170 +} 33.171 +.Activities li.Item { min-height: 50px; } 33.172 +.DataList li.Item a.Title { display: block; font-size: 1.15em; font-weight: bold; padding: 0 0 8px; } 33.173 + 33.174 +/* discussions meta */ 33.175 +.DataList .Meta span, .DataList .Meta strong { 33.176 + min-width: 100px; display: inline-block; margin: 0 5px 0 0; 33.177 +} 33.178 +.DataList .Meta .LastCommentBy { width: 175px; } 33.179 +.DataList .Meta .LastCommentDate { width: 100px; } 33.180 + 33.181 +/* discussions highlight */ 33.182 +.DataList li.Mine { background: #f1f1f1; border-bottom-color: #fff; } 33.183 +.DataList li.New { background: #d8ecbc; } 33.184 +.DataList li.Bookmarked { background: #ffdf5d; border-bottom-color: #fff; } 33.185 + 33.186 +.DataList li.Closed { background: #eee; } 33.187 +.DataList .Meta .Closed { color: #333; } 33.188 +.DataList li.Closed a.Title { text-decoration: line-through; } 33.189 + 33.190 +.DataList li.Announcement { background: #FFC; } 33.191 +.DataList .Meta .Announcement, .DataList .Meta .Closed { 33.192 + width: 100px; font-weight: bold; 33.193 +} 33.194 +.DataList .Meta .Announcement { color: #C60; } 33.195 + 33.196 +/* DISCUSSION */ 33.197 +div.DiscussionTabs li { font-size: 1em; } 33.198 +ul.Discussion { margin: 0 0 10px; } 33.199 + 33.200 +/* bookmark */ 33.201 +a.Bookmark { width: 9px; height: 9px; position: absolute; top: 8px; right: 10px; font-size: 0; background: #fff; border: 1px dotted #ffcc00; } 33.202 +.Discussion a.Bookmark { top: 41px; } 33.203 +a.Bookmarked { background: #ffcc00; border: 1px solid #fff; } 33.204 +div.Options a.Bookmark { top: 14px; } 33.205 + 33.206 +div.Comment { 33.207 + position: relative; 33.208 + border-bottom: 1px dotted #ccc; 33.209 + padding: 10px; } 33.210 +li.Even { background: #f8f8f8; } 33.211 + 33.212 +/* discussion meta */ 33.213 +.Comment .Message, .Comment .MessageForm, .ConversationMessage .Message { 33.214 + margin-left: 215px; line-height: 1.75em; 33.215 +} 33.216 +.Comment .Meta, .ConversationMessage .Meta { 33.217 + width: 175px; float: left; padding: 10px; background: #FFC; 33.218 + -moz-border-radius: 8px; 33.219 + -webkit-border-radius: 8px; 33.220 +} 33.221 +.Comment .Meta span, .ConversationMessage .Meta span, div.Meta div.PostCount { 33.222 + display: block; border-bottom: 1px dotted #ccc; font-size: 0.85em; padding: 1px 0; 33.223 +} 33.224 +.Comment .Author, .ConversationMessage span.Author { 33.225 + background: #fff; padding: 5px; border-bottom: none; 33.226 +} 33.227 +.Comment .Author img, .ConversationMessage .Author a.Photo { 33.228 + float: left; margin: 0 10px 0 0; 33.229 +} 33.230 +.Comment .Author a, .ConversationMessage .Author a { 33.231 + font-weight: bold; font-size: 1.1em; 33.232 +} 33.233 +blockquote { margin: 0; padding: 10px; background: #fff; border: 1px dotted #ccc; } 33.234 +.Odd blockquote { background: #F8F8F8; } 33.235 + 33.236 +/* post */ 33.237 +ul.PostOptions { margin: 0 0 10px; } 33.238 +.Preview { padding: 10px; margin: 0 0 10px; border-bottom: 1px dotted #ccc; } 33.239 + 33.240 +/*- Conversations & Activities -*/ 33.241 +ul.Activities .Title { margin: 0 0 0 60px; font-weight: bold; } 33.242 +ul.Conversations .Photo, ul.Activities .Photo { 33.243 + width: 50px; height: 50px; float: left; font-size: 0.9em; color: #ccc; overflow: hidden; background: #eee; 33.244 +} 33.245 +ul.Conversations .Excerpt, ul.Activities .Excerpt { 33.246 + margin: 0 0 10px 60px; 33.247 +} 33.248 +ul.Conversations .Meta, ul.Activities .Meta, .SearchResults .Meta { 33.249 + margin: 0 0 0 60px;background: #FFC; padding: 3px 5px; 33.250 +} 33.251 +.SearchResults .Meta { margin: 5px 0 0; } 33.252 +ul.ActivityComments { margin: 0 0 0 60px; } 33.253 + 33.254 +.ConversationMessage .Message { min-height: 100px; } 33.255 +.ConversationMessage span.Author { height: 50px; } 33.256 +.ConversationMessage span.ItemLink { display: none; } 33.257 + 33.258 +/***--- PANEL --***/ 33.259 +.Block { padding: 15px; background: #ddd; margin: 0 10px 0 0; } 33.260 +.Post #Panel, .Search #Panel { 33.261 + display: none; 33.262 +} 33.263 + 33.264 +.PanelInfo li { padding: 0px 0px; } 33.265 +.PanelInfo li strong { font-weight: normal; } 33.266 +.PanelInfo li.Active a { color: #c60; } 33.267 +.PanelInfo li.Parent { background: #ccc; padding: 2px 5px; font-size: 1.1em; font-weight: bold; } 33.268 + 33.269 +.PanelInfo a, .Box a { 33.270 + color: #0F314E; 33.271 + background: inherit; 33.272 + display: block; 33.273 + text-decoration: none; 33.274 + font-weight: bold; 33.275 +} 33.276 + 33.277 +.PanelInfo a:hover, .Box a:hover { 33.278 + color: #c60; 33.279 + text-decoration: none; 33.280 + display: block; 33.281 +} 33.282 +/* account */ 33.283 + 33.284 +#Panel .Photo { background: #ddd; position: absolute; right: 10px; padding: 0 0 10px 10px; } 33.285 +#Panel .Photo img { width: 50px; display: block; border: 5px solid #fff; border-bottom-width: 12px; } 33.286 +#Panel .Photo img:hover { width: auto; } 33.287 + 33.288 +#Panel dl { padding: 10px; background: #fff; margin: 0; } 33.289 +#Panel dt { font-weight: bold; padding: 2px 0 0; } 33.290 +#Panel dd { margin: 0; border-bottom: 1px dotted #ccc; padding: 0 0 2px; } 33.291 + 33.292 +/* inbox */ 33.293 +.PanelInfo li strong { display: inline-block; margin: 0 5px 0 0; } 33.294 + 33.295 +/*- Form elements -*/ 33.296 +form { padding: 0 10px 10px; border-bottom: 1px dotted #ccc; } 33.297 +fieldset { margin: 0; padding: 0; border: none; } 33.298 + 33.299 +form#Form_User_Register { margin-top: 10px; } 33.300 + 33.301 +input, textarea, select { 33.302 + border: 1px solid #ccc; padding: 3px 5px; margin: 0; 33.303 +} 33.304 +input.InputBox { width: 325px; margin: 0 10px 5px 0; } 33.305 + 33.306 +input.Button, input.Cancel { 33.307 + -moz-border-radius: 4px; 33.308 + -webkit-border-radius: 4px; 33.309 + cursor: pointer; border: none; background: #c60; color: #fff; padding: 4px; 33.310 +} 33.311 +input.Button:hover, input.Cancel:hover { 33.312 + background: #555555; color: white; 33.313 +} 33.314 + 33.315 +a.Back, a.Cancel { 33.316 + margin: 0 5px 0 0; 33.317 +} 33.318 + 33.319 +textarea { width: 95%; min-height: 100px; display: block; margin: 10px 0; } 33.320 + 33.321 +label { display: block; font-weight: bold; } 33.322 +label.RadioLabel, label.CheckBoxLabel { 33.323 + font-weight: normal; 33.324 +} 33.325 +label.RadioLabel input, label.CheckBoxLabel input { 33.326 + border: none; 33.327 +} 33.328 + 33.329 +li.Gender, li.CaptchaInput { 33.330 + margin: 0 0 10px; 33.331 +} 33.332 +li.CreateAccount, li.Buttons { 33.333 + margin: 5px 0 0; 33.334 +} 33.335 +.cleditorMain { margin: 10px 0; } 33.336 + 33.337 +.CommentForm div.Messages { margin: 8px 0 0; } 33.338 +.Errors, .Warning { 33.339 + color: #F00; 33.340 +} 33.341 + 33.342 +/***--- BUTTONS ---***/ 33.343 +.GuestBox a.Button { 33.344 + -moz-border-radius: 4px; 33.345 + -webkit-border-radius: 4px; 33.346 + font-size: 11px; 33.347 + padding: 4px; 33.348 + margin: 0 0 10px; 33.349 + background: #c60; 33.350 + color: #FFF; } 33.351 +.GuestBox .Button:hover { 33.352 + background: #555555; } 33.353 + 33.354 +a.BigButton { 33.355 + -moz-border-radius: 8px; 33.356 + -webkit-border-radius: 8px; 33.357 + display: block; 33.358 + background: #c60; 33.359 + color: #FFF; 33.360 + padding: 10px; 33.361 + font-size: 1.1em; 33.362 + font-weight: bold; 33.363 + text-align: center} 33.364 +a.BigButton:hover { background: #555555; } 33.365 +a.ClearConversation { margin: 10px 0 0; } 33.366 + 33.367 +/* options */ 33.368 +div.Options, div.OptionButton { 33.369 + position: absolute; top: 12px; right: 10px; 33.370 +} 33.371 +div.OptionButton { font-weight: bold; color: #555; } 33.372 +ul.Options strong { 33.373 + -moz-border-radius: 4px; 33.374 + -webkit-border-radius: 4px; 33.375 + cursor: pointer; 33.376 + display: block; 33.377 + padding: 5px 10px; 33.378 + background: #FFC; 33.379 + border: 1px solid #ccc; } 33.380 + 33.381 +ul.Options { margin: 5px 40px 0 0; } 33.382 +ul.Options li { position: relative; } 33.383 +ul.Options ul { min-width: 125px; display: none; position: absolute; z-index: 1000; background: #FFC; right: 0; border: 1px dotted #ccc; margin-top: -1px; } 33.384 +ul.Options li:hover ul { display: block; } 33.385 +ul.Options ul li { display: block; border-top: 1px dotted #ccc; } 33.386 +ul.Options ul li:first-child { border-top: none; } 33.387 +ul.Options ul li a { display: block; padding: 5px 10px; } 33.388 + 33.389 +/*- Pager -*/ 33.390 +#PagerAfter { margin: 10px 0; text-align: center; background: #ddd; padding: 2px 10px; } 33.391 +#PagerAfter a { display: inline-block; padding: 0 5px; } 33.392 +#PagerAfter a.Highlight { color: #c60; } 33.393 +span.Previous, a.Previous { float: left; } 33.394 +#PagerAfter span.Next, #PagerAfter a.Next { float: right; padding: 0; } 33.395 + 33.396 +#PagerMore { text-align: right; padding: 5px 10px; } 33.397 + 33.398 +/***--- FOOTER --***/ 33.399 +#Footer { 33.400 + font-size: 11px ; 33.401 + width: 100%; 33.402 + position: absolute; 33.403 + bottom: 0; 33.404 + background: inherit; 33.405 + color: #a8a8a8; } 33.406 +#Footer ul { margin: 16px 15px; } 33.407 +#Footer li { float: left; } 33.408 +#Footer a { text-decoration: underline; background: inherit; color: #a8a8a8; } 33.409 +#Footer a:hover { color: #666666; } 33.410 + 33.411 +/***--- OVERLAY ---***/ 33.412 +.Overlay { width: 100%; position: absolute; top: 0; z-index: 10000; background: url(../images/overlayBg.png); } 33.413 +.Overlay #Popup { width: 720px; padding: 15px; background: #FFF; margin: 0 auto; border: 1px dotted #c60; position: relative; } 33.414 + 33.415 +.Overlay .Buttons input.Button { margin: 0 0 10px; } 33.416 +.Overlay p { padding: 0 10px; } 33.417 +.Overlay a.Close { position: absolute; display: block; top: 10px; right: 15px; padding: 13px; font-size: 1.5em; color: #fff; } 33.418 +.Overlay a.Close:hover { color: #c60; } 33.419 +.Overlay ul { margin: 10px 0 0; } 33.420 + 33.421 +.Overlay input.Button { margin: 10px 0 0; } 33.422 +.Overlay textarea { margin: 10px 0 0; } 33.423 +.Overlay li.Gender { margin: 0; } 33.424 + 33.425 +.Overlay #Form_Picture { margin: 0 0 10px; }
34.1 Binary file forum/vanilla/themes/slitaz-2/images/header.png has changed
35.1 Binary file forum/vanilla/themes/slitaz-2/images/logo.png has changed
36.1 Binary file forum/vanilla/themes/slitaz-2/images/overlayBg.png has changed
37.1 Binary file forum/vanilla/themes/slitaz-2/screenshot.png has changed
38.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 38.2 +++ b/forum/vanilla/themes/slitaz-2/views/default.master.php Wed Dec 22 10:41:18 2010 +0100 38.3 @@ -0,0 +1,84 @@ 38.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 38.5 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 38.6 + <head> 38.7 + <?php $this->RenderAsset('Head'); ?> 38.8 + </head> 38.9 + <body id="<?php echo $BodyIdentifier; ?>" class="<?php echo $this->CssClass; ?>"> 38.10 + <div id="Wrapper"> 38.11 + <div id="Main"> 38.12 + <div id="ContentHolder"> 38.13 + <div id="Content"> 38.14 + <?php $this->RenderAsset('Content'); ?> 38.15 + </div> 38.16 + </div> 38.17 + <div id="PanelHolder"> 38.18 + <div id="Panel"> 38.19 + 38.20 + <div class="Box"> 38.21 + <h4>Navigation</h4> 38.22 + 38.23 + <?php 38.24 + $Session = Gdn::Session(); 38.25 + if ($this->Menu) { 38.26 + $this->Menu->AddLink('Dashboard', T('Dashboard'), '/dashboard/settings', array('Garden.Settings.Manage')); 38.27 + // $this->Menu->AddLink('Dashboard', T('Users'), '/user/browse', array('Garden.Users.Add', 'Garden.Users.Edit', 'Garden.Users.Delete')); 38.28 + $this->Menu->AddLink('Activity', T('Activity'), '/activity'); 38.29 + $Authenticator = Gdn::Authenticator(); 38.30 + if ($Session->IsValid()) { 38.31 + $Name = $Session->User->Name; 38.32 + $CountNotifications = $Session->User->CountNotifications; 38.33 + if (is_numeric($CountNotifications) && $CountNotifications > 0) 38.34 + $Name .= ' <span>'.$CountNotifications.'</span>'; 38.35 + 38.36 + $this->Menu->AddLink('User', "Profile ($Name)", '/profile/{UserID}/{Username}', array('Garden.SignIn.Allow'), array('class' => 'UserNotifications')); 38.37 + $this->Menu->AddLink('SignOut', T('Sign Out'), $Authenticator->SignOutUrl(), FALSE, array('class' => 'NonTab SignOut')); 38.38 + } else { 38.39 + $Attribs = array(); 38.40 + if (C('Garden.SignIn.Popup') && strpos(Gdn::Request()->Url(), 'entry') === FALSE) 38.41 + $Attribs['class'] = 'SignInPopup'; 38.42 + 38.43 + $this->Menu->AddLink('Entry', T('Sign In'), $Authenticator->SignInUrl($this->SelfUrl), FALSE, array('class' => 'NonTab'), $Attribs); 38.44 + } 38.45 + echo $this->Menu->ToString(); 38.46 + } 38.47 + ?> 38.48 + </div> 38.49 + <?php $this->RenderAsset('Panel'); ?> 38.50 + </div> 38.51 + </div> 38.52 + <div class="clear"> </div> 38.53 + </div> 38.54 + 38.55 + <div id="Header"> 38.56 + 38.57 + <a href="http://forum.slitaz.org/"><img id="logo" 38.58 + src="themes/slitaz/images/logo.png" title="www.slitaz.org" alt="www.slitaz.org" 38.59 + style="border: 0px solid ; width: 200px; height: 74px;" /></a> 38.60 + <p id="titre">#!/Support/Forum</p> 38.61 + 38.62 + </div> 38.63 + 38.64 + <div id="Nav"> 38.65 + 38.66 + <div id="Search"> 38.67 + <?php 38.68 + $Form = Gdn::Factory('Form'); 38.69 + $Form->InputPrefix = ''; 38.70 + echo 38.71 + $Form->Open(array('action' => Url('/search'), 'method' => 'get')), 38.72 + $Form->TextBox('Search'), 38.73 + $Form->Button('Search', array('Name' => '')), 38.74 + $Form->Close(); 38.75 + ?> 38.76 + </div> 38.77 + </div> 38.78 + 38.79 + <div id="Footer"> 38.80 + Copyright © 2010 <a href="http://www.slitaz.org/">SliTaz</a> - 38.81 + <a href="http://vanillaforums.org">Powered by Vanilla</a> 38.82 + </div> 38.83 + </div> 38.84 + 38.85 + <?php $this->FireEvent('AfterBody'); ?> 38.86 + </body> 38.87 +</html>
39.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 39.2 +++ b/forum/vanilla/themes/slitaz-2/views/discussion/comments.php Wed Dec 22 10:41:18 2010 +0100 39.3 @@ -0,0 +1,25 @@ 39.4 +<?php if (!defined('APPLICATION')) exit(); 39.5 +$Session = Gdn::Session(); 39.6 +$this->FireEvent('BeforeCommentsRender'); 39.7 +if (!function_exists('WriteComment')) 39.8 + include($this->FetchViewLocation('helper_functions', 'discussion')); 39.9 + 39.10 +$CurrentOffset = $this->Offset; 39.11 +if ($CurrentOffset == 0 && !$this->Data('NewComments', FALSE)) { 39.12 + echo WriteComment($this->Discussion, $this, $Session, $CurrentOffset); 39.13 +} 39.14 + 39.15 +// Only prints individual comment list items 39.16 +$CommentData = $this->CommentData->Result(); 39.17 +$i = 0; 39.18 +foreach ($CommentData as $Comment) { 39.19 + ++$CurrentOffset; 39.20 + $this->CurrentComment = $Comment; 39.21 + if ($i % 2) { 39.22 + $counter = 'Odd'; 39.23 + } else { 39.24 + $counter = 'Even'; 39.25 + } 39.26 + WriteComment($Comment, $this, $Session, $CurrentOffset, $counter); 39.27 + $i++; 39.28 +}
40.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 40.2 +++ b/forum/vanilla/themes/slitaz-2/views/discussion/helper_functions.php Wed Dec 22 10:41:18 2010 +0100 40.3 @@ -0,0 +1,118 @@ 40.4 +<?php if (!defined('APPLICATION')) exit(); 40.5 + 40.6 +/** 40.7 + * $Object is either a Comment or the original Discussion. 40.8 + */ 40.9 +function WriteComment($Object, $Sender, $Session, $CurrentOffset, $counter) { 40.10 + $Author = UserBuilder($Object, 'Insert'); 40.11 + $Type = property_exists($Object, 'CommentID') ? 'Comment' : 'Discussion'; 40.12 + $Sender->EventArguments['Object'] = $Object; 40.13 + $Sender->EventArguments['Type'] = $Type; 40.14 + $Sender->EventArguments['Author'] = $Author; 40.15 + $CssClass = 'Item Comment ' . $counter; 40.16 + if ($Type == 'Comment') { 40.17 + $Sender->EventArguments['Comment'] = $Object; 40.18 + $Id = 'Comment_'.$Object->CommentID; 40.19 + $Permalink = '/discussion/comment/'.$Object->CommentID.'/#Comment_'.$Object->CommentID; 40.20 + } else { 40.21 + $Sender->EventArguments['Discussion'] = $Object; 40.22 + $CssClass .= ' FirstComment'; 40.23 + $Id = 'Discussion_'.$Object->DiscussionID; 40.24 + $Permalink = '/discussion/'.$Object->DiscussionID.'/'.Gdn_Format::Url($Object->Name).'/p1'; 40.25 + } 40.26 + $Sender->Options = ''; 40.27 + $CssClass .= $Object->InsertUserID == $Session->UserID ? ' Mine' : ''; 40.28 + $Sender->FireEvent('BeforeCommentDisplay'); 40.29 +?> 40.30 +<li class="<?php echo $CssClass; ?>" id="<?php echo $Id; ?>"> 40.31 + <div class="Comment"> 40.32 + <div class="Meta"> 40.33 + <?php $Sender->FireEvent('BeforeCommentMeta'); ?> 40.34 + <div class="Author"> 40.35 + <?php 40.36 + echo UserPhoto($Author); 40.37 + echo UserAnchor($Author); 40.38 + ?> 40.39 + <div class="clear"> </div> 40.40 + </div> 40.41 + <span class="DateCreated"> 40.42 + <?php 40.43 + echo Gdn_Format::Date($Object->DateInserted); 40.44 + ?> 40.45 + </span> 40.46 + <span class="Permalink"> 40.47 + <?php echo Anchor(T('Permalink'), $Permalink, 'Permalink', array('name' => 'Item_'.($CurrentOffset+1), 'rel' => 'nofollow')); ?> 40.48 + </span> 40.49 + <?php WriteOptionList($Object, $Sender, $Session); ?> 40.50 + <div class="CommentInfo"> 40.51 + <?php $Sender->FireEvent('CommentInfo'); ?> 40.52 + </div> 40.53 + <?php $Sender->FireEvent('AfterCommentMeta'); ?> 40.54 + </div> 40.55 + <div class="Message"> 40.56 + <?php $Sender->FireEvent('BeforeCommentBody'); ?> 40.57 + <?php 40.58 + $Object->FormatBody = Gdn_Format::To($Object->Body, $Object->Format); 40.59 + $Sender->FireEvent('AfterCommentFormat'); 40.60 + $Object = $Sender->EventArguments['Object']; 40.61 + echo $Object->FormatBody; 40.62 + ?> 40.63 + </div><div class="clear"> </div> 40.64 + <?php $Sender->FireEvent('AfterCommentBody'); ?> 40.65 + </div> 40.66 +</li> 40.67 +<?php 40.68 + $Sender->FireEvent('AfterComment'); 40.69 +} 40.70 + 40.71 +function WriteOptionList($Object, $Sender, $Session) { 40.72 + $EditContentTimeout = C('Garden.EditContentTimeout', -1); 40.73 + $CanEdit = $EditContentTimeout == -1 || strtotime($Object->DateInserted) + $EditContentTimeout > time(); 40.74 + $TimeLeft = ''; 40.75 + if ($CanEdit && $EditContentTimeout > 0) { 40.76 + $TimeLeft = strtotime($Object->DateInserted) + $EditContentTimeout - time(); 40.77 + $TimeLeft = $TimeLeft > 0 ? ' ('.Gdn_Format::Seconds($TimeLeft).')' : ''; 40.78 + } 40.79 + 40.80 + $Sender->Options = ''; 40.81 + $CategoryID = GetValue('CategoryID', $Object); 40.82 + if(!$CategoryID && property_exists($Sender, 'Discussion')) 40.83 + $CategoryID = GetValue('CategoryID', $Sender->Discussion); 40.84 + 40.85 + // Show discussion options if this is the discussion / first comment 40.86 + if ($Sender->EventArguments['Type'] == 'Discussion') { 40.87 + // Can the user edit the discussion? 40.88 + if (($CanEdit && $Session->UserID == $Object->InsertUserID) || $Session->CheckPermission('Vanilla.Discussions.Edit', TRUE, 'Category', $CategoryID)) 40.89 + $Sender->Options .= '<span>'.Anchor(T('Edit'), '/vanilla/post/editdiscussion/'.$Object->DiscussionID, 'EditDiscussion').$TimeLeft.'</span>'; 40.90 + 40.91 + // Can the user announce? 40.92 + if ($Session->CheckPermission('Vanilla.Discussions.Announce', TRUE, 'Category', $CategoryID)) 40.93 + $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Announce == '1' ? 'Unannounce' : 'Announce'), 'vanilla/discussion/announce/'.$Object->DiscussionID.'/'.$Session->TransientKey(), 'AnnounceDiscussion') . '</span>'; 40.94 + 40.95 + // Can the user sink? 40.96 + if ($Session->CheckPermission('Vanilla.Discussions.Sink', TRUE, 'Category', $CategoryID)) 40.97 + $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Sink == '1' ? 'Unsink' : 'Sink'), 'vanilla/discussion/sink/'.$Object->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'SinkDiscussion') . '</span>'; 40.98 + 40.99 + // Can the user close? 40.100 + if ($Session->CheckPermission('Vanilla.Discussions.Close', TRUE, 'Category', $CategoryID)) 40.101 + $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Closed == '1' ? 'Reopen' : 'Close'), 'vanilla/discussion/close/'.$Object->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'CloseDiscussion') . '</span>'; 40.102 + 40.103 + // Can the user delete? 40.104 + if ($Session->CheckPermission('Vanilla.Discussions.Delete', TRUE, 'Category', $CategoryID)) 40.105 + $Sender->Options .= '<span>'.Anchor(T('Delete Discussion'), 'vanilla/discussion/delete/'.$Object->DiscussionID.'/'.$Session->TransientKey(), 'DeleteDiscussion') . '</span>'; 40.106 + } else { 40.107 + // And if this is just another comment in the discussion ... 40.108 + 40.109 + // Can the user edit the comment? 40.110 + if (($CanEdit && $Session->UserID == $Object->InsertUserID) || $Session->CheckPermission('Vanilla.Comments.Edit', TRUE, 'Category', $Sender->Discussion->CategoryID)) 40.111 + $Sender->Options .= '<span>'.Anchor(T('Edit'), '/vanilla/post/editcomment/'.$Object->CommentID, 'EditComment').$TimeLeft.'</span>'; 40.112 + 40.113 + // Can the user delete the comment? 40.114 + if ($Session->CheckPermission('Vanilla.Comments.Delete', TRUE, 'Category', $CategoryID)) 40.115 + $Sender->Options .= '<span>'.Anchor(T('Delete'), 'vanilla/discussion/deletecomment/'.$Object->CommentID.'/'.$Session->TransientKey().'/?Target='.urlencode($Sender->SelfUrl), 'DeleteComment') . '</span>'; 40.116 + } 40.117 + 40.118 + // Allow plugins to add options 40.119 + $Sender->FireEvent('CommentOptions'); 40.120 + echo $Sender->Options; 40.121 +} 40.122 \ No newline at end of file
41.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 41.2 +++ b/forum/vanilla/themes/slitaz-2/views/discussions/helper_functions.php Wed Dec 22 10:41:18 2010 +0100 41.3 @@ -0,0 +1,186 @@ 41.4 +<?php 41.5 +if (!defined('APPLICATION')) exit(); 41.6 + 41.7 +function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt) { 41.8 + $CssClass = 'Item'; 41.9 + $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; 41.10 + $CssClass .= $Discussion->Closed == '1' ? ' Closed' : ''; 41.11 + $CssClass .= $Alt.' '; 41.12 + $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; 41.13 + $CssClass .= $Discussion->Dismissed == '1' ? ' Dismissed' : ''; 41.14 + $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; 41.15 + $CssClass .= ($Discussion->CountUnreadComments > 0 && $Session->IsValid()) ? ' New' : ''; 41.16 + $Sender->EventArguments['Discussion'] = &$Discussion; 41.17 + $First = UserBuilder($Discussion, 'First'); 41.18 + $Last = UserBuilder($Discussion, 'Last'); 41.19 + 41.20 + $Sender->FireEvent('BeforeDiscussionName'); 41.21 + 41.22 + $DiscussionName = Gdn_Format::Text($Discussion->Name); 41.23 + if ($DiscussionName == '') 41.24 + $DiscussionName = T('Blank Discussion Topic'); 41.25 + 41.26 + static $FirstDiscussion = TRUE; 41.27 + if (!$FirstDiscussion) 41.28 + $Sender->FireEvent('BetweenDiscussion'); 41.29 + else 41.30 + $FirstDiscussion = FALSE; 41.31 +?> 41.32 +<li class="<?php echo $CssClass; ?> "> 41.33 + <?php 41.34 + $Sender->FireEvent('BeforeDiscussionContent'); 41.35 + WriteOptions($Discussion, $Sender, $Session); 41.36 + ?> 41.37 + <div class="ItemContent Discussion"> 41.38 + <?php echo Anchor($DiscussionName, '/discussion/'.$Discussion->DiscussionID.'/'.Gdn_Format::Url($Discussion->Name).($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') ? '/#Item_'.$Discussion->CountCommentWatch : ''), 'Title'); ?> 41.39 + <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> 41.40 + <div class="Meta"> 41.41 + <?php if ($Discussion->Announce == '1') { ?> 41.42 + <span class="Announcement"><?php echo T('Announcement'); ?></span> 41.43 + <?php } ?> 41.44 + <?php if ($Discussion->Closed == '1') { ?> 41.45 + <span class="Closed"><?php echo T('Closed'); ?></span> 41.46 + <?php } ?> 41.47 + <span class="CommentCount"><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?></span> 41.48 + <?php 41.49 + if ($Session->IsValid() && $Discussion->CountUnreadComments > 0) 41.50 + echo '<strong>'.Plural($Discussion->CountUnreadComments, '%s New', '%s New Plural').'</strong>'; 41.51 + 41.52 + if ($Discussion->LastCommentID != '') { 41.53 + echo '<span class="LastCommentBy">'.sprintf(T('Most recent by %1$s'), UserAnchor($Last)).'</span>'; 41.54 + echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->LastDate).'</span>'; 41.55 + } else { 41.56 + echo '<span class="LastCommentBy">'.sprintf(T('Started by %1$s'), UserAnchor($First)).'</span>'; 41.57 + echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->FirstDate).'</span>'; 41.58 + } 41.59 + 41.60 + if (C('Vanilla.Categories.Use')) 41.61 + echo Wrap(Anchor($Discussion->Category, '/categories/'.$Discussion->CategoryUrlCode, 'Category')); 41.62 + 41.63 + $Sender->FireEvent('DiscussionMeta'); 41.64 + ?> 41.65 + </div> 41.66 + </div> 41.67 +</li> 41.68 +<?php 41.69 +} 41.70 + 41.71 +function WriteFilterTabs(&$Sender) { 41.72 + $Session = Gdn::Session(); 41.73 + $Title = property_exists($Sender, 'Category') && is_object($Sender->Category) ? $Sender->Category->Name : T('All Discussions'); 41.74 + $Bookmarked = T('My Bookmarks'); 41.75 + $MyDiscussions = T('My Discussions'); 41.76 + $MyDrafts = T('My Drafts'); 41.77 + $CountBookmarks = 0; 41.78 + $CountDiscussions = 0; 41.79 + $CountDrafts = 0; 41.80 + if ($Session->IsValid()) { 41.81 + $CountBookmarks = $Session->User->CountBookmarks; 41.82 + $CountDiscussions = $Session->User->CountDiscussions; 41.83 + $CountDrafts = $Session->User->CountDrafts; 41.84 + } 41.85 + if (is_numeric($CountBookmarks) && $CountBookmarks > 0) 41.86 + $Bookmarked .= '<span>'.$CountBookmarks.'</span>'; 41.87 + 41.88 + if (is_numeric($CountDiscussions) && $CountDiscussions > 0) 41.89 + $MyDiscussions .= '<span>'.$CountDiscussions.'</span>'; 41.90 + 41.91 + if (is_numeric($CountDrafts) && $CountDrafts > 0) 41.92 + $MyDrafts .= '<span>'.$CountDrafts.'</span>'; 41.93 + 41.94 + ?> 41.95 +<div class="Tabs DiscussionsTabs"> 41.96 + <ul> 41.97 + <?php $Sender->FireEvent('BeforeDiscussionTabs'); ?> 41.98 + <li<?php echo strtolower($Sender->ControllerName) == 'discussionscontroller' && strtolower($Sender->RequestMethod) == 'index' ? ' class="Active"' : ''; ?>><?php echo Anchor(T('All Discussions'), 'discussions'); ?></li> 41.99 + <?php $Sender->FireEvent('AfterAllDiscussionsTab'); ?> 41.100 + <?php if ($CountBookmarks > 0 || $Sender->RequestMethod == 'bookmarked') { ?> 41.101 + <li<?php echo $Sender->RequestMethod == 'bookmarked' ? ' class="Active"' : ''; ?>><?php echo Anchor($Bookmarked, '/discussions/bookmarked', 'MyBookmarks'); ?></li> 41.102 + <?php 41.103 + $Sender->FireEvent('AfterBookmarksTab'); 41.104 + } 41.105 + if ($CountDiscussions > 0 || $Sender->RequestMethod == 'mine') { 41.106 + ?> 41.107 + <li<?php echo $Sender->RequestMethod == 'mine' ? ' class="Active"' : ''; ?>><?php echo Anchor($MyDiscussions, '/discussions/mine', 'MyDiscussions'); ?></li> 41.108 + <?php 41.109 + } 41.110 + if ($CountDrafts > 0 || $Sender->ControllerName == 'draftscontroller') { 41.111 + ?> 41.112 + <li<?php echo $Sender->ControllerName == 'draftscontroller' ? ' class="Active"' : ''; ?>><?php echo Anchor($MyDrafts, '/drafts', 'MyDrafts'); ?></li> 41.113 + <?php 41.114 + } 41.115 + $Sender->FireEvent('AfterDiscussionTabs'); 41.116 + ?> 41.117 + </ul> 41.118 + <?php 41.119 + if (property_exists($Sender, 'Category') && is_object($Sender->Category)) { 41.120 + ?> 41.121 + <div class="SubTab">↳ <?php echo $Sender->Category->Name; ?></div> 41.122 + <?php 41.123 + } 41.124 + ?> 41.125 +</div> 41.126 + <?php 41.127 +} 41.128 + 41.129 +/** 41.130 + * Render options that the user has for this discussion. 41.131 + */ 41.132 +function WriteOptions($Discussion, &$Sender, &$Session) { 41.133 + if ($Session->IsValid() && $Sender->ShowOptions) { 41.134 + echo '<div class="Options">'; 41.135 + // Bookmark link 41.136 + $Title = T($Discussion->Bookmarked == '1' ? 'Unbookmark' : 'Bookmark'); 41.137 + echo Anchor( 41.138 + '<span class="Star">' 41.139 + .Img('applications/dashboard/design/images/pixel.png', array('alt' => $Title)) 41.140 + .'</span>', 41.141 + '/vanilla/discussion/bookmark/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 41.142 + 'Bookmark' . ($Discussion->Bookmarked == '1' ? ' Bookmarked' : ''), 41.143 + array('title' => $Title) 41.144 + ); 41.145 + 41.146 + $Sender->Options = ''; 41.147 + 41.148 + // Dismiss an announcement 41.149 + if (C('Vanilla.Discussions.Dismiss', 1) && $Discussion->Announce == '1' && $Discussion->Dismissed != '1') 41.150 + $Sender->Options .= '<li>'.Anchor(T('Dismiss'), 'vanilla/discussion/dismissannouncement/'.$Discussion->DiscussionID.'/'.$Session->TransientKey(), 'DismissAnnouncement') . '</li>'; 41.151 + 41.152 + // Edit discussion 41.153 + if ($Discussion->FirstUserID == $Session->UserID || $Session->CheckPermission('Vanilla.Discussions.Edit', TRUE, 'Category', $Discussion->CategoryID)) 41.154 + $Sender->Options .= '<li>'.Anchor(T('Edit'), 'vanilla/post/editdiscussion/'.$Discussion->DiscussionID, 'EditDiscussion') . '</li>'; 41.155 + 41.156 + // Announce discussion 41.157 + if ($Session->CheckPermission('Vanilla.Discussions.Announce', TRUE, 'Category', $Discussion->CategoryID)) 41.158 + $Sender->Options .= '<li>'.Anchor(T($Discussion->Announce == '1' ? 'Unannounce' : 'Announce'), 'vanilla/discussion/announce/'.$Discussion->DiscussionID.'/'.$Session->TransientKey(), 'AnnounceDiscussion') . '</li>'; 41.159 + 41.160 + // Sink discussion 41.161 + if ($Session->CheckPermission('Vanilla.Discussions.Sink', TRUE, 'Category', $Discussion->CategoryID)) 41.162 + $Sender->Options .= '<li>'.Anchor(T($Discussion->Sink == '1' ? 'Unsink' : 'Sink'), 'vanilla/discussion/sink/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'SinkDiscussion') . '</li>'; 41.163 + 41.164 + // Close discussion 41.165 + if ($Session->CheckPermission('Vanilla.Discussions.Close', TRUE, 'Category', $Discussion->CategoryID)) 41.166 + $Sender->Options .= '<li>'.Anchor(T($Discussion->Closed == '1' ? 'Reopen' : 'Close'), 'vanilla/discussion/close/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'CloseDiscussion') . '</li>'; 41.167 + 41.168 + // Delete discussion 41.169 + if ($Session->CheckPermission('Vanilla.Discussions.Delete', TRUE, 'Category', $Discussion->CategoryID)) 41.170 + $Sender->Options .= '<li>'.Anchor(T('Delete'), 'vanilla/discussion/delete/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'DeleteDiscussion') . '</li>'; 41.171 + 41.172 + // Allow plugins to add options 41.173 + $Sender->FireEvent('DiscussionOptions'); 41.174 + 41.175 + if ($Sender->Options != '') { 41.176 + ?> 41.177 + <ul class="Options"> 41.178 + <li> 41.179 + <strong><?php echo T('Options'); ?></strong> 41.180 + <ul> 41.181 + <?php echo $Sender->Options; ?> 41.182 + </ul> 41.183 + </li> 41.184 + </ul> 41.185 + <?php 41.186 + } 41.187 + echo '</div>'; 41.188 + } 41.189 +} 41.190 \ No newline at end of file
42.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 42.2 +++ b/forum/vanilla/themes/slitaz/README.txt Wed Dec 22 10:41:18 2010 +0100 42.3 @@ -0,0 +1,45 @@ 42.4 +How to create a theme: 42.5 + 42.6 +Part 1: CSS / Design 42.7 +================================================================================ 42.8 +1. Copy this "default" theme folder and rename it to your new theme name. 42.9 +2. Open the "about.php" file and edit the information to reflect your theme. Be 42.10 + sure to change the array key like this: $ThemeInfo['YourThemeNameHere']. 42.11 +3. Create a "design" subfolder and copy /applications/dashboard/design/style.css 42.12 + and /applications/vanilla/design/vanilla.css into it. 42.13 +4. Any background images you want to continue using (like the star png images 42.14 + for bookmarking) should be copied along with their respective stylesheets. 42.15 +5. Go to your Dashboard, Themes, and apply your new theme. 42.16 +6. Edit the copied CSS files to look however you wish! 42.17 + 42.18 +Other things you should know: 42.19 + 42.20 + + All non-forum pages should be edited in the global "style.css" file. 42.21 + 42.22 + + If you want to edit the look & feel of the administrative screens, also 42.23 + copy /applications/dashboard/design/admin.css in step 3. Similarly, you can 42.24 + copy other CSS files like /applications/vanilla/design/vanillaprofile.css to 42.25 + customize those pages as well. 42.26 + 42.27 + 42.28 +Part 2: HTML / Views 42.29 +================================================================================ 42.30 +If you want to customize the HTML, you can edit that too. 42.31 +Our pages are made up of two parts: 42.32 + 42.33 + 1. Master Views - these represent everything that wraps the main content of the 42.34 + page. If all you want to do is add a menu or banner above Vanilla, this is 42.35 + all you need to alter. To do so, copy the default master view from 42.36 + /applications/dashboard/views/default.master.php to 42.37 + /themes/yourtheme/views/default.master.php and edit it there. 42.38 + 42.39 + 2. Views - these represent all of the content in each page. Every application 42.40 + has a "views" folder that contains all of the HTML for every page. So, for 42.41 + example, if you wanted to edit the HTML for the Discussions list, you could 42.42 + copy the views from /applications/vanilla/views/discussions to 42.43 + /themes/yourtheme/views/discussions and edit them there. 42.44 + 42.45 +You can avoid naming conflicts between applications' views and specify which 42.46 +app a view is for by optionally adding a subfolder with the app's name in 42.47 +/themes/yourtheme/views/ (e.g.: /themes/yourtheme/views/appname/) and placing 42.48 +views there rather than directly in the "views" folder. 42.49 \ No newline at end of file
43.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 43.2 +++ b/forum/vanilla/themes/slitaz/about.php Wed Dec 22 10:41:18 2010 +0100 43.3 @@ -0,0 +1,21 @@ 43.4 +<?php if (!defined('APPLICATION')) exit(); 43.5 +/* 43.6 +Copyright 2008, 2009 Vanilla Forums Inc. 43.7 +This file is part of Garden. 43.8 +Garden is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 43.9 +Garden is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 43.10 +You should have received a copy of the GNU General Public License along with Garden. If not, see <http://www.gnu.org/licenses/>. 43.11 +Contact Vanilla Forums Inc. at support [at] vanillaforums [dot] com 43.12 +*/ 43.13 + 43.14 +/** 43.15 + * An associative array of information about this application. 43.16 + */ 43.17 +$ThemeInfo['SliTaz'] = array( 43.18 + 'Name' => 'SliTaz', 43.19 + 'Description' => "SliTaz Vanilla 2 official theme", 43.20 + 'Version' => '1.0', 43.21 + 'Author' => "Christophe Lincoln", 43.22 + 'AuthorEmail' => 'pankso@slitaz.org', 43.23 + 'AuthorUrl' => 'http://www.slitaz.org' 43.24 +);
44.1 Binary file forum/vanilla/themes/slitaz/design/favicon.ico has changed
45.1 Binary file forum/vanilla/themes/slitaz/design/favicon.png has changed
46.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 46.2 +++ b/forum/vanilla/themes/slitaz/design/style.css Wed Dec 22 10:41:18 2010 +0100 46.3 @@ -0,0 +1,438 @@ 46.4 +@charset "utf-8"; 46.5 +/* CSS Document */ 46.6 + 46.7 +/***--- MAIN / DEFAULT --***/ 46.8 +html, body { height: 102%; margin: 0; } 46.9 +html, body, input, select, textarea, button { 46.10 + font-family: Verdana, Geneva, sans-serif; 46.11 + font-size: 11px; 46.12 + line-height: 17px; 46.13 + color: #555; 46.14 +} 46.15 +a { color: #2f6c8e; text-decoration: none; } 46.16 +a:hover { color: #69a1c1; } 46.17 +a img { border: none; } 46.18 +ul, ol { margin: 0; padding: 0; list-style: none; } 46.19 + 46.20 +.clear { 46.21 + clear: both; 46.22 + display: block; 46.23 + height: 0; 46.24 + overflow: hidden; 46.25 + visibility: hidden; 46.26 + width: 0; 46.27 +} 46.28 + 46.29 +#Wrapper { min-height: 100%; position: relative; margin: 0 auto; } 46.30 +.Hidden { display: none; } 46.31 + 46.32 +/***--- HEADER(S) --***/ 46.33 + 46.34 + 46.35 +#Header h1 { padding: 15px; font-size: 2em; } 46.36 +#Header a { color: #69a1c1; } 46.37 +#Header a:hover { color: #FFF; } 46.38 + 46.39 +#Header{ 46.40 + background: #f0ba08 url(../images/header.png) repeat-x top; 46.41 + color: black; 46.42 + width: 100%; 46.43 + height: 50px; 46.44 + border-top: 1px solid black; 46.45 + border-bottom: 1px solid black; 46.46 + margin-bottom: 30px; 46.47 + position: absolute; 46.48 + top: 0; 46.49 +} 46.50 + 46.51 +#titre { 46.52 + position: absolute; 46.53 + font-size: 16px; 46.54 + font-weight: bolder ; 46.55 + margin-left: 200px; 46.56 + margin-top: 28px; 46.57 +} 46.58 + 46.59 +#logo { 46.60 + position: absolute; 46.61 + float: left; 46.62 + margin-left: 16px; 46.63 + margin-top: 0px; 46.64 +} 46.65 + 46.66 +/***--- NAV --***/ 46.67 +#Nav { 46.68 + right: 0; 46.69 + position: absolute; 46.70 + top: 3px; 46.71 + font-size: 10px; 46.72 + font-weight: bold; } 46.73 + 46.74 +ul#Menu { 46.75 + margin: 10px 15px; 46.76 + float: left; } 46.77 + 46.78 +#Menu li { float: left; margin: 0 1px 0 0; } 46.79 +#Menu a { 46.80 + display: block; 46.81 + padding: 5px 4px; 46.82 + background: inherit; 46.83 + color: white; 46.84 + text-decoration: none; } 46.85 + 46.86 +#Menu a:hover { 46.87 + background: inherit; 46.88 + color: #222222; } 46.89 +#Menu li.Highlight a { color: #222222; } 46.90 + 46.91 +/* search */ 46.92 +#Search { 46.93 + -moz-border-radius: 4px; 46.94 + -webkit-border-radius: 4px; 46.95 + height: 20px; 46.96 + float: right; 46.97 + background: #FFF; 46.98 + padding: 2px 2px; 46.99 + margin: 11px 15px; } 46.100 +#Search form { padding: 0; border: none; } 46.101 +#Nav #Search input.InputBox { width: 150px; border: none; } 46.102 +#Search input.Button { 46.103 + -moz-border-radius: 4px; 46.104 + -webkit-border-radius: 4px; 46.105 + height: 17px; 46.106 + margin: 0; 46.107 + padding: 0; } 46.108 + 46.109 +/***--- MAIN --***/ 46.110 +/*#Main { }*/ 46.111 + 46.112 +/* If you prefer the panel on the left and content on the right, simply switch the "float" property for #Content & #Panel and set the "margin-left" to "margin-right" for the #Content */ 46.113 +#Content { 46.114 + margin: 0px 320px 0px 0px; 46.115 + padding: 86px 40px 65px 80px; 46.116 + } 46.117 +#Panel { 46.118 + position: absolute; 46.119 + top: 86px; 46.120 + right: 80px; 46.121 + color: #555555; 46.122 + float: right; 46.123 + width: 250px; 46.124 + line-height: 1.5em; 46.125 + text-align: left; 46.126 + font-size: 12px; 46.127 + } 46.128 +.Box, #UserOptions { 46.129 + -moz-border-radius: 8px; 46.130 + -webkit-border-radius: 8px; 46.131 + list-style-type: none; 46.132 + margin: 10px 0; 46.133 + padding: 10px 24px 10px 24px; 46.134 + background-color: #eaeaea;} 46.135 +#Panel .Box ul { 46.136 + list-style-type: none; 46.137 + margin: 0; 46.138 + padding: 10px 24px 10px 0px; 46.139 +} 46.140 + 46.141 +/***--- CONTENT --***/ 46.142 +.GuestBox { background: #eaeaea; } 46.143 +.GuestBox p { padding: 0; } 46.144 +.Message img { max-width: 100%; } 46.145 + 46.146 +/* headers */ 46.147 +h1 { margin: 0; font-size: 1.5em; } 46.148 +#Content h1, h2, #Popup h1, div.DiscussionTabs .SubTab { 46.149 + -moz-border-radius: 8px; 46.150 + -webkit-border-radius: 8px; 46.151 + font-size: 1.1em; background: #555555; color: #fff; margin: 0 0 10px; padding: 10px; font-weight: bold; 46.152 +} 46.153 +div.DiscussionTabs .SubTab { margin: 0; } 46.154 + 46.155 +#Panel h4, #Panel .GuestBox h4 { 46.156 + font-size: 110%; 46.157 + color: #666666; 46.158 + font-weight: bold; 46.159 + padding: 0 0 1px 0; 46.160 + margin: 0; 46.161 + border-bottom: 1px solid #cecece; } 46.162 + 46.163 +div.Empty, div#Status { padding: 10px; } 46.164 + 46.165 +/* tabs */ 46.166 +.Tabs li, .SubTab { 46.167 + -moz-border-radius: 8px; 46.168 + -webkit-border-radius: 8px; 46.169 + background: #CECECE; 46.170 + padding: 5px 8px; 46.171 + font-size: 140%; 46.172 + font-weight: bold; 46.173 + border-bottom: 1px solid #fff; } 46.174 +.Tabs li.Active { background: #555; border-bottom: none; } 46.175 +.Tabs li.Active a { color: #fff; } 46.176 +.Tabs span { display: inline-block; margin: 0 10px; color: #888; } 46.177 +.SubTab { font-size: 1em; } 46.178 + 46.179 +/* DISCUSSIONS */ 46.180 +.DataList li.Item, .Conversation li.Item { 46.181 + border-bottom: 1px solid #ccc; 46.182 + position: relative; 46.183 + padding: 10px; 46.184 + -moz-border-radius: 8px; 46.185 + -webkit-border-radius: 8px; 46.186 +} 46.187 +.Activities li.Item { min-height: 50px; } 46.188 +.DataList li.Item a.Title { display: block; font-size: 1.15em; font-weight: bold; padding: 0 0 8px; } 46.189 + 46.190 +/* discussions meta */ 46.191 +.DataList .Meta span, .DataList .Meta strong { 46.192 + min-width: 100px; display: inline-block; margin: 0 5px 0 0; 46.193 +} 46.194 +.DataList .Meta .LastCommentBy { width: 175px; } 46.195 +.DataList .Meta .LastCommentDate { width: 100px; } 46.196 + 46.197 +/* discussions highlight */ 46.198 +.DataList li.Mine { background: #f1f1f1; border-bottom-color: #fff; } 46.199 +.DataList li.New { background: #d8ecbc; } 46.200 +.DataList li.Bookmarked { background: #ffdf5d; border-bottom-color: #fff; } 46.201 + 46.202 +.DataList li.Closed { background: #eee; } 46.203 +.DataList .Meta .Closed { color: #333; } 46.204 +.DataList li.Closed a.Title { text-decoration: line-through; } 46.205 + 46.206 +.DataList li.Announcement { background: #FFC; } 46.207 +.DataList .Meta .Announcement, .DataList .Meta .Closed { 46.208 + width: 100px; font-weight: bold; 46.209 +} 46.210 +.DataList .Meta .Announcement { color: #C60; } 46.211 + 46.212 +/* DISCUSSION */ 46.213 +div.DiscussionTabs li { font-size: 1em; } 46.214 +ul.Discussion { margin: 0 0 10px; } 46.215 + 46.216 +/* bookmark */ 46.217 +a.Bookmark { width: 9px; height: 9px; position: absolute; top: 8px; right: 10px; font-size: 0; background: #fff; border: 1px dotted #ffcc00; } 46.218 +.Discussion a.Bookmark { top: 41px; } 46.219 +a.Bookmarked { background: #ffcc00; border: 1px solid #fff; } 46.220 +div.Options a.Bookmark { top: 14px; } 46.221 + 46.222 +div.Comment { 46.223 + position: relative; 46.224 + border-bottom: 1px dotted #ccc; 46.225 + padding: 10px; } 46.226 +li.Even { background: #f8f8f8; } 46.227 + 46.228 +/* discussion meta */ 46.229 +.Comment .Message, .Comment .MessageForm, .ConversationMessage .Message { 46.230 + margin-left: 215px; line-height: 1.75em; 46.231 +} 46.232 +.Comment .Meta, .ConversationMessage .Meta { 46.233 + width: 175px; float: left; padding: 10px; background: #FFC; 46.234 + -moz-border-radius: 8px; 46.235 + -webkit-border-radius: 8px; 46.236 +} 46.237 +.Comment .Meta span, .ConversationMessage .Meta span, div.Meta div.PostCount { 46.238 + display: block; border-bottom: 1px dotted #ccc; font-size: 0.85em; padding: 1px 0; 46.239 +} 46.240 +.Comment .Author, .ConversationMessage span.Author { 46.241 + background: #fff; padding: 5px; border-bottom: none; 46.242 +} 46.243 +.Comment .Author img, .ConversationMessage .Author a.Photo { 46.244 + float: left; margin: 0 10px 0 0; 46.245 +} 46.246 +.Comment .Author a, .ConversationMessage .Author a { 46.247 + font-weight: bold; font-size: 1.1em; 46.248 +} 46.249 +blockquote { margin: 0; padding: 10px; background: #fff; border: 1px dotted #ccc; } 46.250 +.Odd blockquote { background: #F8F8F8; } 46.251 + 46.252 +/* post */ 46.253 +ul.PostOptions { margin: 0 0 10px; } 46.254 +.Preview { padding: 10px; margin: 0 0 10px; border-bottom: 1px dotted #ccc; } 46.255 + 46.256 +/*- Conversations & Activities -*/ 46.257 +ul.Activities .Title { margin: 0 0 0 60px; font-weight: bold; } 46.258 +ul.Conversations .Photo, ul.Activities .Photo { 46.259 + width: 50px; height: 50px; float: left; font-size: 0.9em; color: #ccc; overflow: hidden; background: #eee; 46.260 +} 46.261 +ul.Conversations .Excerpt, ul.Activities .Excerpt { 46.262 + margin: 0 0 10px 60px; 46.263 +} 46.264 +ul.Conversations .Meta, ul.Activities .Meta, .SearchResults .Meta { 46.265 + margin: 0 0 0 60px;background: #FFC; padding: 3px 5px; 46.266 +} 46.267 +.SearchResults .Meta { margin: 5px 0 0; } 46.268 +ul.ActivityComments { margin: 0 0 0 60px; } 46.269 + 46.270 +.ConversationMessage .Message { min-height: 100px; } 46.271 +.ConversationMessage span.Author { height: 50px; } 46.272 +.ConversationMessage span.ItemLink { display: none; } 46.273 + 46.274 +/***--- PANEL --***/ 46.275 +.Block { padding: 15px; background: #ddd; margin: 0 10px 0 0; } 46.276 +.Post #Panel, .Search #Panel { 46.277 + display: none; 46.278 +} 46.279 + 46.280 +.PanelInfo li { padding: 0px 0px; } 46.281 +.PanelInfo li strong { font-weight: normal; } 46.282 +.PanelInfo li.Active a { color: #c60; } 46.283 +.PanelInfo li.Parent { background: #ccc; padding: 2px 5px; font-size: 1.1em; font-weight: bold; } 46.284 + 46.285 +.PanelInfo a { 46.286 + color: #0F314E; 46.287 + background: inherit; 46.288 + display: block; 46.289 + text-decoration: none; 46.290 + font-weight: bold; 46.291 +} 46.292 + 46.293 +.PanelInfo a:hover { 46.294 + color: #c60; 46.295 + text-decoration: none; 46.296 + display: block; 46.297 +} 46.298 +/* account */ 46.299 + 46.300 +#Panel .Photo { background: #ddd; position: absolute; right: 10px; padding: 0 0 10px 10px; } 46.301 +#Panel .Photo img { width: 50px; display: block; border: 5px solid #fff; border-bottom-width: 12px; } 46.302 +#Panel .Photo img:hover { width: auto; } 46.303 + 46.304 +#Panel dl { padding: 10px; background: #fff; margin: 0; } 46.305 +#Panel dt { font-weight: bold; padding: 2px 0 0; } 46.306 +#Panel dd { margin: 0; border-bottom: 1px dotted #ccc; padding: 0 0 2px; } 46.307 + 46.308 +/* inbox */ 46.309 +.PanelInfo li strong { display: inline-block; margin: 0 5px 0 0; } 46.310 + 46.311 +/*- Form elements -*/ 46.312 +form { padding: 0 10px 10px; border-bottom: 1px dotted #ccc; } 46.313 +fieldset { margin: 0; padding: 0; border: none; } 46.314 + 46.315 +form#Form_User_Register { margin-top: 10px; } 46.316 + 46.317 +input, textarea, select { 46.318 + border: 1px solid #ccc; padding: 3px 5px; margin: 0; 46.319 +} 46.320 +input.InputBox { width: 325px; margin: 0 10px 5px 0; } 46.321 + 46.322 +input.Button, input.Cancel { 46.323 + -moz-border-radius: 4px; 46.324 + -webkit-border-radius: 4px; 46.325 + cursor: pointer; border: none; background: #c60; color: #fff; padding: 4px; 46.326 +} 46.327 +input.Button:hover, input.Cancel:hover { 46.328 + background: #555555; color: white; 46.329 +} 46.330 + 46.331 +a.Back, a.Cancel { 46.332 + margin: 0 5px 0 0; 46.333 +} 46.334 + 46.335 +textarea { width: 95%; min-height: 100px; display: block; margin: 10px 0; } 46.336 + 46.337 +label { display: block; font-weight: bold; } 46.338 +label.RadioLabel, label.CheckBoxLabel { 46.339 + font-weight: normal; 46.340 +} 46.341 +label.RadioLabel input, label.CheckBoxLabel input { 46.342 + border: none; 46.343 +} 46.344 + 46.345 +li.Gender, li.CaptchaInput { 46.346 + margin: 0 0 10px; 46.347 +} 46.348 +li.CreateAccount, li.Buttons { 46.349 + margin: 5px 0 0; 46.350 +} 46.351 +.cleditorMain { margin: 10px 0; } 46.352 + 46.353 +.CommentForm div.Messages { margin: 8px 0 0; } 46.354 +.Errors, .Warning { 46.355 + color: #F00; 46.356 +} 46.357 + 46.358 +/***--- BUTTONS ---***/ 46.359 +.GuestBox a.Button { 46.360 + -moz-border-radius: 4px; 46.361 + -webkit-border-radius: 4px; 46.362 + font-size: 11px; 46.363 + padding: 4px; 46.364 + margin: 0 0 10px; 46.365 + background: #c60; 46.366 + color: #FFF; } 46.367 +.GuestBox .Button:hover { 46.368 + background: #555555; } 46.369 + 46.370 +a.BigButton { 46.371 + -moz-border-radius: 8px; 46.372 + -webkit-border-radius: 8px; 46.373 + display: block; 46.374 + background: #c60; 46.375 + color: #FFF; 46.376 + padding: 10px; 46.377 + font-size: 1.1em; 46.378 + font-weight: bold; 46.379 + text-align: center} 46.380 +a.BigButton:hover { background: #555555; } 46.381 +a.ClearConversation { margin: 10px 0 0; } 46.382 + 46.383 +/* options */ 46.384 +div.Options, div.OptionButton { 46.385 + position: absolute; top: 12px; right: 10px; 46.386 +} 46.387 +div.OptionButton { font-weight: bold; color: #555; } 46.388 +ul.Options strong { 46.389 + -moz-border-radius: 4px; 46.390 + -webkit-border-radius: 4px; 46.391 + cursor: pointer; 46.392 + display: block; 46.393 + padding: 5px 10px; 46.394 + background: #FFC; 46.395 + border: 1px solid #ccc; } 46.396 + 46.397 +ul.Options { margin: 5px 40px 0 0; } 46.398 +ul.Options li { position: relative; } 46.399 +ul.Options ul { min-width: 125px; display: none; position: absolute; z-index: 1000; background: #FFC; right: 0; border: 1px dotted #ccc; margin-top: -1px; } 46.400 +ul.Options li:hover ul { display: block; } 46.401 +ul.Options ul li { display: block; border-top: 1px dotted #ccc; } 46.402 +ul.Options ul li:first-child { border-top: none; } 46.403 +ul.Options ul li a { display: block; padding: 5px 10px; } 46.404 + 46.405 +/*- Pager -*/ 46.406 +#PagerAfter { margin: 10px 0; text-align: center; background: #ddd; padding: 2px 10px; } 46.407 +#PagerAfter a { display: inline-block; padding: 0 5px; } 46.408 +#PagerAfter a.Highlight { color: #c60; } 46.409 +span.Previous, a.Previous { float: left; } 46.410 +#PagerAfter span.Next, #PagerAfter a.Next { float: right; padding: 0; } 46.411 + 46.412 +#PagerMore { text-align: right; padding: 5px 10px; } 46.413 + 46.414 +/***--- FOOTER --***/ 46.415 +#Footer { 46.416 + font-size: 11px ; 46.417 + width: 100%; 46.418 + position: absolute; 46.419 + bottom: 0; 46.420 + background: inherit; 46.421 + color: #a8a8a8; } 46.422 +#Footer ul { margin: 16px 15px; } 46.423 +#Footer li { float: left; } 46.424 +#Footer a { text-decoration: underline; background: inherit; color: #a8a8a8; } 46.425 +#Footer a:hover { color: #666666; } 46.426 + 46.427 +/***--- OVERLAY ---***/ 46.428 +.Overlay { width: 100%; position: absolute; top: 0; z-index: 10000; background: url(../images/overlayBg.png); } 46.429 +.Overlay #Popup { width: 720px; padding: 15px; background: #FFF; margin: 0 auto; border: 1px dotted #c60; position: relative; } 46.430 + 46.431 +.Overlay .Buttons input.Button { margin: 0 0 10px; } 46.432 +.Overlay p { padding: 0 10px; } 46.433 +.Overlay a.Close { position: absolute; display: block; top: 10px; right: 15px; padding: 13px; font-size: 1.5em; color: #fff; } 46.434 +.Overlay a.Close:hover { color: #c60; } 46.435 +.Overlay ul { margin: 10px 0 0; } 46.436 + 46.437 +.Overlay input.Button { margin: 10px 0 0; } 46.438 +.Overlay textarea { margin: 10px 0 0; } 46.439 +.Overlay li.Gender { margin: 0; } 46.440 + 46.441 +.Overlay #Form_Picture { margin: 0 0 10px; }
47.1 Binary file forum/vanilla/themes/slitaz/images/header.png has changed
48.1 Binary file forum/vanilla/themes/slitaz/images/logo.png has changed
49.1 Binary file forum/vanilla/themes/slitaz/images/overlayBg.png has changed
50.1 Binary file forum/vanilla/themes/slitaz/screenshot.png has changed
51.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 51.2 +++ b/forum/vanilla/themes/slitaz/views/default.master.php Wed Dec 22 10:41:18 2010 +0100 51.3 @@ -0,0 +1,76 @@ 51.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 51.5 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 51.6 + <head> 51.7 + <?php $this->RenderAsset('Head'); ?> 51.8 + </head> 51.9 + <body id="<?php echo $BodyIdentifier; ?>" class="<?php echo $this->CssClass; ?>"> 51.10 + <div id="Wrapper"> 51.11 + <div id="Main"> 51.12 + <div id="ContentHolder"> 51.13 + <div id="Content"> 51.14 + <?php $this->RenderAsset('Content'); ?> 51.15 + </div> 51.16 + </div> 51.17 + <div id="PanelHolder"> 51.18 + <div id="Panel"><?php $this->RenderAsset('Panel'); ?></div> 51.19 + </div> 51.20 + <div class="clear"> </div> 51.21 + </div> 51.22 + 51.23 + <div id="Header"> 51.24 + 51.25 + <a href="<?php echo Url('/'); ?>"><img id="logo" 51.26 + src="themes/slitaz/images/logo.png" title="www.slitaz.org" alt="www.slitaz.org" 51.27 + style="border: 0px solid ; width: 200px; height: 74px;" /></a> 51.28 + <p id="titre">#!/Support/Forum</p> 51.29 + 51.30 + </div> 51.31 + 51.32 + <div id="Nav"> 51.33 + <?php 51.34 + $Session = Gdn::Session(); 51.35 + if ($this->Menu) { 51.36 + $this->Menu->AddLink('Dashboard', T('Dashboard'), '/dashboard/settings', array('Garden.Settings.Manage')); 51.37 + // $this->Menu->AddLink('Dashboard', T('Users'), '/user/browse', array('Garden.Users.Add', 'Garden.Users.Edit', 'Garden.Users.Delete')); 51.38 + $this->Menu->AddLink('Activity', T('Activity'), '/activity'); 51.39 + $Authenticator = Gdn::Authenticator(); 51.40 + if ($Session->IsValid()) { 51.41 + $Name = $Session->User->Name; 51.42 + $CountNotifications = $Session->User->CountNotifications; 51.43 + if (is_numeric($CountNotifications) && $CountNotifications > 0) 51.44 + $Name .= ' <span>'.$CountNotifications.'</span>'; 51.45 + 51.46 + $this->Menu->AddLink('User', "Profile ($Name)", '/profile/{UserID}/{Username}', array('Garden.SignIn.Allow'), array('class' => 'UserNotifications')); 51.47 + $this->Menu->AddLink('SignOut', T('Sign Out'), $Authenticator->SignOutUrl(), FALSE, array('class' => 'NonTab SignOut')); 51.48 + } else { 51.49 + $Attribs = array(); 51.50 + if (C('Garden.SignIn.Popup') && strpos(Gdn::Request()->Url(), 'entry') === FALSE) 51.51 + $Attribs['class'] = 'SignInPopup'; 51.52 + 51.53 + $this->Menu->AddLink('Entry', T('Sign In'), $Authenticator->SignInUrl($this->SelfUrl), FALSE, array('class' => 'NonTab'), $Attribs); 51.54 + } 51.55 + echo $this->Menu->ToString(); 51.56 + } 51.57 + ?> 51.58 + <div id="Search"> 51.59 + <?php 51.60 + $Form = Gdn::Factory('Form'); 51.61 + $Form->InputPrefix = ''; 51.62 + echo 51.63 + $Form->Open(array('action' => Url('/search'), 'method' => 'get')), 51.64 + $Form->TextBox('Search'), 51.65 + $Form->Button('Search', array('Name' => '')), 51.66 + $Form->Close(); 51.67 + ?> 51.68 + </div> 51.69 + </div> 51.70 + 51.71 + <div id="Footer"> 51.72 + Copyright © 2010 <a href="http://www.slitaz.org/">SliTaz</a> - 51.73 + <a href="http://vanillaforums.org">Powered by Vanilla</a> 51.74 + </div> 51.75 + </div> 51.76 + 51.77 + <?php $this->FireEvent('AfterBody'); ?> 51.78 + </body> 51.79 +</html>
52.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 52.2 +++ b/forum/vanilla/themes/slitaz/views/discussion/comments.php Wed Dec 22 10:41:18 2010 +0100 52.3 @@ -0,0 +1,25 @@ 52.4 +<?php if (!defined('APPLICATION')) exit(); 52.5 +$Session = Gdn::Session(); 52.6 +$this->FireEvent('BeforeCommentsRender'); 52.7 +if (!function_exists('WriteComment')) 52.8 + include($this->FetchViewLocation('helper_functions', 'discussion')); 52.9 + 52.10 +$CurrentOffset = $this->Offset; 52.11 +if ($CurrentOffset == 0 && !$this->Data('NewComments', FALSE)) { 52.12 + echo WriteComment($this->Discussion, $this, $Session, $CurrentOffset); 52.13 +} 52.14 + 52.15 +// Only prints individual comment list items 52.16 +$CommentData = $this->CommentData->Result(); 52.17 +$i = 0; 52.18 +foreach ($CommentData as $Comment) { 52.19 + ++$CurrentOffset; 52.20 + $this->CurrentComment = $Comment; 52.21 + if ($i % 2) { 52.22 + $counter = 'Odd'; 52.23 + } else { 52.24 + $counter = 'Even'; 52.25 + } 52.26 + WriteComment($Comment, $this, $Session, $CurrentOffset, $counter); 52.27 + $i++; 52.28 +}
53.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 53.2 +++ b/forum/vanilla/themes/slitaz/views/discussion/helper_functions.php Wed Dec 22 10:41:18 2010 +0100 53.3 @@ -0,0 +1,118 @@ 53.4 +<?php if (!defined('APPLICATION')) exit(); 53.5 + 53.6 +/** 53.7 + * $Object is either a Comment or the original Discussion. 53.8 + */ 53.9 +function WriteComment($Object, $Sender, $Session, $CurrentOffset, $counter) { 53.10 + $Author = UserBuilder($Object, 'Insert'); 53.11 + $Type = property_exists($Object, 'CommentID') ? 'Comment' : 'Discussion'; 53.12 + $Sender->EventArguments['Object'] = $Object; 53.13 + $Sender->EventArguments['Type'] = $Type; 53.14 + $Sender->EventArguments['Author'] = $Author; 53.15 + $CssClass = 'Item Comment ' . $counter; 53.16 + if ($Type == 'Comment') { 53.17 + $Sender->EventArguments['Comment'] = $Object; 53.18 + $Id = 'Comment_'.$Object->CommentID; 53.19 + $Permalink = '/discussion/comment/'.$Object->CommentID.'/#Comment_'.$Object->CommentID; 53.20 + } else { 53.21 + $Sender->EventArguments['Discussion'] = $Object; 53.22 + $CssClass .= ' FirstComment'; 53.23 + $Id = 'Discussion_'.$Object->DiscussionID; 53.24 + $Permalink = '/discussion/'.$Object->DiscussionID.'/'.Gdn_Format::Url($Object->Name).'/p1'; 53.25 + } 53.26 + $Sender->Options = ''; 53.27 + $CssClass .= $Object->InsertUserID == $Session->UserID ? ' Mine' : ''; 53.28 + $Sender->FireEvent('BeforeCommentDisplay'); 53.29 +?> 53.30 +<li class="<?php echo $CssClass; ?>" id="<?php echo $Id; ?>"> 53.31 + <div class="Comment"> 53.32 + <div class="Meta"> 53.33 + <?php $Sender->FireEvent('BeforeCommentMeta'); ?> 53.34 + <div class="Author"> 53.35 + <?php 53.36 + echo UserPhoto($Author); 53.37 + echo UserAnchor($Author); 53.38 + ?> 53.39 + <div class="clear"> </div> 53.40 + </div> 53.41 + <span class="DateCreated"> 53.42 + <?php 53.43 + echo Gdn_Format::Date($Object->DateInserted); 53.44 + ?> 53.45 + </span> 53.46 + <span class="Permalink"> 53.47 + <?php echo Anchor(T('Permalink'), $Permalink, 'Permalink', array('name' => 'Item_'.($CurrentOffset+1), 'rel' => 'nofollow')); ?> 53.48 + </span> 53.49 + <?php WriteOptionList($Object, $Sender, $Session); ?> 53.50 + <div class="CommentInfo"> 53.51 + <?php $Sender->FireEvent('CommentInfo'); ?> 53.52 + </div> 53.53 + <?php $Sender->FireEvent('AfterCommentMeta'); ?> 53.54 + </div> 53.55 + <div class="Message"> 53.56 + <?php $Sender->FireEvent('BeforeCommentBody'); ?> 53.57 + <?php 53.58 + $Object->FormatBody = Gdn_Format::To($Object->Body, $Object->Format); 53.59 + $Sender->FireEvent('AfterCommentFormat'); 53.60 + $Object = $Sender->EventArguments['Object']; 53.61 + echo $Object->FormatBody; 53.62 + ?> 53.63 + </div><div class="clear"> </div> 53.64 + <?php $Sender->FireEvent('AfterCommentBody'); ?> 53.65 + </div> 53.66 +</li> 53.67 +<?php 53.68 + $Sender->FireEvent('AfterComment'); 53.69 +} 53.70 + 53.71 +function WriteOptionList($Object, $Sender, $Session) { 53.72 + $EditContentTimeout = C('Garden.EditContentTimeout', -1); 53.73 + $CanEdit = $EditContentTimeout == -1 || strtotime($Object->DateInserted) + $EditContentTimeout > time(); 53.74 + $TimeLeft = ''; 53.75 + if ($CanEdit && $EditContentTimeout > 0) { 53.76 + $TimeLeft = strtotime($Object->DateInserted) + $EditContentTimeout - time(); 53.77 + $TimeLeft = $TimeLeft > 0 ? ' ('.Gdn_Format::Seconds($TimeLeft).')' : ''; 53.78 + } 53.79 + 53.80 + $Sender->Options = ''; 53.81 + $CategoryID = GetValue('CategoryID', $Object); 53.82 + if(!$CategoryID && property_exists($Sender, 'Discussion')) 53.83 + $CategoryID = GetValue('CategoryID', $Sender->Discussion); 53.84 + 53.85 + // Show discussion options if this is the discussion / first comment 53.86 + if ($Sender->EventArguments['Type'] == 'Discussion') { 53.87 + // Can the user edit the discussion? 53.88 + if (($CanEdit && $Session->UserID == $Object->InsertUserID) || $Session->CheckPermission('Vanilla.Discussions.Edit', TRUE, 'Category', $CategoryID)) 53.89 + $Sender->Options .= '<span>'.Anchor(T('Edit'), '/vanilla/post/editdiscussion/'.$Object->DiscussionID, 'EditDiscussion').$TimeLeft.'</span>'; 53.90 + 53.91 + // Can the user announce? 53.92 + if ($Session->CheckPermission('Vanilla.Discussions.Announce', TRUE, 'Category', $CategoryID)) 53.93 + $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Announce == '1' ? 'Unannounce' : 'Announce'), 'vanilla/discussion/announce/'.$Object->DiscussionID.'/'.$Session->TransientKey(), 'AnnounceDiscussion') . '</span>'; 53.94 + 53.95 + // Can the user sink? 53.96 + if ($Session->CheckPermission('Vanilla.Discussions.Sink', TRUE, 'Category', $CategoryID)) 53.97 + $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Sink == '1' ? 'Unsink' : 'Sink'), 'vanilla/discussion/sink/'.$Object->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'SinkDiscussion') . '</span>'; 53.98 + 53.99 + // Can the user close? 53.100 + if ($Session->CheckPermission('Vanilla.Discussions.Close', TRUE, 'Category', $CategoryID)) 53.101 + $Sender->Options .= '<span>'.Anchor(T($Sender->Discussion->Closed == '1' ? 'Reopen' : 'Close'), 'vanilla/discussion/close/'.$Object->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'CloseDiscussion') . '</span>'; 53.102 + 53.103 + // Can the user delete? 53.104 + if ($Session->CheckPermission('Vanilla.Discussions.Delete', TRUE, 'Category', $CategoryID)) 53.105 + $Sender->Options .= '<span>'.Anchor(T('Delete Discussion'), 'vanilla/discussion/delete/'.$Object->DiscussionID.'/'.$Session->TransientKey(), 'DeleteDiscussion') . '</span>'; 53.106 + } else { 53.107 + // And if this is just another comment in the discussion ... 53.108 + 53.109 + // Can the user edit the comment? 53.110 + if (($CanEdit && $Session->UserID == $Object->InsertUserID) || $Session->CheckPermission('Vanilla.Comments.Edit', TRUE, 'Category', $Sender->Discussion->CategoryID)) 53.111 + $Sender->Options .= '<span>'.Anchor(T('Edit'), '/vanilla/post/editcomment/'.$Object->CommentID, 'EditComment').$TimeLeft.'</span>'; 53.112 + 53.113 + // Can the user delete the comment? 53.114 + if ($Session->CheckPermission('Vanilla.Comments.Delete', TRUE, 'Category', $CategoryID)) 53.115 + $Sender->Options .= '<span>'.Anchor(T('Delete'), 'vanilla/discussion/deletecomment/'.$Object->CommentID.'/'.$Session->TransientKey().'/?Target='.urlencode($Sender->SelfUrl), 'DeleteComment') . '</span>'; 53.116 + } 53.117 + 53.118 + // Allow plugins to add options 53.119 + $Sender->FireEvent('CommentOptions'); 53.120 + echo $Sender->Options; 53.121 +} 53.122 \ No newline at end of file
54.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 54.2 +++ b/forum/vanilla/themes/slitaz/views/discussions/helper_functions.php Wed Dec 22 10:41:18 2010 +0100 54.3 @@ -0,0 +1,186 @@ 54.4 +<?php 54.5 +if (!defined('APPLICATION')) exit(); 54.6 + 54.7 +function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt) { 54.8 + $CssClass = 'Item'; 54.9 + $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; 54.10 + $CssClass .= $Discussion->Closed == '1' ? ' Closed' : ''; 54.11 + $CssClass .= $Alt.' '; 54.12 + $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; 54.13 + $CssClass .= $Discussion->Dismissed == '1' ? ' Dismissed' : ''; 54.14 + $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; 54.15 + $CssClass .= ($Discussion->CountUnreadComments > 0 && $Session->IsValid()) ? ' New' : ''; 54.16 + $Sender->EventArguments['Discussion'] = &$Discussion; 54.17 + $First = UserBuilder($Discussion, 'First'); 54.18 + $Last = UserBuilder($Discussion, 'Last'); 54.19 + 54.20 + $Sender->FireEvent('BeforeDiscussionName'); 54.21 + 54.22 + $DiscussionName = Gdn_Format::Text($Discussion->Name); 54.23 + if ($DiscussionName == '') 54.24 + $DiscussionName = T('Blank Discussion Topic'); 54.25 + 54.26 + static $FirstDiscussion = TRUE; 54.27 + if (!$FirstDiscussion) 54.28 + $Sender->FireEvent('BetweenDiscussion'); 54.29 + else 54.30 + $FirstDiscussion = FALSE; 54.31 +?> 54.32 +<li class="<?php echo $CssClass; ?> "> 54.33 + <?php 54.34 + $Sender->FireEvent('BeforeDiscussionContent'); 54.35 + WriteOptions($Discussion, $Sender, $Session); 54.36 + ?> 54.37 + <div class="ItemContent Discussion"> 54.38 + <?php echo Anchor($DiscussionName, '/discussion/'.$Discussion->DiscussionID.'/'.Gdn_Format::Url($Discussion->Name).($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') ? '/#Item_'.$Discussion->CountCommentWatch : ''), 'Title'); ?> 54.39 + <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> 54.40 + <div class="Meta"> 54.41 + <?php if ($Discussion->Announce == '1') { ?> 54.42 + <span class="Announcement"><?php echo T('Announcement'); ?></span> 54.43 + <?php } ?> 54.44 + <?php if ($Discussion->Closed == '1') { ?> 54.45 + <span class="Closed"><?php echo T('Closed'); ?></span> 54.46 + <?php } ?> 54.47 + <span class="CommentCount"><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?></span> 54.48 + <?php 54.49 + if ($Session->IsValid() && $Discussion->CountUnreadComments > 0) 54.50 + echo '<strong>'.Plural($Discussion->CountUnreadComments, '%s New', '%s New Plural').'</strong>'; 54.51 + 54.52 + if ($Discussion->LastCommentID != '') { 54.53 + echo '<span class="LastCommentBy">'.sprintf(T('Most recent by %1$s'), UserAnchor($Last)).'</span>'; 54.54 + echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->LastDate).'</span>'; 54.55 + } else { 54.56 + echo '<span class="LastCommentBy">'.sprintf(T('Started by %1$s'), UserAnchor($First)).'</span>'; 54.57 + echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->FirstDate).'</span>'; 54.58 + } 54.59 + 54.60 + if (C('Vanilla.Categories.Use')) 54.61 + echo Wrap(Anchor($Discussion->Category, '/categories/'.$Discussion->CategoryUrlCode, 'Category')); 54.62 + 54.63 + $Sender->FireEvent('DiscussionMeta'); 54.64 + ?> 54.65 + </div> 54.66 + </div> 54.67 +</li> 54.68 +<?php 54.69 +} 54.70 + 54.71 +function WriteFilterTabs(&$Sender) { 54.72 + $Session = Gdn::Session(); 54.73 + $Title = property_exists($Sender, 'Category') && is_object($Sender->Category) ? $Sender->Category->Name : T('All Discussions'); 54.74 + $Bookmarked = T('My Bookmarks'); 54.75 + $MyDiscussions = T('My Discussions'); 54.76 + $MyDrafts = T('My Drafts'); 54.77 + $CountBookmarks = 0; 54.78 + $CountDiscussions = 0; 54.79 + $CountDrafts = 0; 54.80 + if ($Session->IsValid()) { 54.81 + $CountBookmarks = $Session->User->CountBookmarks; 54.82 + $CountDiscussions = $Session->User->CountDiscussions; 54.83 + $CountDrafts = $Session->User->CountDrafts; 54.84 + } 54.85 + if (is_numeric($CountBookmarks) && $CountBookmarks > 0) 54.86 + $Bookmarked .= '<span>'.$CountBookmarks.'</span>'; 54.87 + 54.88 + if (is_numeric($CountDiscussions) && $CountDiscussions > 0) 54.89 + $MyDiscussions .= '<span>'.$CountDiscussions.'</span>'; 54.90 + 54.91 + if (is_numeric($CountDrafts) && $CountDrafts > 0) 54.92 + $MyDrafts .= '<span>'.$CountDrafts.'</span>'; 54.93 + 54.94 + ?> 54.95 +<div class="Tabs DiscussionsTabs"> 54.96 + <ul> 54.97 + <?php $Sender->FireEvent('BeforeDiscussionTabs'); ?> 54.98 + <li<?php echo strtolower($Sender->ControllerName) == 'discussionscontroller' && strtolower($Sender->RequestMethod) == 'index' ? ' class="Active"' : ''; ?>><?php echo Anchor(T('All Discussions'), 'discussions'); ?></li> 54.99 + <?php $Sender->FireEvent('AfterAllDiscussionsTab'); ?> 54.100 + <?php if ($CountBookmarks > 0 || $Sender->RequestMethod == 'bookmarked') { ?> 54.101 + <li<?php echo $Sender->RequestMethod == 'bookmarked' ? ' class="Active"' : ''; ?>><?php echo Anchor($Bookmarked, '/discussions/bookmarked', 'MyBookmarks'); ?></li> 54.102 + <?php 54.103 + $Sender->FireEvent('AfterBookmarksTab'); 54.104 + } 54.105 + if ($CountDiscussions > 0 || $Sender->RequestMethod == 'mine') { 54.106 + ?> 54.107 + <li<?php echo $Sender->RequestMethod == 'mine' ? ' class="Active"' : ''; ?>><?php echo Anchor($MyDiscussions, '/discussions/mine', 'MyDiscussions'); ?></li> 54.108 + <?php 54.109 + } 54.110 + if ($CountDrafts > 0 || $Sender->ControllerName == 'draftscontroller') { 54.111 + ?> 54.112 + <li<?php echo $Sender->ControllerName == 'draftscontroller' ? ' class="Active"' : ''; ?>><?php echo Anchor($MyDrafts, '/drafts', 'MyDrafts'); ?></li> 54.113 + <?php 54.114 + } 54.115 + $Sender->FireEvent('AfterDiscussionTabs'); 54.116 + ?> 54.117 + </ul> 54.118 + <?php 54.119 + if (property_exists($Sender, 'Category') && is_object($Sender->Category)) { 54.120 + ?> 54.121 + <div class="SubTab">↳ <?php echo $Sender->Category->Name; ?></div> 54.122 + <?php 54.123 + } 54.124 + ?> 54.125 +</div> 54.126 + <?php 54.127 +} 54.128 + 54.129 +/** 54.130 + * Render options that the user has for this discussion. 54.131 + */ 54.132 +function WriteOptions($Discussion, &$Sender, &$Session) { 54.133 + if ($Session->IsValid() && $Sender->ShowOptions) { 54.134 + echo '<div class="Options">'; 54.135 + // Bookmark link 54.136 + $Title = T($Discussion->Bookmarked == '1' ? 'Unbookmark' : 'Bookmark'); 54.137 + echo Anchor( 54.138 + '<span class="Star">' 54.139 + .Img('applications/dashboard/design/images/pixel.png', array('alt' => $Title)) 54.140 + .'</span>', 54.141 + '/vanilla/discussion/bookmark/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 54.142 + 'Bookmark' . ($Discussion->Bookmarked == '1' ? ' Bookmarked' : ''), 54.143 + array('title' => $Title) 54.144 + ); 54.145 + 54.146 + $Sender->Options = ''; 54.147 + 54.148 + // Dismiss an announcement 54.149 + if (C('Vanilla.Discussions.Dismiss', 1) && $Discussion->Announce == '1' && $Discussion->Dismissed != '1') 54.150 + $Sender->Options .= '<li>'.Anchor(T('Dismiss'), 'vanilla/discussion/dismissannouncement/'.$Discussion->DiscussionID.'/'.$Session->TransientKey(), 'DismissAnnouncement') . '</li>'; 54.151 + 54.152 + // Edit discussion 54.153 + if ($Discussion->FirstUserID == $Session->UserID || $Session->CheckPermission('Vanilla.Discussions.Edit', TRUE, 'Category', $Discussion->CategoryID)) 54.154 + $Sender->Options .= '<li>'.Anchor(T('Edit'), 'vanilla/post/editdiscussion/'.$Discussion->DiscussionID, 'EditDiscussion') . '</li>'; 54.155 + 54.156 + // Announce discussion 54.157 + if ($Session->CheckPermission('Vanilla.Discussions.Announce', TRUE, 'Category', $Discussion->CategoryID)) 54.158 + $Sender->Options .= '<li>'.Anchor(T($Discussion->Announce == '1' ? 'Unannounce' : 'Announce'), 'vanilla/discussion/announce/'.$Discussion->DiscussionID.'/'.$Session->TransientKey(), 'AnnounceDiscussion') . '</li>'; 54.159 + 54.160 + // Sink discussion 54.161 + if ($Session->CheckPermission('Vanilla.Discussions.Sink', TRUE, 'Category', $Discussion->CategoryID)) 54.162 + $Sender->Options .= '<li>'.Anchor(T($Discussion->Sink == '1' ? 'Unsink' : 'Sink'), 'vanilla/discussion/sink/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'SinkDiscussion') . '</li>'; 54.163 + 54.164 + // Close discussion 54.165 + if ($Session->CheckPermission('Vanilla.Discussions.Close', TRUE, 'Category', $Discussion->CategoryID)) 54.166 + $Sender->Options .= '<li>'.Anchor(T($Discussion->Closed == '1' ? 'Reopen' : 'Close'), 'vanilla/discussion/close/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'CloseDiscussion') . '</li>'; 54.167 + 54.168 + // Delete discussion 54.169 + if ($Session->CheckPermission('Vanilla.Discussions.Delete', TRUE, 'Category', $Discussion->CategoryID)) 54.170 + $Sender->Options .= '<li>'.Anchor(T('Delete'), 'vanilla/discussion/delete/'.$Discussion->DiscussionID.'/'.$Session->TransientKey().'?Target='.urlencode($Sender->SelfUrl), 'DeleteDiscussion') . '</li>'; 54.171 + 54.172 + // Allow plugins to add options 54.173 + $Sender->FireEvent('DiscussionOptions'); 54.174 + 54.175 + if ($Sender->Options != '') { 54.176 + ?> 54.177 + <ul class="Options"> 54.178 + <li> 54.179 + <strong><?php echo T('Options'); ?></strong> 54.180 + <ul> 54.181 + <?php echo $Sender->Options; ?> 54.182 + </ul> 54.183 + </li> 54.184 + </ul> 54.185 + <?php 54.186 + } 54.187 + echo '</div>'; 54.188 + } 54.189 +} 54.190 \ No newline at end of file