Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

build 958: moved statistics to the timeline

  • Loading branch information...
commit 5837b1e10272bc4795d77bf4f55e2b5865818b5b 1 parent b084430
Fabian Vogelsteller authored

Showing 34 changed files with 743 additions and 759 deletions. Show diff stats Hide diff stats

  1. +2 1  CHANGELOG
  2. +1 1  VERSION
  3. +5 4 index.php
  4. +25 10 library/classes/Search.class.php
  5. +3 3 library/controllers/editor.controller.php
  6. +1 1  library/controllers/thumbnailUpload.controller.php
  7. +1 1  library/functions/backend.functions.php
  8. BIN  library/images/buttons/content_uploadPageThumbnail.png
  9. BIN  library/images/buttons/thumbnailUpload.png
  10. +57 113 library/includes/editor.include.php
  11. +12 8 library/includes/secure.include.php
  12. +19 51 library/javascripts/content.js
  13. +6 6 library/javascripts/windowBox.js
  14. +6 7 library/languages/de.backend.php
  15. +6 7 library/languages/en.backend.php
  16. +6 7 library/languages/fr.backend.php
  17. +7 8 library/languages/it.backend.php
  18. +10 11 library/languages/ru.backend.php
  19. +6 3 library/leftSidebar.loader.php
  20. +267 88 library/rightSidebar.loader.php
  21. +0 6 library/styles/less/contentBlocks.less
  22. +33 1 library/styles/less/general.less
  23. +32 18 library/styles/less/layout.less
  24. +0 14 library/styles/less/page_dashboard.less
  25. +9 15 library/styles/less/page_editor.less
  26. +1 1  library/styles/less/thirdpartyFixes.less
  27. +72 51 library/styles/styles.css
  28. +143 158 library/thirdparty/javascripts/jsMultipleSelect.js
  29. +3 153 library/views/editor.php
  30. +2 2 library/views/listPages.php
  31. +1 0  library/views/search.php
  32. +1 1  library/views/windowBox/deletePageThumbnail.php
  33. +4 8 library/views/windowBox/uploadPageThumbnail.php
  34. +2 1  update.php
3  CHANGELOG
... ... @@ -1,7 +1,7 @@
1 1 feindura - Flat File Content Management System
2 2 Version
3 3 2.0
4   -Build 957
  4 +Build 958
5 5 ==================================================
6 6 Copyright (C) Fabian Vogelsteller [frozeman.de]
7 7 published under the GNU General Public License version 3
@@ -24,6 +24,7 @@ ChangeLog:
24 24
25 25 2.0
26 26
  27 + build 958: moved statistics to the timeline
27 28 build 957: implemented user permissions (hopefully complete :\)
28 29 build 956: changed login page to pure css
29 30 build 955: add messagePopUp to display status messages
2  VERSION
... ... @@ -1,3 +1,3 @@
1 1 This file is necessary for the next feindura update. Do not delete it!
2 2 2.0
3   -957
  3 +958
9 index.php
@@ -380,7 +380,7 @@
380 380 <a href="http://feindura.org" class="feinduraLogo" target="_blank"></a>
381 381 <div class="feinduraVersion toolTipRight" title="<?php echo $langFile['LOGO_TEXT'].' '.VERSION.' - Build '.BUILD; ?>::"><?php echo VERSION; ?></div>
382 382
383   - <nav class="mainMenu"<?php if(!GeneralFunctions::isAdmin()) echo ' style="width:830px"'; ?>>
  383 + <nav class="mainMenu">
384 384 <table>
385 385 <tbody>
386 386 <tr>
@@ -390,8 +390,10 @@
390 390 // CHECKS if the addons/ folder is empty
391 391 if(!GeneralFunctions::folderIsEmpty(dirname(__FILE__).'/addons/')) { ?>
392 392 <td><a href="?site=addons" tabindex="5" accesskey="a" class="addons<?php if($_GET['site'] == 'addons') echo ' active'; ?>" title="<?php echo $langFile['BUTTON_ADDONS']; ?> (A)"><span><?php echo $langFile['BUTTON_ADDONS']; ?></span></a></td>
393   - <?php } ?>
  393 + <?php }
  394 + if(GeneralFunctions::hasPermission('websiteSettings')) { ?>
394 395 <td><a href="?site=websiteSetup" tabindex="6" accesskey="w" class="websiteSetup<?php if($_GET['site'] == 'websiteSetup') echo ' active'; ?>" title="<?php echo $langFile['BUTTON_WEBSITESETTINGS']; ?> (W)"><span><?php echo $langFile['BUTTON_WEBSITESETTINGS']; ?></span></a></td>
  396 + <?php } ?>
395 397 <td><a href="?site=search" tabindex="7" accesskey="s" class="search<?php if($_GET['site'] == 'search') echo ' active'; ?>" title="<?php echo $langFile['BUTTON_SEARCH']; ?> (S)"><span><?php echo $langFile['BUTTON_SEARCH']; ?></span></a></td>
396 398 </tr>
397 399 </tbody>
@@ -621,7 +623,6 @@
621 623 include('library/content.loader.php');
622 624
623 625 ?>
624   - <a href="#top" class="fastUp" title="<?php echo $langFile['BUTTON_UP']; ?>"></a>
625 626 </div>
626 627
627 628
@@ -635,7 +636,7 @@
635 636
636 637 ?>
637 638 </div>
638   -
  639 + <a href="#top" class="fastUp" title="<?php echo $langFile['BUTTON_UP']; ?>"></a>
639 640 </div>
640 641
641 642 <!-- ******************************************************************************************* -->
35 library/classes/Search.class.php
@@ -30,9 +30,10 @@
30 30 *
31 31 * @package [Backend]
32 32 *
33   -* @version 1.2
  33 +* @version 1.3
34 34 * <br>
35 35 * <b>ChangeLog</b><br>
  36 +* - 1.3 add {@link Search::$checkPermissions}
36 37 * - 1.2 fixed search word pattern
37 38 * - 1.1 add localization and $language + $searchAllLanguages property
38 39 * - 1.0 initial release
@@ -119,6 +120,14 @@ class Search {
119 120 public $checkIfPublic = true;
120 121
121 122 /**
  123 + * If TRUE it will check if the current user has the right to edit the searched page.
  124 + *
  125 + * @var bool
  126 + * @access public
  127 + */
  128 + public $checkPermissions = false;
  129 +
  130 + /**
122 131 * if TRUE it also search in the category names.
123 132 *
124 133 * @var bool
@@ -220,7 +229,7 @@ public function find($searchwords, $category = true) {
220 229 * @param string $searchwords one or more searchwords to fing
221 230 * @param bool|int|array $category the ID or an array with IDs of the category(ies) in which should be searched, if TRUE it searches in all categories, if FALSE it searches only in the non category
222 231 *
223   - * @uses $checkPages if TRUE it searches only in pages which are public
  232 + * @uses Search::$checkIfPublic if TRUE it searches only in pages which are public
224 233 * @uses sortByPriority() to sort the page array
225 234 * @uses GeneralFunctions::isPublicCategory() to check if the category is public
226 235 * @uses GeneralFunctions::loadPages() to load the pages
@@ -247,18 +256,24 @@ protected function searchPages($searchwords, $category) {
247 256 // -> load the pages
248 257 $pages = GeneralFunctions::loadPages($category);
249 258
250   - // -> check if the pages are public
  259 + // -> CHECK if the pages are PUBLIC
251 260 if($this->checkIfPublic) {
252   - $checkPages = array();
253   - foreach($pages as $page) {
254   - if($page['public'] == true)
255   - $checkPages[] = $page;
  261 + foreach($pages as $key => $page) {
  262 + if(!$page['public'])
  263 + unset($pages[$key]);
256 264 }
257   - } else
258   - $checkPages = $pages;
  265 + }
  266 +
  267 + // -> CHECK if the user has PERMISSIONS to edit these pages
  268 + if($this->checkPermissions) {
  269 + foreach($pages as $key => $page) {
  270 + if(!GeneralFunctions::hasPermission('editablePages',$page['id']))
  271 + unset($pages[$key]);
  272 + }
  273 + }
259 274
260 275 // ->> goes through all pages and search for the keywords
261   - foreach($checkPages as $pageContent) {
  276 + foreach($pages as $pageContent) {
262 277
263 278 // var
264 279 $changeChars = array(' ','.','-','/');
6 library/controllers/editor.controller.php
@@ -29,7 +29,7 @@
29 29
30 30 // SAVE the PAGE
31 31 // -----------------------------------------------------------------------------
32   -if($_POST['save'] && isBlocked() === false && GeneralFunctions::hasPermission('editablePages',$page)) {
  32 +if($_POST['save'] && isBlocked() === false) {
33 33
34 34 // vars
35 35 $page = $_POST['id'];
@@ -175,8 +175,8 @@
175 175 }
176 176
177 177
178   -// -> LOAD PAGE only if USER have PERMISSION for that PAGE or CATEGORY
179   -if(GeneralFunctions::hasPermission('editablePages',$page) && $pageContent = GeneralFunctions::readPage($page,$category))
  178 +// -> LOAD PAGE
  179 +if($pageContent = GeneralFunctions::readPage($page,$category))
180 180 $newPage = false;
181 181 // otherwise offer NEW PAGE
182 182 else
2  library/controllers/thumbnailUpload.controller.php
@@ -235,7 +235,7 @@
235 235 // call this javascript, on the succesfull finish of the upload
236 236 echo '<script type="text/javascript">
237 237 /* <![CDATA[ */
238   - window.top.window.finishThumbnailUpload('.$frameHeight.',"'.$newFileName.$randomImage.'",'.$thumbSize[0].');
  238 + window.top.window.finishThumbnailUpload('.$frameHeight.',"'.$newFileName.$randomImage.'");
239 239 /* ]]> */
240 240 </script>';
241 241 }
2  library/functions/backend.functions.php
@@ -3101,7 +3101,7 @@ function createTagCloud($serializedTags,$minFontSize = 10,$maxFontSize = 20) {
3101 3101 // create href
3102 3102 $tagsHref = urlencode(html_entity_decode($tag['data'],ENT_QUOTES,'UTF-8'));
3103 3103
3104   - $return .= '<a href="?site=search&amp;search='.$tagsHref.'" style="font-size:'.$fontSize.'px;" class="toolTipLeft" title="[span]&quot;'.$tag['data'].'&quot;[/span] '.$GLOBALS['langFile']['STATISTICS_TEXT_SEARCHWORD_PART1'].' [span]'.$tag['number'].'[/span] '.$GLOBALS['langFile']['STATISTICS_TEXT_SEARCHWORD_PART2'].'::'.$GLOBALS['langFile']['STATISTICS_TOOLTIP_SEARCHWORD'].'">'.$tag['data'].'</a>&nbsp;&nbsp;'."\n"; //<span style="color:#888888;">('.$tag['number'].')</span>
  3104 + $return .= '<a href="?site=search&amp;search='.$tagsHref.'" style="font-size:'.$fontSize.'px;" class="toolTipTop" title="[span]&quot;'.$tag['data'].'&quot;[/span] '.$GLOBALS['langFile']['STATISTICS_TEXT_SEARCHWORD_PART1'].' [span]'.$tag['number'].'[/span] '.$GLOBALS['langFile']['STATISTICS_TEXT_SEARCHWORD_PART2'].'::'.$GLOBALS['langFile']['STATISTICS_TOOLTIP_SEARCHWORD'].'">'.$tag['data'].'</a>&nbsp;&nbsp;'."\n";
3105 3105
3106 3106 }
3107 3107 }
BIN  library/images/buttons/content_uploadPageThumbnail.png
BIN  library/images/buttons/thumbnailUpload.png
170 library/includes/editor.include.php
@@ -138,119 +138,63 @@
138 138 </script>
139 139
140 140 <div class="content">
141   -
142   - <div class="row">
143   - <div class="span2">
144   - <span href="#" id="hotKeysToogle" class="down link toolTipRight" title="::[table]
145   - [tbody]
146   - [tr]
147   - [td]
148   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field1']; ?>[/strong][/td]
149   - [td] STRG + A[/td]
150   - [/tr][tr]
151   - [td]
152   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field2']; ?>[/strong][/td]
153   - [td] STRG + C[/td]
154   - [/tr][tr]
155   - [td]
156   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field3']; ?>[/strong][/td]
157   - [td]
158   - STRG + V[/td]
159   - [/tr][tr]
160   - [td]
161   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field4']; ?>[/strong][/td]
162   - [td]
163   - STRG + X
164   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_or']; ?>[/strong] SHIFT + Del[/td]
165   - [/tr][tr]
166   - [td colspan=2 style=height: 10px;background-color:#fff;] [/td]
167   - [/tr][tr]
168   - [td]
169   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field5']; ?>[/strong][/td]
170   - [td] STRG + Z[/td]
171   - [/tr][tr]
172   - [td]
173   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field6']; ?>[/strong][/td]
174   - [td]
175   - STRG + Y
176   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_or']; ?>[/strong] STRG + SHIFT + Z[/td]
177   - [/tr][tr]
178   - [td colspan=2 style=height: 10px;background-color:#fff;] [/td]
179   - [/tr][tr]
180   - [td]
181   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field7']; ?>[/strong][/td]
182   - [td] STRG + L[/td]
183   - [/tr][tr]
184   - [td]
185   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field8']; ?>[/strong][/td]
186   - [td] STRG + B[/td]
187   - [/tr][tr]
188   - [td]
189   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field9']; ?>[/strong][/td]
190   - [td] STRG + I[/td]
191   - [/tr][tr]
192   - [td]
193   - [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field10']; ?>[/strong][/td]
194   - [td] STRG + U[/td]
195   - [/tr]
196   - [/tbody]
197   - [/table]"><?php echo $langFile['EDITOR_htmleditor_hotkeys_h1']; ?></span>
198   - </div>
199   -
200   - <div class="span6">
201   - <?php
202   -
203   - $thumbnailPath = (!empty($pageContent['thumbnail'] )) ? GeneralFunctions::Path2URI($adminConfig['uploadPath']).$adminConfig['pageThumbnail']['path'].$pageContent['thumbnail'] : '#';
204   -
205   - // -> show THUMBNAIL if the page has one
206   - $displayThumbnailContainer = ' display:none;';
207   - if(!$newPage && $categoryConfig[$pageContent['category']]['thumbnails'] && !empty($pageContent['thumbnail'])) {
208   -
209   - $displayThumbnailContainer = '';
210   - }
211   -
212   - // thumb width
213   - $thumbnailWidth = @getimagesize(DOCUMENTROOT.$adminConfig['uploadPath'].$adminConfig['pageThumbnail']['path'].$pageContent['thumbnail']);
214   - $thumbnailWidth = $thumbnailWidth[0];
215   -
216   - if($thumbnailWidth >= 200)
217   - $thumbnailWidthStyle = ' style="width:200px;"';
218   -
219   -
220   - // generates a random number to put on the end of the image, to prevent caching
221   - // $randomImage = '?'.md5(uniqid(rand(),1));
222   -
223   - // thumbnailPreviewContainer
224   - echo '<div id="thumbnailPreviewContainer" style="z-index:5; position:relative; margin-bottom: 10px; float:right; line-height:28px; text-align:center;'.$displayThumbnailContainer.'">';
225   - echo $langFile['THUMBNAIL_TEXT_NAME'].'<br>';
226   -
227   - echo '<div>';
228   - // see if the thumbnails are activated, add upload/delete buttons
229   - if($categoryConfig[$pageContent['category']]['thumbnails']) {
230   - echo '<a href="?site=deletePageThumbnail&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'" onclick="openWindowBox(\'library/views/windowBox/deletePageThumbnail.php?site='.$_GET['site'].'&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'\',\''.$langFile['BUTTON_THUMBNAIL_DELETE'].'\');return false;" title="'.$langFile['BUTTON_TOOLTIP_THUMBNAIL_DELETE'].'::"" class="deleteButton toolTipLeft"></a>';
231   - echo '<a href="?site=uploadPageThumbnail&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'" onclick="openWindowBox(\'library/views/windowBox/uploadPageThumbnail.php?site='.$_GET['site'].'&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'\',\''.$langFile['BUTTON_THUMBNAIL_UPLOAD'].'\');return false;" class="image">';
232   - echo '<img src="'.$thumbnailPath.'" id="thumbnailPreviewImage" class="thumbnail"'.$thumbnailWidthStyle.' data-width="'.$thumbnailWidth.'" alt="thumbnail">';
233   - echo '</a>';
234   - // if not only show the thumbnailPreviewImage
235   - } else
236   - echo '<img src="'.$thumbnailPath.'" id="thumbnailPreviewImage" class="thumbnail"'.$thumbnailWidthStyle.' data-width="'.$thumbnailWidth.'" alt="thumbnail">';
237   -
238   - echo '</div>';
239   - echo '</div>';
240   -
241   - // -> show the thumbnail upload button if there is no thumbnail yet
242   - $displayThumbnailUploadButton = (!$newPage && $categoryConfig[$pageContent['category']]['thumbnails'] && empty($pageContent['thumbnail']))
243   - ? '' : ' style="display:none;"';
244   -
245   - // thumbnailUploadButtonInPreviewArea
246   - echo '<a href="?site=uploadPageThumbnail&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'" id="thumbnailUploadButtonInPreviewArea" onclick="openWindowBox(\'library/views/windowBox/uploadPageThumbnail.php?site='.$_GET['site'].'&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'\',\''.$langFile['BUTTON_THUMBNAIL_UPLOAD'].'\');return false;" title="'.$langFile['BUTTON_TOOLTIP_THUMBNAIL_UPLOAD'].'::" class="uploadPageThumbnail toolTipLeft"'.$displayThumbnailUploadButton.'></a>';
247   -
248   -
249   - ?>
250   - </div>
251   - </div>
252   - </div>
  141 + <span id="hotKeysToogle" class="down link toolTipRight" title="::[table]
  142 + [tbody]
  143 + [tr]
  144 + [td]
  145 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field1']; ?>[/strong][/td]
  146 + [td] STRG + A[/td]
  147 + [/tr][tr]
  148 + [td]
  149 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field2']; ?>[/strong][/td]
  150 + [td] STRG + C[/td]
  151 + [/tr][tr]
  152 + [td]
  153 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field3']; ?>[/strong][/td]
  154 + [td]
  155 + STRG + V[/td]
  156 + [/tr][tr]
  157 + [td]
  158 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field4']; ?>[/strong][/td]
  159 + [td]
  160 + STRG + X
  161 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_or']; ?>[/strong] SHIFT + Del[/td]
  162 + [/tr][tr]
  163 + [td colspan=2 style=height: 10px;background-color:#fff;] [/td]
  164 + [/tr][tr]
  165 + [td]
  166 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field5']; ?>[/strong][/td]
  167 + [td] STRG + Z[/td]
  168 + [/tr][tr]
  169 + [td]
  170 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field6']; ?>[/strong][/td]
  171 + [td]
  172 + STRG + Y
  173 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_or']; ?>[/strong] STRG + SHIFT + Z[/td]
  174 + [/tr][tr]
  175 + [td colspan=2 style=height: 10px;background-color:#fff;] [/td]
  176 + [/tr][tr]
  177 + [td]
  178 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field7']; ?>[/strong][/td]
  179 + [td] STRG + L[/td]
  180 + [/tr][tr]
  181 + [td]
  182 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field8']; ?>[/strong][/td]
  183 + [td] STRG + B[/td]
  184 + [/tr][tr]
  185 + [td]
  186 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field9']; ?>[/strong][/td]
  187 + [td] STRG + I[/td]
  188 + [/tr][tr]
  189 + [td]
  190 + [strong]<?php echo $langFile['EDITOR_htmleditor_hotkeys_field10']; ?>[/strong][/td]
  191 + [td] STRG + U[/td]
  192 + [/tr]
  193 + [/tbody]
  194 + [/table]">
  195 + <?php echo $langFile['EDITOR_htmleditor_hotkeys_h1']; ?>
  196 + </span>
253 197
254 198 <input type="submit" value="" id="HTMLEditorSubmit" class="button submit center" title="<?php echo $langFile['FORM_BUTTON_SUBMIT']; ?>">
255   - <br><br>
  199 + </div>
256 200 </div>
20 library/includes/secure.include.php
@@ -18,7 +18,7 @@
18 18 *
19 19 * This file will be included to run the login.include.php and check untrusted data before executing the script.
20 20 *
21   - * @version 0.2
  21 + * @version 0.3
22 22 *
23 23 */
24 24
@@ -34,18 +34,11 @@
34 34 // -> check PHP vars
35 35 $_SERVER['PHP_SELF'] = XssFilter::path($_SERVER['PHP_SELF']);
36 36
37   -
38 37 // ->> CHECK the GET and POST variables
39   -// -> check CATEGORY
40 38 if(isset($_GET['category'])) $_GET['category'] = XssFilter::int($_GET['category'],0);
41 39 if(isset($_POST['category'])) $_POST['category'] = XssFilter::int($_POST['category'],0);
42   -// -> check PAGE
43 40 if(isset($_GET['page']) && $_GET['page'] !== 'new') $_GET['page'] = XssFilter::int($_GET['page'],0);
44 41 if(isset($_POST['page']) && $_POST['page'] !== 'new') $_POST['page'] = XssFilter::int($_POST['page'],0);
45   -
46   -// ->> CHECK INPUTS
47   -// ****************
48   -// -> check SITE
49 42 if(isset($_GET['site'])) $_GET['site'] = XssFilter::stringStrict($_GET['site']);
50 43
51 44 /**
@@ -53,4 +46,15 @@
53 46 */
54 47 require_once(dirname(__FILE__).'/login.include.php');
55 48
  49 +
  50 +// ->> CHECK PERMISSIONS
  51 +
  52 +// pages
  53 +if(!empty($_GET['page']) && !GeneralFunctions::hasPermission('editablePages',$_GET['page']))
  54 + unset($_GET);
  55 +
  56 +// websiteSetup
  57 +if($_GET['site'] == 'websiteSetup' && !GeneralFunctions::hasPermission('websiteSettings'))
  58 + unset($_GET['site']);
  59 +
56 60 ?>
70 library/javascripts/content.js
@@ -203,30 +203,6 @@ function removeChecked(selector) {
203 203 }
204 204
205 205 // -------------------------------------------------
206   -// auto resize of the THUMBNAIL-PREVIEW
207   -function autoResizeThumbnailPreview() {
208   - var thumbnail = $('thumbnailPreviewImage');
209   - if(thumbnail !== null) {
210   -
211   - // set tween
212   - thumbnail.set('tween',{duration: 500, transition: Fx.Transitions.Pow.easeOut});
213   -
214   - //mouseover
215   - thumbnail.addEvent('mouseenter',function() {
216   - if(thumbnail.getProperty('data-width') >= 200)
217   - thumbnail.tween('width',thumbnail.getProperty('data-width'));
218   - });
219   -
220   - // mouseout
221   - thumbnail.addEvent('mouseleave',function() {
222   - if(thumbnail.getProperty('data-width') >= 200)
223   - thumbnail.tween('width',200);
224   - });
225   -
226   - }
227   -}
228   -
229   -// -------------------------------------------------
230 206 // BLOCK SLIDE IN/OUT
231 207 function blockSlider(givenId) {
232 208
@@ -320,15 +296,12 @@ function inBlockSlider() {
320 296
321 297 $$('.inBlockSlider').each(function(inBlockSlider) {
322 298
323   - var inBlockSliderLink;
324   - $$('.inBlockSliderLink').each(function(sliderLink) {
325   - if(sliderLink.getProperty('data-inBlockSlider') == inBlockSlider.getProperty('data-inBlockSlider')) {
326   - inBlockSliderLink = sliderLink;
327   - return;
328   - }
  299 + var inBlockSliderLinks = [];
  300 + $$('.inBlockSliderLink[data-inBlockSlider="'+inBlockSlider.getProperty('data-inBlockSlider')+'"]').each(function(sliderLink) {
  301 + inBlockSliderLinks.push(sliderLink);
329 302 });
330 303
331   - if(typeOf(inBlockSliderLink) == 'null')
  304 + if(typeOf(inBlockSliderLinks[0]) === 'null')
332 305 return;
333 306
334 307 var slide = inBlockSlider.get('slide');
@@ -349,16 +322,18 @@ function inBlockSlider() {
349 322 }
350 323
351 324 // sets the SLIDE effect to the SLIDE links
352   - inBlockSliderLink.addEvent('click', function(e) {
353   - if(e.target.match('a')) e.stop();
  325 + inBlockSliderLinks.each(function(inBlockSliderLink){
  326 + inBlockSliderLink.addEvent('click', function(e) {
  327 + if(e.target.match('a')) e.stop();
354 328
355   - if(inBlockSlider.hasClass('hidden'))
356   - wrapper.fade(1);
357   - else
358   - wrapper.fade(0);
  329 + if(inBlockSlider.hasClass('hidden'))
  330 + wrapper.fade(1);
  331 + else
  332 + wrapper.fade(0);
359 333
360   - inBlockSlider.toggleClass('hidden');
361   - slide.toggle();
  334 + inBlockSlider.toggleClass('hidden');
  335 + slide.toggle();
  336 + });
362 337 });
363 338 });
364 339 }
@@ -460,7 +435,7 @@ function sidebarMenu() {
460 435 /* ---------------------------------------------------------------------------------- */
461 436 // SIDEBAR AJAX REQUEST
462 437 // send a HTML request to load the new Sidebar content
463   -function requestLeftSidebar(site,page,category) {
  438 +function loadSideBarMenu(site,page,category) {
464 439
465 440 // vars
466 441 if(!page) page = 0;
@@ -474,8 +449,8 @@ function requestLeftSidebar(site,page,category) {
474 449 var requestCategory = new Request.HTML({
475 450 url:'library/leftSidebar.loader.php',
476 451 method: 'get',
477   - data: 'site=' + site + '&category=' + category + '&page=' + page,
478   - update: leftSideBar,
  452 + data: 'site=' + site + '&category=' + category + '&page=' + page + '&loadSideBarMenu=true',
  453 + update: $('sidebarSelection'),
479 454
480 455 //-----------------------------------------------------------------------------
481 456 onRequest: function() { //-----------------------------------------------------
@@ -505,17 +480,12 @@ function requestLeftSidebar(site,page,category) {
505 480 LeavingWithoutSavingWarning();
506 481 sidebarMenu();
507 482 setToolTips();
508   -
509   - // adds static scroller
510   - $$('.staticScroller').each(function(element){
511   - new StaticScroller(element,{offset:1});
512   - });
513 483 },
514 484 //-----------------------------------------------------------------------------
515 485 //Our request will most likely succeed, but just in case, we'll add an
516 486 //onFailure method which will let the user know what happened.
517 487 onFailure: function() { //-----------------------------------------------------
518   - leftSideBar.set('html','<div class="alert alert-error">Couldn\'t load the sidebar?</div>');
  488 + sideBarMenus.set('html','<div class="alert alert-error">Couldn\'t load the sidebar?</div>');
519 489 }
520 490 });
521 491
@@ -538,7 +508,7 @@ function LeavingWithoutSavingWarning() {
538 508 if((onclick === null ||
539 509 (onclick !== null &&
540 510 onclick.toString().substr(0,13) !== 'openWindowBox' &&
541   - onclick.toString().substr(0,18) !== 'requestLeftSidebar')) &&
  511 + onclick.toString().substr(0,18) !== 'loadSideBarMenu')) &&
542 512 href !== null &&
543 513 href.toString().indexOf('#') == -1) {
544 514
@@ -558,8 +528,6 @@ function LeavingWithoutSavingWarning() {
558 528 // *---------------------------------------------------------------------------------------------------*
559 529 window.addEvent('load', function() {
560 530
561   - autoResizeThumbnailPreview();
562   -
563 531 // SCROLL to ANCHORS after loading the pages (should fix problems with slided in blocks)
564 532 var anchorId = window.location.hash.substring(1);
565 533 if($(anchorId) !== null)
12 library/javascripts/windowBox.js
@@ -239,22 +239,25 @@ function stopUploadAnimation() {
239 239 }
240 240 //--------------------------------------------------
241 241 // called on the SUCCESFULL end of the upload
242   -function finishThumbnailUpload(frameHeight,newImage,ImageWidth) {
  242 +function finishThumbnailUpload(frameHeight,newImage) {
243 243
244 244 // delete the previous preview image
245 245 if($('windowBoxThumbnailPreview') !== null)
246 246 $('windowBoxThumbnailPreview').destroy();
247 247
248 248 // shows the iframe content
249   - if($('uploadTargetFrame').tween('height',frameHeight))
  249 + $('uploadTargetFrame').tween('height',frameHeight);
250 250
251 251 // show the ok button
252 252 $('pageThumbnailOkButton').setStyle('display','inline-block');
253 253
254   - refreshThumbnailImage(newImage,ImageWidth);
  254 + refreshThumbnailImage(newImage);
255 255
256 256 // hides the from and the thumbInfo
257 257 $('uploadPageThumbnailForm').setStyle('display','none');
  258 +
  259 + // automatically close
  260 + // (function(){closeWindowBox()}).delay(1000);
258 261 }
259 262
260 263 // *---------------------------------------------------------------------------------------------------*
@@ -303,9 +306,6 @@ window.addEvent('domready', function() {
303 306
304 307 // sets the realtime
305 308 setThumbScale('windowBox_thumbWidth','windowBox_thumbWidthScale','windowBox_thumbHeight','windowBox_thumbHeightScale');
306   -
307   - /* set autoresize to THUMBNAIL PREVIEW */
308   - //autoResizeThumbnailPreview();
309 309 }
310 310 });
311 311 });
13 library/languages/de.backend.php
@@ -79,6 +79,8 @@
79 79
80 80 $langFile['HEADER_BUTTON_GOTOWEBSITE_FRONTENDEDITING'] = 'Frontend-Bearbeitung::Klick hier um die Seiten direkt in der Webseite zu bearbeiten.';
81 81
  82 +$langFile['BUTTON_MORE'] = 'mehr';
  83 +
82 84 // PERMISSIONS
83 85 $langFile['PERMISSIONS_TEXT_DONTHAVEPERMISSION'] = 'Du bist nicht berechtigt dies zu verändern.';
84 86
@@ -137,10 +139,8 @@
137 139 $langFile['STATISTICS_TEXT_FIRSTVISIT'] = 'Erster Besuch';
138 140 $langFile['STATISTICS_TEXT_LASTVISIT'] = 'Letzter Besuch';
139 141 $langFile['STATISTICS_TEXT_NOVISIT'] = 'Es hat noch niemand diese Seite besucht.';
140   -$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = 'Suchworte die von
141   -<a href ="http://www.google.de">Google</a>,
142   -<a href ="http://www.yahoo.de">Yahoo</a> oder
143   -<a href ="http://www.bing.com">Bing (MSN)</a> auf diese Seite geführt haben';
  142 +$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = '<span class="toolTipTop" title="::Die von
  143 +Google, Yahoo oder Bing (MSN) auf diese Seite geführt haben">Suchworte</span>';
144 144
145 145 $langFile['STATISTICS_TEXT_HOUR_SINGULAR'] = 'Stunde';
146 146 $langFile['STATISTICS_TEXT_HOUR_PLURAL'] = 'Stunden';
@@ -343,8 +343,7 @@
343 343
344 344 $langFile['SORTABLEPAGELIST_functions_editPage'] = 'Seite bearbeiten';
345 345
346   -$langFile['SORTABLEPAGELIST_changeStatus_linkPage'] = 'Hier klicken um den Status für Seite zu ändern.';
347   -$langFile['SORTABLEPAGELIST_changeStatus_linkCategory'] = 'Hier klicken um den Status für die Kategorie zu ändern.';
  346 +$langFile['SORTABLEPAGELIST_TIP_CHANGESTATUS'] = 'Hier klicken um den Status zu ändern.';
348 347
349 348 $langFile['SORTABLEPAGELIST_TOOLTIP_LANGUAGEMISSING'] = 'Fehlende Sprachen';
350 349
@@ -684,7 +683,7 @@
684 683 // ---------- page info
685 684 $langFile['EDITOR_TITLE_CREATEPAGE'] = 'Neue Seite erstellen';
686 685 $langFile['EDITOR_TITLE_ADDLANGUAGE'] = 'Sprache &quot;%s&quot; zur Seite hinzufügen';
687   -$langFile['EDITOR_pageinfo_lastsavedate'] = 'zuletzt bearbeitet';
  686 +$langFile['EDITOR_pageinfo_lastsavedate'] = 'zuletzt bearbeitet am';
688 687 $langFile['EDITOR_pageinfo_lastsaveauthor'] = 'von';
689 688 $langFile['EDITOR_pageinfo_linktothispage'] = 'Link zu dieser Seite';
690 689 $langFile['EDITOR_pageinfo_id'] = 'Seiten ID';
13 library/languages/en.backend.php
@@ -79,6 +79,8 @@
79 79
80 80 $langFile['HEADER_BUTTON_GOTOWEBSITE_FRONTENDEDITING'] = 'Frontend Editing::Click here to edit the pages directly in your website.';
81 81
  82 +$langFile['BUTTON_MORE'] = 'more';
  83 +
82 84 // PERMISSIONS
83 85 $langFile['PERMISSIONS_TEXT_DONTHAVEPERMISSION'] = 'You are not authorized to change this.';
84 86
@@ -137,10 +139,8 @@
137 139 $langFile['STATISTICS_TEXT_FIRSTVISIT'] = 'first visit';
138 140 $langFile['STATISTICS_TEXT_LASTVISIT'] = 'last visit';
139 141 $langFile['STATISTICS_TEXT_NOVISIT'] = 'Yet nobody visit this website.';
140   -$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = 'Searchwords which led from
141   -<a href ="http://www.google.de">Google</a>,
142   -<a href ="http://www.yahoo.de">Yahoo</a> or
143   -<a href ="http://www.bing.com">Bing (MSN)</a> to this website.';
  142 +$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = '<span class="toolTipTop" title="::Which led from
  143 +Google, Yahoo or Bing (MSN) to this website.">Searchwords</span>';
144 144
145 145 $langFile['STATISTICS_TEXT_HOUR_SINGULAR'] = 'hour';
146 146 $langFile['STATISTICS_TEXT_HOUR_PLURAL'] = 'hours';
@@ -344,8 +344,7 @@
344 344
345 345 $langFile['SORTABLEPAGELIST_functions_editPage'] = 'Edit page';
346 346
347   -$langFile['SORTABLEPAGELIST_changeStatus_linkPage'] = 'Click here to change the status of the page.';
348   -$langFile['SORTABLEPAGELIST_changeStatus_linkCategory'] = 'Click here to change the status of the category.';
  347 +$langFile['SORTABLEPAGELIST_TIP_CHANGESTATUS'] = 'Click here to change the status.';
349 348
350 349 $langFile['SORTABLEPAGELIST_TOOLTIP_LANGUAGEMISSING'] = 'Missing languages';
351 350
@@ -685,7 +684,7 @@
685 684 // ---------- page info
686 685 $langFile['EDITOR_TITLE_CREATEPAGE'] = 'Create new page';
687 686 $langFile['EDITOR_TITLE_ADDLANGUAGE'] = 'Add language &quot;%s&quot; to the page';
688   -$langFile['EDITOR_pageinfo_lastsavedate'] = 'last edit';
  687 +$langFile['EDITOR_pageinfo_lastsavedate'] = 'last edit on';
689 688 $langFile['EDITOR_pageinfo_lastsaveauthor'] = 'by';
690 689 $langFile['EDITOR_pageinfo_linktothispage'] = 'Link to this page';
691 690 $langFile['EDITOR_pageinfo_id'] = 'Page ID';
13 library/languages/fr.backend.php
@@ -79,6 +79,8 @@
79 79
80 80 $langFile['HEADER_BUTTON_GOTOWEBSITE_FRONTENDEDITING'] = 'Feindura::S&#145;il vous plaît cliquez ici pour éditer les pages directement sur votre site web.';
81 81
  82 +$langFile['BUTTON_MORE'] = 'plus';
  83 +
82 84 // PERMISSIONS
83 85 $langFile['PERMISSIONS_TEXT_DONTHAVEPERMISSION'] = 'Vous n&#145;êtes pas autorisé à changer cette situation.';
84 86
@@ -132,10 +134,8 @@
132 134 $langFile['STATISTICS_TEXT_FIRSTVISIT'] = 'première visite';
133 135 $langFile['STATISTICS_TEXT_LASTVISIT'] = 'dernière visite';
134 136 $langFile['STATISTICS_TEXT_NOVISIT'] = 'Personne a visité ce site web.';
135   -$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = 'Mot de recherche qui ont mèné
136   -<a href ="http://www.google.de">Google</a>,
137   -<a href ="http://www.yahoo.de">Yahoo</a> ou
138   -<a href ="http://www.bing.com">Bing (MSN)</a> sur ce site web';
  137 +$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = '<span class="toolTipTop" title="::Qui ont mèné
  138 +Google, Yahoo ou Bing (MSN) sur ce site web">Mot de recherche</span>';
139 139
140 140 $langFile['STATISTICS_TEXT_HOUR_SINGULAR'] = 'heur';
141 141 $langFile['STATISTICS_TEXT_HOUR_PLURAL'] = 'heures';
@@ -325,8 +325,7 @@
325 325 $langFile['SORTABLEPAGELIST_TIP_SORTBYPAGEDATE'] = 'trié par ordre chronologique';
326 326
327 327 $langFile['SORTABLEPAGELIST_functions_editPage'] = 'rédiger la page';
328   -$langFile['SORTABLEPAGELIST_changeStatus_linkPage'] = 'Cliquer ici pour changer le status du site web.';
329   -$langFile['SORTABLEPAGELIST_changeStatus_linkCategory'] = 'Cliquer ici pour changer le status de la catégorie.';
  328 +$langFile['SORTABLEPAGELIST_TIP_CHANGESTATUS'] = 'Cliquer ici pour changer le status.';
330 329
331 330 $langFile['SORTABLEPAGELIST_TOOLTIP_LANGUAGEMISSING'] = 'langues disparues';
332 331
@@ -651,7 +650,7 @@
651 650 // ---------- page info
652 651 $langFile['EDITOR_TITLE_CREATEPAGE'] = 'créer nouvelle page';
653 652 $langFile['EDITOR_TITLE_ADDLANGUAGE'] = 'Ajouter la langue &quot;%s&quot; à la page';
654   -$langFile['EDITOR_pageinfo_lastsavedate'] = 'dernièrement traité';
  653 +$langFile['EDITOR_pageinfo_lastsavedate'] = 'Dernière modification du';
655 654 $langFile['EDITOR_pageinfo_lastsaveauthor'] = 'de';
656 655 $langFile['EDITOR_pageinfo_linktothispage'] = 'lien mènant sur le site web';
657 656 $langFile['EDITOR_pageinfo_id'] = 'ID de la page';
15 library/languages/it.backend.php
@@ -79,6 +79,8 @@
79 79
80 80 $langFile['HEADER_BUTTON_GOTOWEBSITE_FRONTENDEDITING'] = 'Editing Frontale::Clicca qui per modificare le pagine direttamente nel tuo sito web.';
81 81
  82 +$langFile['BUTTON_MORE'] = 'altro';
  83 +
82 84 // PERMISSIONS
83 85 $langFile['PERMISSIONS_TEXT_DONTHAVEPERMISSION'] = 'Non sei autorizzato a cambiare questa situazione.';
84 86
@@ -126,7 +128,7 @@
126 128 $langFile['STATISTICS_TEXT_SEARCHWORD_PART2'] = 'volte a questo sito';
127 129 $langFile['STATISTICS_TOOLTIP_SEARCHWORD'] = 'Clicca qui per la ricerca di questa parola nelle pagine.';
128 130
129   -$langFile['STATISTICS_TEXT_VISITORCOUNT'] = 'visitatori totali';
  131 +$langFile['STATISTICS_TEXT_VISITORCOUNT'] = 'visitatori';
130 132 $langFile['STATISTICS_TEXT_CURRENTVISITORS'] = 'visitatori correnti';
131 133 $langFile['STATISTICS_TEXT_LASTACTIVITY'] = 'ultima attività';
132 134
@@ -137,10 +139,8 @@
137 139 $langFile['STATISTICS_TEXT_FIRSTVISIT'] = 'prima visita';
138 140 $langFile['STATISTICS_TEXT_LASTVISIT'] = 'ultima visita';
139 141 $langFile['STATISTICS_TEXT_NOVISIT'] = 'Nessuno mai ancora ha visito questo sito.';
140   -$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = 'Parole di ricerca che hanno portato da
141   -<a href ="http://www.google.de">Google</a>,
142   -<a href ="http://www.yahoo.de">Yahoo</a> or
143   -<a href ="http://www.bing.com">Bing (MSN)</a> a questo sito.';
  142 +$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = '<span class="toolTipTop" title="::Che hanno portato da
  143 +Google, Yahoo o Bing (MSN) a questo sito.">Parole di ricerca</span>';
144 144
145 145 $langFile['STATISTICS_TEXT_HOUR_SINGULAR'] = 'ora';
146 146 $langFile['STATISTICS_TEXT_HOUR_PLURAL'] = 'ore';
@@ -346,8 +346,7 @@
346 346
347 347 $langFile['SORTABLEPAGELIST_functions_editPage'] = 'Modifica Pagina';
348 348
349   -$langFile['SORTABLEPAGELIST_changeStatus_linkPage'] = 'Clicca qui per cambiare lo stato della pagina.';
350   -$langFile['SORTABLEPAGELIST_changeStatus_linkCategory'] = 'Clicca qui per cambiare lo stato della categoria.';
  349 +$langFile['SORTABLEPAGELIST_TIP_CHANGESTATUS'] = 'Clicca qui per cambiare lo stato.';
351 350
352 351 $langFile['SORTABLEPAGELIST_TOOLTIP_LANGUAGEMISSING'] = 'Lingue mancanti';
353 352
@@ -685,7 +684,7 @@
685 684 // ---------- page info
686 685 $langFile['EDITOR_TITLE_CREATEPAGE'] = 'Crea una nuova pagina';
687 686 $langFile['EDITOR_TITLE_ADDLANGUAGE'] = 'Aggiungi lingua &quot;%s&quot; alla pagina';
688   -$langFile['EDITOR_pageinfo_lastsavedate'] = 'ultima modifica';
  687 +$langFile['EDITOR_pageinfo_lastsavedate'] = 'Ultima modifica al';
689 688 $langFile['EDITOR_pageinfo_lastsaveauthor'] = 'di';
690 689 $langFile['EDITOR_pageinfo_linktothispage'] = 'Collegamento a questa pagina';
691 690 $langFile['EDITOR_pageinfo_id'] = 'ID Pagina';
21 library/languages/ru.backend.php
@@ -81,6 +81,8 @@
81 81
82 82 $langFile['HEADER_BUTTON_GOTOWEBSITE_FRONTENDEDITING'] = 'Редактировать на сайте::Нажмите что бы редактировать страницы на сайте.';
83 83
  84 +$langFile['BUTTON_MORE'] = 'гораздо';
  85 +
84 86 // PERMISSIONS
85 87 $langFile['PERMISSIONS_TEXT_DONTHAVEPERMISSION'] = 'Вы не авторизованы, чтобы изменить это.';
86 88
@@ -128,9 +130,9 @@
128 130 $langFile['STATISTICS_TEXT_SEARCHWORD_PART2'] = 'раз на сайт';
129 131 $langFile['STATISTICS_TOOLTIP_SEARCHWORD'] = 'Нажмите для поиска слова на странице.';
130 132
131   -$langFile['STATISTICS_TEXT_VISITORCOUNT'] = 'посетителей';
132   -$langFile['STATISTICS_TEXT_CURRENTVISITORS'] = 'текущие посетители';
133   -$langFile['STATISTICS_TEXT_LASTACTIVITY'] = 'последняя активность';
  133 +$langFile['STATISTICS_TEXT_VISITORCOUNT'] = 'Посетителей';
  134 +$langFile['STATISTICS_TEXT_CURRENTVISITORS'] = 'Текущие посетители';
  135 +$langFile['STATISTICS_TEXT_LASTACTIVITY'] = 'Последняя активность';
134 136
135 137 $langFile['STATISTICS_TITLE_PAGESTATISTICS'] = 'Статистика по страницам';
136 138
@@ -139,10 +141,8 @@
139 141 $langFile['STATISTICS_TEXT_FIRSTVISIT'] = 'первое посещение';
140 142 $langFile['STATISTICS_TEXT_LASTVISIT'] = 'последнее посещение';
141 143 $langFile['STATISTICS_TEXT_NOVISIT'] = 'Еще никто не посещал сайт.';
142   -$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = 'Ключевые слова по которым приходят из
143   -<a href ="http://www.google.de">Google</a>,
144   -<a href ="http://www.yahoo.de">Yahoo</a> или
145   -<a href ="http://www.bing.com">Bing (MSN)</a> на сайт.';
  144 +$langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION'] = '<span class="toolTipTop" title="::По которым приходят из
  145 +Google, Yahoo или Bing (MSN) на сайт.">Ключевые слова</span>';
146 146
147 147 $langFile['STATISTICS_TEXT_HOUR_SINGULAR'] = 'час';
148 148 $langFile['STATISTICS_TEXT_HOUR_PLURAL'] = 'часов';
@@ -349,8 +349,7 @@
349 349
350 350 $langFile['SORTABLEPAGELIST_functions_editPage'] = 'Редактировать';
351 351
352   -$langFile['SORTABLEPAGELIST_changeStatus_linkPage'] = 'Нажмите что бы изменить статус страницы.';
353   -$langFile['SORTABLEPAGELIST_changeStatus_linkCategory'] = 'Нажмите что бы изменить статус категории';
  352 +$langFile['SORTABLEPAGELIST_TIP_CHANGESTATUS'] = 'Нажмите что бы изменить.';
354 353
355 354 $langFile['SORTABLEPAGELIST_TOOLTIP_LANGUAGEMISSING'] = 'Отсутствует языках';
356 355
@@ -690,8 +689,8 @@
690 689 // ---------- page info
691 690 $langFile['EDITOR_TITLE_CREATEPAGE'] = 'Создание новой страницы';
692 691 $langFile['EDITOR_TITLE_ADDLANGUAGE'] = 'Добавить язык &quot;%s&quot; на странице';
693   -$langFile['EDITOR_pageinfo_lastsavedate'] = 'последняя редакция';
694   -$langFile['EDITOR_pageinfo_lastsaveauthor'] = '-';
  692 +$langFile['EDITOR_pageinfo_lastsavedate'] = 'В последний раз редактировали';
  693 +$langFile['EDITOR_pageinfo_lastsaveauthor'] = 'с';
695 694 $langFile['EDITOR_pageinfo_linktothispage'] = 'Ссылка на страницу';
696 695 $langFile['EDITOR_pageinfo_id'] = 'ID страницы';
697 696 $langFile['EDITOR_pageinfo_id_tip'] = 'С этим ID страница хранится на сервере.';
9 library/leftSidebar.loader.php
@@ -32,7 +32,8 @@
32 32 // or if $_GET['site'] == 'pages'
33 33 if((!empty($_GET['page']) && empty($_GET['site']))) { // || $_GET['site'] == 'pages'
34 34
35   - echo '<div id="sidebarSelection" class="staticScroller">';
  35 + if(!$_GET['loadSideBarMenu'])
  36 + echo '<div id="sidebarSelection" class="staticScroller">';
36 37
37 38 // ---- show QUICKMENU for the NONE-CATEGORY PAGES
38 39 // slide the categories menu IN, when a category is open
@@ -116,7 +117,7 @@
116 117 $categorySelected = ' class="active"';
117 118 else
118 119 $categorySelected = '';
119   - echo '<li><a href="?site=pages&amp;category='.$category['id'].'" tabindex="'.$tabIndex.'" onclick="requestLeftSidebar(\''.$_GET['site'].'\',\''.$_GET['page'].'\',\''.$category['id'].'\');return false;"'.$categorySelected.'><span'.$categoryId.'>'.GeneralFunctions::getLocalized($category,'name').'</span></a></li>';
  120 + echo '<li><a href="?site=pages&amp;category='.$category['id'].'" tabindex="'.$tabIndex.'" onclick="loadSideBarMenu(\''.$_GET['site'].'\',\''.$_GET['page'].'\',\''.$category['id'].'\');return false;"'.$categorySelected.'><span'.$categoryId.'>'.GeneralFunctions::getLocalized($category,'name').'</span></a></li>';
120 121 $tabIndex++;
121 122 }
122 123 echo '</menu>
@@ -165,7 +166,9 @@
165 166 </div>';
166 167 }
167 168
168   - echo '</div>';
  169 + // sidebarSelection end
  170 + if(!$_GET['loadSideBarMenu'])
  171 + echo '</div>';
169 172 // -----------------------------------------------------------------------------------
170 173 // SWITCH SITE
171 174 } else {
355 library/rightSidebar.loader.php
@@ -14,49 +14,274 @@
14 14 You should have received a copy of the GNU General Public License along with this program;
15 15 if not,see <http://www.gnu.org/licenses/>.
16 16 */
17   -// sidebar.loader.php version 0.7
  17 +// sidebar.loader.php version 0.8
18 18
19 19
20   -// SWITCH the &_GET['site'] var
21   -switch($_GET['site']) {
  20 +// PAGES
  21 +if(!empty($_GET['page']) && is_numeric($_GET['page'])) {
22 22
23   - // ***** dashboard sideBar -------------------------------------------------- *********
24   - case 'dashboard':
25   - break;
  23 + if(is_numeric($pageContent['id'])) {
  24 +
  25 + // vars
  26 + $pageStatistics = StatisticFunctions::readPageStatistics($pageContent['id']);
  27 +
  28 + $firstVisitDate = GeneralFunctions::formatDate($pageStatistics['firstVisit']);
  29 + $firstVisitTime = formatTime($pageStatistics['firstVisit']);
  30 + $lastVisitDate = GeneralFunctions::formatDate($pageStatistics['lastVisit']);
  31 + $lastVisitTime = formatTime($pageStatistics['lastVisit']);
  32 +
  33 + $visitTimes_max = unserialize($pageStatistics['visitTimeMax']);
  34 + $visitTimes_min = unserialize($pageStatistics['visitTimeMin']);
  35 +
  36 + if($pageStatistics['firstVisit']) {
  37 + ?>
  38 +
  39 + <div class="box">
  40 + <h1><img src="library/images/icons/statisticIcon_small.png" alt="icon" width="30" height="27"><?php echo $langFile['EDITOR_pagestatistics_h1']; ?></h1>
  41 + <!-- VISITOR COUNT -->
  42 + <div class="row">
  43 + <div class="span1">
  44 + <strong><?php echo $langFile['STATISTICS_TEXT_VISITORCOUNT']; ?></strong>
  45 + </div>
  46 + <div class="span1">
  47 + <?php echo formatHighNumber($pageStatistics['visitorCount']); ?>
  48 + <a href="#" class="down inBlockSliderLink toolTipRight" style="position:absolute;right: 10px;" data-inBlockSlider="moreStatistics" title="::<?php echo $langFile['BUTTON_MORE']; ?>">&nbsp;</a>
  49 + </div>
  50 + </div>
  51 +
  52 + <div class="statistics inBlockSlider hidden" data-inBlockSlider="moreStatistics">
  53 + <div class="spacer"></div>
  54 + <!-- FIRST VISIT -->
  55 + <div class="row">
  56 + <div class="span1">
  57 + <strong><?php echo $langFile['STATISTICS_TEXT_FIRSTVISIT']; ?></strong>
  58 + </div>
  59 + <div class="span1">
  60 + <?php echo '<span class="toolTipRight" title="'.$firstVisitTime.'::">'.$firstVisitDate.'</span>'; ?>
  61 + </div>
  62 + </div>
  63 + <!-- LAST VISIT -->
  64 + <div class="row">
  65 + <div class="span1">
  66 + <strong><?php echo $langFile['STATISTICS_TEXT_LASTVISIT']; ?></strong>
  67 + </div>
  68 + <div class="span1">
  69 + <?php echo '<span class="toolTipRight" title="'.$lastVisitTime.'::">'.$lastVisitDate.'</span>'; ?>
  70 + </div>
  71 + </div>
  72 +
  73 + <div class="spacer"></div>
  74 +
  75 + <!-- VISIT TIME MAX -->
  76 + <div class="row">
  77 + <div class="span1">
  78 + <strong><?php echo $langFile['STATISTICS_TEXT_VISITTIME_MAX']; ?></strong>
  79 + </div>
  80 + <div class="span1">
  81 + <?php
  82 + $showTimeHead = true;
  83 + if(is_array($visitTimes_max)) {
  84 + foreach($visitTimes_max as $visitTime_max) {
  85 + if($visitTimeFormated = showVisitTime($visitTime_max)) {
  86 + if($showTimeHead) {
  87 + echo '<span class="toolTipRight" title="::';
  88 + $visitTimeHead = $visitTimeFormated;
  89 + $showTimeHead = false;
  90 + } else {
  91 +
  92 + echo str_replace(array('<','>'),array('[',']'),$visitTimeFormated).'[br]';
  93 + }
  94 + }
  95 + }
  96 + echo '">'.$visitTimeHead.'</span>';
  97 + }
  98 + ?>
  99 + </div>
  100 + </div>
  101 + <!-- VISIT TIME MIN -->
  102 + <div class="row">
  103 + <div class="span1">
  104 + <strong><?php echo $langFile['STATISTICS_TEXT_VISITTIME_MIN']; ?></strong>
  105 + </div>
  106 + <div class="span1">
  107 + <?php
  108 + $showTimeHead = true;
  109 + if(is_array($visitTimes_min)) {
  110 + foreach($visitTimes_min as $visitTime_min) {
  111 + if($visitTimeFormated = showVisitTime($visitTime_min)) {
  112 + if($showTimeHead) {
  113 + echo '<span class="toolTipRight" title="::';
  114 + $visitTimeHead = $visitTimeFormated;
  115 + $showTimeHead = false;
  116 + } else {
  117 +
  118 + echo str_replace(array('<','>'),array('[',']'),$visitTimeFormated).'[br]';
  119 + }
  120 + }
  121 + }
  122 + echo '">'.$visitTimeHead.'</span>';
  123 + }
  124 + ?>
  125 + </div>
  126 + </div>
  127 + </div>
  128 +
  129 + <?php
  130 + $searchWords = createTagCloud($pageStatistics['searchWords'],6,9);
  131 +
  132 + if($searchWords) {
  133 + ?>
  134 + <div class="spacer"></div>
  135 +
  136 + <!-- SEARCHWORDS -->
  137 + <h2 class="center"><?php echo $langFile['STATISTICS_TEXT_SEARCHWORD_DESCRIPTION']; ?></h2>
  138 + <?php
  139 + echo '<div class="tagCloud">';
  140 + echo createTagCloud($pageStatistics['searchWords'],6,9);
  141 + echo '</div>';
  142 +
  143 + }
  144 + ?>
  145 + </div>
  146 +
  147 + <?php
  148 + }
  149 + //$langFile['STATISTICS_TEXT_NOVISIT']
  150 + unset($searchWords,$pageStatistics,$firstVisitDate,$firstVisitTime,$lastVisitDate,$lastVisitTime,$visitTimes_max,$visitTimes_min,$showTimeHead,$visitTimeFormated);
  151 +
  152 +
  153 + // THUMBNAIL
  154 + if($categoryConfig[$pageContent['category']]['thumbnails'] || !empty($pageContent['thumbnail'])) {
  155 + ?>
  156 + <div class="box center">
  157 + <h1><img src="library/images/icons/thumbnailIcon_middle.png" alt="icon" style="position:relative; top:-4px; margin-right:5px;"><?php echo $langFile['THUMBNAIL_TEXT_NAME']; ?></h1>
  158 + <?php
  159 +
  160 + $thumbnailPath = (!empty($pageContent['thumbnail'] )) ? GeneralFunctions::Path2URI($adminConfig['uploadPath']).$adminConfig['pageThumbnail']['path'].$pageContent['thumbnail'] : '#';
  161 +
  162 + // -> show THUMBNAIL if the page has one
  163 + $displayThumbnailContainer = ' display:none;';
  164 + if(!$newPage && $categoryConfig[$pageContent['category']]['thumbnails'] && !empty($pageContent['thumbnail'])) {
  165 + $displayThumbnailContainer = '';
  166 + }
  167 +
  168 + // generates a random number to put on the end of the image, to prevent caching
  169 + // $randomImage = '?'.md5(uniqid(rand(),1));
  170 +
  171 + // thumbnailPreviewContainer
  172 + echo '<div id="thumbnailPreviewContainer" style="position:relative;display:inline-block;'.$displayThumbnailContainer.'">';
  173 + // see if the thumbnails are activated, add upload/delete buttons
  174 + if($categoryConfig[$pageContent['category']]['thumbnails']) {
  175 + echo '<a href="?site=deletePageThumbnail&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'" onclick="openWindowBox(\'library/views/windowBox/deletePageThumbnail.php?site='.$_GET['site'].'&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'\',\''.$langFile['BUTTON_THUMBNAIL_DELETE'].'\');return false;" title="'.$langFile['BUTTON_TOOLTIP_THUMBNAIL_DELETE'].'::"" class="deleteButton toolTipLeft"></a>';
  176 + echo '<a href="?site=uploadPageThumbnail&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'" onclick="openWindowBox(\'library/views/windowBox/uploadPageThumbnail.php?site='.$_GET['site'].'&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'\',\''.$langFile['BUTTON_THUMBNAIL_UPLOAD'].'\');return false;" class="image">';
  177 + echo '<img src="'.$thumbnailPath.'" id="thumbnailPreviewImage" class="thumbnail" alt="thumbnail">';
  178 + echo '</a>';
  179 + // if not only show the thumbnailPreviewImage
  180 + } else
  181 + echo '<img src="'.$thumbnailPath.'" id="thumbnailPreviewImage" class="thumbnail" alt="thumbnail">';
26 182
27   - // ***** pages sideBar -------------------------------------------------- *********
28   - case 'pages':
29   - echo '<div id="messageBox_input" class="box">';
30   - echo '<img src="library/images/icons/hintIcon.png" class="hintIcon" alt="icon" style="width: 65px; height: 65px">'.$langFile['SORTABLEPAGELIST_info'];
31   - // -> the javascript request of the sortable gets its error messages from this input
32   - echo '<input type="hidden" id="sortablePageList_status" value="'.$langFile['SORTABLEPAGELIST_save'].'|'.$langFile['SORTABLEPAGELIST_categoryEmpty'].'">';
33   - echo '</div>';
34   - break;
35   -
36   - // ***** statisticSetup sideBar -------------------------------------------- *********
37   - case 'statisticSetup':
38   - if($deletedStatistics) {
39   - echo '<div class="box">';
40   - echo '<img src="library/images/icons/hintIcon.png" class="hintIcon" width="65" height="65">';
41   - echo $deletedStatistics;
42 183 echo '</div>';
  184 +
  185 + // -> show the thumbnail upload button if there is no thumbnail yet
  186 + $displayThumbnailUploadButton = (!$newPage && $categoryConfig[$pageContent['category']]['thumbnails'] && empty($pageContent['thumbnail']))
  187 + ? '' : ' style="display:none;"';
  188 +
  189 + // thumbnailUploadButtonInPreviewArea
  190 + echo '<a href="?site=uploadPageThumbnail&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'" id="thumbnailUploadButtonInPreviewArea" onclick="openWindowBox(\'library/views/windowBox/uploadPageThumbnail.php?site='.$_GET['site'].'&amp;category='.$_GET['category'].'&amp;page='.$_GET['page'].'\',\''.$langFile['BUTTON_THUMBNAIL_UPLOAD'].'\');return false;" title="'.$langFile['BUTTON_TOOLTIP_THUMBNAIL_UPLOAD'].'::" class="uploadPageThumbnail toolTipBottom"'.$displayThumbnailUploadButton.'></a>';
  191 + ?>
  192 + </div>
  193 + <?php
43 194 }
44   - break;
45   -
46   - // ***** websiteSetup sideBar -------------------------------------------- *********
47   - case 'websiteSetup':
48   - if(is_array($websiteConfig['localized'])) {
49   - $websiteConfigLanguages = array_keys($websiteConfig['localized']);
50   - if(is_array($websiteConfigLanguages) && is_array($websiteConfig['multiLanguageWebsite']['languages']))
51   - $websiteConfigLanguagesDiff = array_diff($websiteConfig['multiLanguageWebsite']['languages'],$websiteConfigLanguages);
52   - if($websiteConfig['multiLanguageWebsite']['active'] && !empty($websiteConfigLanguagesDiff)) {
  195 + }
  196 +
  197 +// SITES
  198 +} else {
  199 +
  200 + // SWITCH the &_GET['site'] var
  201 + switch($_GET['site']) {
  202 +
  203 + // ***** dashboard sideBar -------------------------------------------------- *********
  204 + case 'dashboard':
  205 + break;
  206 +
  207 + // ***** pages sideBar -------------------------------------------------- *********
  208 + case 'pages':
  209 + echo '<div id="messageBox_input" class="box">';
  210 + echo '<img src="library/images/icons/hintIcon.png" class="hintIcon" alt="icon" style="width: 65px; height: 65px">'.$langFile['SORTABLEPAGELIST_info'];
  211 + // -> the javascript request of the sortable gets its error messages from this input
  212 + echo '<input type="hidden" id="sortablePageList_status" value="'.$langFile['SORTABLEPAGELIST_save'].'|'.$langFile['SORTABLEPAGELIST_categoryEmpty'].'">';
  213