Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

working on integrating the new plugin system. need only edit plugin a…

…nd integration into the pages…
  • Loading branch information...
commit 7aae787fea2e347a145133c30a52c8b656c15ab7 1 parent 11a6bbf
@frozeman authored
Showing with 582 additions and 178 deletions.
  1. +2 −0  index.php
  2. +1 −1  library/classes/Feindura.class.php
  3. +20 −18 library/classes/GeneralFunctions.class.php
  4. +128 −0 library/controllers/savePage.controller.php
  5. BIN  library/images/icons/hint_toolTipInfo.png
  6. +103 −9 library/includes/editPlugins.rightSideBar.include.php
  7. +1 −0  library/javascripts/content.js
  8. +2 −1  library/javascripts/shared.js
  9. +4 −0 library/javascripts/windowBox.js
  10. +1 −1  library/languages/de.shared.php
  11. +1 −1  library/languages/en.shared.php
  12. +1 −1  library/languages/fr.shared.php
  13. +1 −1  library/languages/it.shared.php
  14. +1 −1  library/languages/ru.shared.php
  15. +2 −1  library/leftSidebar.loader.php
  16. +0 −1  library/styles/bootstrap/less/variables.less
  17. +0 −5 library/styles/less/contentBlocks.less
  18. +6 −5 library/styles/less/general.less
  19. +5 −3 library/styles/less/js_multipleSelect.less
  20. +17 −7 library/styles/less/page_editor.less
  21. +1 −0  library/styles/less/styles.less
  22. +36 −24 library/styles/styles.css
  23. +133 −93 library/thirdparty/javascripts/jsMultipleSelect.js
  24. +1 −5 library/views/adminSetup.php
  25. +107 −0 library/views/windowBox/editPlugins.php
  26. +8 −0 update.php
View
2  index.php
@@ -354,7 +354,9 @@
<!-- ***************************************************************************************** -->
<!-- ** HEADER ******************************************************************************* -->
<header class="main">
+ <?php if(!empty($userConfig)) { ?>
<div id="sessionTimout" class="toolTipBottom blue" title="<?php echo $langFile['LOGIN_TIP_AUTOLOGOUT']; ?>::">00:00:00</div>
+ <?php } ?>
<!-- Top Anchor -->
<a id="top"></a>
View
2  library/classes/Feindura.class.php
@@ -1295,7 +1295,7 @@ public function createMetaTags($charset = 'UTF-8', $author = false, $publisher =
var feindura_deactivateFrontendEditing = '".$_SESSION['feinduraSession']['login']['deactivateFrontendEditing']."';
var feindura_langFile = {
ERRORWINDOW_TITLE: \"".$this->languageFile['errorWindow_h1']."\",
- ERROR_SAVE: \"".$this->languageFile['EDITOR_savepage_error_save']."\",
+ ERROR_SAVE: \"".$this->languageFile['ERROR_SAVEPAGE']."\",
ERROR_SETSTARTPAGE: \"".$this->languageFile['SORTABLEPAGELIST_setStartPage_error_save']."\",
FUNCTIONS_STARTPAGE_SET: \"".$this->languageFile['SORTABLEPAGELIST_functions_startPage_set']."\",
FUNCTIONS_STARTPAGE: \"".$this->languageFile['SORTABLEPAGELIST_functions_startPage']."\",
View
38 library/classes/GeneralFunctions.class.php
@@ -1104,26 +1104,28 @@ public static function savePage($pageContent) {
// write the plugins
if(is_array($pageContent['plugins'])) {
- foreach($pageContent['plugins'] as $key => $value) {
+ foreach($pageContent['plugins'] as $pluginName => $plugins) {
// save plugin settings only if plugin is activated
- if($pageContent['plugins'][$key]['active']) {
- foreach($value as $insideKey => $finalValue) {
- // CHECK BOOL VALUES and change to FALSE
- if(strpos(strtolower($insideKey),'bool') !== false ||
- is_bool($pageContent['plugins'][$key][$insideKey]) ||
- $pageContent['plugins'][$key][$insideKey] == 'true' ||
- $pageContent['plugins'][$key][$insideKey] == 'false')
- $fileContent .= "\$pageContent['plugins']['".$key."']['".$insideKey."'] = ".XssFilter::bool($pageContent['plugins'][$key][$insideKey],true).";\n";
- elseif(strpos(strtolower($insideKey),'url') !== false)
- $fileContent .= "\$pageContent['plugins']['".$key."']['".$insideKey."'] = '".XssFilter::url($pageContent['plugins'][$key][$insideKey])."';\n";
- elseif(strpos(strtolower($insideKey),'path') !== false)
- $fileContent .= "\$pageContent['plugins']['".$key."']['".$insideKey."'] = '".XssFilter::path($pageContent['plugins'][$key][$insideKey])."';\n";
- elseif(strpos(strtolower($insideKey),'number') !== false)
- $fileContent .= "\$pageContent['plugins']['".$key."']['".$insideKey."'] = '".XssFilter::number($pageContent['plugins'][$key][$insideKey])."';\n";
- else
- $fileContent .= "\$pageContent['plugins']['".$key."']['".$insideKey."'] = '".XssFilter::text($pageContent['plugins'][$key][$insideKey])."';\n";
+ foreach($plugins as $pluginNumber => $plugin) {
+ if($plugin['active']) {
+ foreach($plugin as $insideKey => $finalValue) {
+ // CHECK BOOL VALUES and change to FALSE
+ if(strpos(strtolower($insideKey),'bool') !== false ||
+ is_bool($plugin[$insideKey]) ||
+ $plugin[$insideKey] == 'true' ||
+ $plugin[$insideKey] == 'false')
+ $fileContent .= "\$pageContent['plugins']['".$pluginName."'][".$pluginNumber."]['".$insideKey."'] = ".XssFilter::bool($plugin[$insideKey],true).";\n";
+ elseif(strpos(strtolower($insideKey),'url') !== false)
+ $fileContent .= "\$pageContent['plugins']['".$pluginName."'][".$pluginNumber."]['".$insideKey."'] = '".XssFilter::url($plugin[$insideKey])."';\n";
+ elseif(strpos(strtolower($insideKey),'path') !== false)
+ $fileContent .= "\$pageContent['plugins']['".$pluginName."'][".$pluginNumber."]['".$insideKey."'] = '".XssFilter::path($plugin[$insideKey])."';\n";
+ elseif(strpos(strtolower($insideKey),'number') !== false)
+ $fileContent .= "\$pageContent['plugins']['".$pluginName."'][".$pluginNumber."]['".$insideKey."'] = '".XssFilter::number($plugin[$insideKey])."';\n";
+ else
+ $fileContent .= "\$pageContent['plugins']['".$pluginName."'][".$pluginNumber."]['".$insideKey."'] = '".XssFilter::text($plugin[$insideKey])."';\n";
+ }
+ $fileContent .= "\n";
}
- $fileContent .= "\n";
}
}
}
View
128 library/controllers/savePage.controller.php
@@ -0,0 +1,128 @@
+<?php
+/*
+ feindura - Flat File Content Management System
+ Copyright (C) Fabian Vogelsteller [frozeman.de]
+
+ This program 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.
+
+ This program 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.
+
+ You should have received a copy of the GNU General Public License along with this program;
+ if not,see <http://www.gnu.org/licenses/>.
+
+* controllers/savePage.controller.php version 0.1
+*
+* Takes data and saves it in the pageContent array of the page.
+*
+* Needs the following POST array format:
+*
+* <code>
+* array (
+* 'page' => 2,
+* 'category' => 0,
+* 'return' => false, // whether or not the saved data should be returned
+* 'language' => 'en' // let it empty if the data is not localized
+* 'type' => 'title'
+* 'data' => array(
+* 0 => 'New Title'
+* )
+* )
+* </code>
+*
+*/
+
+/**
+ * Includes the login.include.php and feindura.include.php and filter the basic data
+ */
+require_once(dirname(__FILE__)."/../includes/secure.include.php");
+
+
+// SAVE the PAGE
+// -----------------------------------------------------------------------------
+if(is_numeric($_POST['page']) && !empty($_POST['type']) && is_array($_POST['data'])) {
+
+ // var
+ $return = '';
+ $langCode = ($websiteConfig['multiLanguageWebsite']['active']) ? $_POST['language'] : 0;
+
+ // read the page
+ $pageContent = GeneralFunctions::readPage($_POST['page'],$_POST['category']);
+
+ // switch the types
+ switch ($_POST['type']) {
+ // save the plugins
+ case 'plugins':
+ $pluginsBefore = $pageContent['plugins'];
+ unset($pageContent['plugins']);
+ foreach ($_POST['data'] as $plugins) {
+ $pluginNumber = substr($plugins, strpos($plugins, '#')+1);
+ $pluginName = substr($plugins, 0 ,strpos($plugins, '#'));
+
+ // add new plugins, but prevent to overwrite existing ones
+ if(is_array($pluginsBefore[$pluginName][$pluginNumber]))
+ $pageContent['plugins'][$pluginName][$pluginNumber] = $pluginsBefore[$pluginName][$pluginNumber];
+ else
+ $pageContent['plugins'][$pluginName][$pluginNumber]['active'] = true;
+ }
+ break;
+
+ default:
+ # code...
+ break;
+ }
+
+ // ->> SAVE the PAGE
+ if(GeneralFunctions::savePage($pageContent)) {
+ // clear cache
+ GeneralFunctions::deleteFolder(dirname(__FILE__).'/../../pages/cache/');
+
+ // ->> save the FEEDS, if activated
+ saveFeeds($pageContent['category']);
+ // ->> save the SITEMAP
+ saveSitemap();
+
+ // show the saved data if return is TRUE
+ if($_POST['return']) {
+ $return = str_replace("\'", "'", $return);
+ $return = str_replace('\"', '"', $return);
+ die($return);
+ }
+
+ // ->> on FAILURE
+ } else {
+ ?>
+ <script type="text/javascript">
+ /* <![CDATA[ */
+ var errorWindow = feindura_displayError('<?php echo $langFile['errorWindow_h1']; ?>','<?php echo $langFile['ERROR_SAVEPAGE']; ?>');
+ errorWindow.fade('hide');
+ errorWindow.inject(document.body);
+ errorWindow.fade(1);
+ /* ]]> */
+ </script>
+ <?php
+ }
+
+
+
+ // -> replace the existing data with the new one
+ // if(is_array($pageContent['localized'])) {
+ // $pageContent['localized'][$langCode]['title'] = ($_POST['type'] == 'title') ? $_POST['data'] : $pageContent['localized'][$langCode]['title'];
+ // $pageContent['localized'][$langCode]['content'] = ($_POST['type'] == 'editContent') ? $_POST['data'] : $pageContent['localized'][$langCode]['content'];
+ // $tmpReturn = ($_POST['type'] == 'title') ? $pageContent['localized'][$langCode]['title'] : $tmpReturn;
+ // $tmpReturn = ($_POST['type'] == 'editContent') ? $pageContent['localized'][$langCode]['content'] : $tmpReturn;
+ // // legacy fallback
+ // } else {
+ // $pageContent['title'] = ($_POST['type'] == 'title') ? $_POST['data'] : $pageContent['title'];
+ // $pageContent['content'] = ($_POST['type'] == 'editContent') ? $_POST['data'] : $pageContent['content'];
+ // $tmpReturn = ($_POST['type'] == 'title') ? $pageContent['title'] : $tmpReturn;
+ // $tmpReturn = ($_POST['type'] == 'editContent') ? $pageContent['content'] : $tmpReturn;
+ // }
+
+
+}
+
+?>
View
BIN  library/images/icons/hint_toolTipInfo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
112 library/includes/editPlugins.rightSideBar.include.php
@@ -23,14 +23,14 @@
// $activatedPlugins from editor.php
// vars
-$blockContentEdited = (isset($pageContent['plugins']))
- ? '&nbsp;<img src="library/images/icons/edited_small.png" class="toolTipLeft" title="'.$langFile['EDITOR_pluginSettings_h1'].' '.$langFile['EDITOR_block_edited'].'::" alt="icon" width="27" height="23">'
- : '';
+// $blockContentEdited = (isset($pageContent['plugins']))
+// ? '&nbsp;<img src="library/images/icons/edited_small.png" class="toolTipLeft" title="'.$langFile['EDITOR_pluginSettings_h1'].' '.$langFile['EDITOR_block_edited'].'::" alt="icon" width="27" height="23">'
+// : '';
?>
<div class="box">
- <h1><?php echo $langFile['EDITOR_pluginSettings_h1'].$blockContentEdited; ?></h1>
+ <h1><?php echo $langFile['EDITOR_pluginSettings_h1']; ?></h1>
<ul class="jsMultipleSelect resizeOnHover" data-jsMultipleSelect="plugins" data-name="plugins" data-type="duplicates">
<li class="filter"><input type="text" placeholder="<?php echo $langFile['SORTABLEPAGELIST_headText1']; ?>"></li>
<?php
@@ -44,11 +44,11 @@
// // vars
$pluginFolderName = basename($pluginFolder);
- $pluginCountryCode = (file_exists(dirname(__FILE__).'/../../plugins/'.$pluginFolderName.'/languages/'.$_SESSION['feinduraSession']['backendLanguage'].'.php'))
+ $pluginnumberryCode = (file_exists(dirname(__FILE__).'/../../plugins/'.$pluginFolderName.'/languages/'.$_SESSION['feinduraSession']['backendLanguage'].'.php'))
? $_SESSION['feinduraSession']['backendLanguage']
: 'en';
- // unset($pluginConfig,$pluginLangFile);
- $pluginLangFile = @include(dirname(__FILE__).'/../../plugins/'.$pluginFolderName.'/languages/'.$pluginCountryCode.'.php');
+ unset($pluginLangFile);
+ $pluginLangFile = @include(dirname(__FILE__).'/../../plugins/'.$pluginFolderName.'/languages/'.$pluginnumberryCode.'.php');
// $pluginConfig = @include(dirname(__FILE__).'/../../plugins/'.$pluginFolderName.'/config.php');
// $pluginName = (isset($pluginLangFile['feinduraPlugin_title'])) ? $pluginLangFile['feinduraPlugin_title'] : $pluginFolderName;
@@ -59,7 +59,101 @@
</ul>
- <ul class="jsMultipleSelectDestination" data-jsMultipleSelect="plugins">
-
+ <ul id="pluginMultipleSelect" class="jsMultipleSelectDestination" data-jsMultipleSelect="plugins">
+ <?php
+ foreach ($pageContent['plugins'] as $pluginName => $plugins) {
+ foreach ($plugins as $pluginNumber => $plugin) {
+ echo '<li data-name="plugins" data-value="'.$pluginName.'" data-number="'.$pluginNumber.'"></li>';
+ }
+ }
+ ?>
</ul>
+
+ <a href="#" class="ok button center" id="savePluginSelectionSubmit" style="display:none"></a>
+
+ <!-- EDIT PLUGINS SCRIPTS -->
+ <script type="text/javascript">
+ /* <![CDATA[ */
+ (function(){
+
+ // ADD the LINK to EDIT THE PLUGIN TO the OPTION
+ var modifyOption = function(value,name,clone){
+ // modify the selected plugin
+ var closeButton = clone.getChildren('a')[0];
+ var newLink = new Element('a',{'text':clone.get('text').replace('×',''), 'class':'editSelection', 'href': '#', events:{
+ click: function(e){
+ e.stop();
+
+ // vars
+ number = clone.retrieve('number');
+ openWindowBox('library/views/windowBox/editPlugins.php?plugin='+value+'&number='+number,newLink.get('text'));
+ }
+ }});
+ clone.set('html','');
+ clone.grab(newLink).grab(closeButton);
+ };
+
+
+ // ->> EVENTS
+ // SELECT
+ $('pluginMultipleSelect').addEvent('select',function(value,name,clone,option){
+ modifyOption(value,name,clone);
+
+ // show the save button
+ $('savePluginSelectionSubmit').show();
+
+ });
+
+ // PARESED
+ $('pluginMultipleSelect').addEvent('parsed',modifyOption);
+
+ // REMOVE
+ $('pluginMultipleSelect').addEvent('remove',function(value,name,clone,option,select){
+ // show the save button
+ $('savePluginSelectionSubmit').show();
+ });
+
+
+ // ON SAVE
+ $('savePluginSelectionSubmit').addEvent('click',function(e){
+ e.stop();
+
+ var selectedOptions = $('pluginMultipleSelect').retrieve('selectedOptions');
+ var selectedJson = {
+ 'page': <?php echo $pageContent['id']; ?>,
+ 'category': <?php echo $pageContent['category']; ?>,
+ 'return':false,
+ 'type':'plugins',
+ 'data':[]
+ };
+
+ selectedOptions.each(function(option){
+
+ var value = option.retrieve('value');
+ var number = option.retrieve('number');
+ value += '#'+ number;
+
+ if(typeOf(value) !== 'null')
+ selectedJson.data.push(value);
+ });
+
+ new Request({
+ url: 'library/controllers/savePage.controller.php',
+ method: 'post',
+ data: selectedJson,
+ evalScripts: true,
+ onRequest: function(){
+
+ },
+ onSuccess: function(responseText){
+ console.log(responseText);
+ }
+ }).send();
+
+ });
+
+ })();
+ /* ]]> */
+ </script>
+
</div>
View
1  library/javascripts/content.js
@@ -213,6 +213,7 @@ function resizeElementsOnHover() {
var orgSize = element.getSize().y;
element.setStyle('height',startSize);
+ element.set('tween',{transition: Fx.Transitions.Quint.easeInOut})
element.addEvents({
'mouseenter': function(){
element.tween('height',orgSize);
View
3  library/javascripts/shared.js
@@ -76,7 +76,8 @@ function feindura_str_replace(s, r, c) {
function feindura_displayError(title,errorText) {
// creates the errorWindow
var errorWindow = new Element('div',{id:'errorWindow','class':'feindura', 'style':'left:50%;margin-left:-260px;'});
- errorWindow.grab(new Element('div',{'class':'feindura_top', 'html': title}));
+ errorWindow.setStyle('top',window.getScroll().y + 100);
+ errorWindow.grab(new Element('h1',{'text': title}));
var errorWindowContent = new Element('div',{'class':'content warning', 'html':'<div class="scroll">'+errorText+'</div>'});
var errorWindowOkButton = new Element('a',{'class':'ok button center', 'href':'#'});
errorWindowContent.grab(errorWindowOkButton);
View
4 library/javascripts/windowBox.js
@@ -162,8 +162,12 @@ function requestSite(site,siteTitle,dataOrFormId) {
// Inject the new DOM elements into the h1.
windowBox.grab(new Element('h1',{'text':siteTitle}),'top');
+ } else {
+ if(typeOf($$('#windowBox > h1')[0]) !== 'null')
+ $$('#windowBox > h1')[0].destroy();
}
+
/* set toolTips to all objects with a toolTip class */
setToolTips();
View
2  library/languages/de.shared.php
@@ -51,7 +51,7 @@
$sharedLangFile['errorWindow_h1'] = 'Es sind Fehler aufgetreten!';
$sharedLangFile['SORTABLEPAGELIST_setStartPage_error_save'] = '<b>Die Startseite konnte nicht festgelegt werden.</b>';
-$sharedLangFile['EDITOR_savepage_error_save'] = '<b>Die Seite konnte nicht gespeichert werden.</b>';
+$sharedLangFile['ERROR_SAVEPAGE'] = '<b>Die Seite konnte nicht gespeichert werden.</b>';
$sharedLangFile['ADMINSETUP_ERROR_PHPVERSION'] = 'FEHLER<br><br><span class="feinduraInline">fein<em>dura</em></span> benötigt mindestens PHP version'; // PHP 5.1
View
2  library/languages/en.shared.php
@@ -51,7 +51,7 @@
$sharedLangFile['errorWindow_h1'] = 'An error occured!';
$sharedLangFile['SORTABLEPAGELIST_setStartPage_error_save'] = '<b>Could not set the start page.</b>';
-$sharedLangFile['EDITOR_savepage_error_save'] = '<b>The page could not be saved.</b>';
+$sharedLangFile['ERROR_SAVEPAGE'] = '<b>The page could not be saved.</b>';
$sharedLangFile['ADMINSETUP_ERROR_PHPVERSION'] = 'ERROR<br><br><span class="feinduraInline">fein<em>dura</em></span> requires at least PHP version'; // PHP 5.2.3
// -----------------------------------------------------------------------------------------------
View
2  library/languages/fr.shared.php
@@ -53,7 +53,7 @@
$sharedLangFile['errorWindow_h1'] = 'une erreur s\'est produite!';
$sharedLangFile['SORTABLEPAGELIST_setStartPage_error_save'] = '<b>activation de la page d\'accueil impossible.</b>';
-$sharedLangFile['EDITOR_savepage_error_save'] = '<b>Cette page ne pouvait pas être sauvegardée.</b>';
+$sharedLangFile['ERROR_SAVEPAGE'] = '<b>Cette page ne pouvait pas être sauvegardée.</b>';
$sharedLangFile['ADMINSETUP_ERROR_PHPVERSION'] = 'ERREUR<br><br><span class="feinduraInline">fein<em>dura</em></span> nécessite au moins la version de PHP'; // PHP 5.2.3
// -----------------------------------------------------------------------------------------------
View
2  library/languages/it.shared.php
@@ -51,7 +51,7 @@
$sharedLangFile['errorWindow_h1'] = 'Si &#232; verificato un errore!';
$sharedLangFile['SORTABLEPAGELIST_setStartPage_error_save'] = '<b>Impossibile impostare la pagina iniziale.</b>';
-$sharedLangFile['EDITOR_savepage_error_save'] = '<b>La pagina non può essere salvata.</b>';
+$sharedLangFile['ERROR_SAVEPAGE'] = '<b>La pagina non può essere salvata.</b>';
$sharedLangFile['ADMINSETUP_ERROR_PHPVERSION'] = 'ERRORE<br><br><span class="feinduraInline">fein<em>dura</em></span> richiede almeno la versione PHP 5.2.3'; // PHP 5.2.3
// -----------------------------------------------------------------------------------------------
View
2  library/languages/ru.shared.php
@@ -53,7 +53,7 @@
$sharedLangFile['errorWindow_h1'] = 'Произошла ошибка!';
$sharedLangFile['SORTABLEPAGELIST_setStartPage_error_save'] = '<b>Не удается установить главной страницей.</b>';
-$sharedLangFile['EDITOR_savepage_error_save'] = '<b>Не удается сохранить страницу.</b>';
+$sharedLangFile['ERROR_SAVEPAGE'] = '<b>Не удается сохранить страницу.</b>';
$sharedLangFile['ADMINSETUP_ERROR_PHPVERSION'] = 'ОШИБКА<br><br><span class="feinduraInline">fein<em>dura</em></span> требует более новую версию PHP'; // PHP 5.2.3
// -----------------------------------------------------------------------------------------------
View
3  library/leftSidebar.loader.php
@@ -201,12 +201,13 @@
echo '</div></div>';
+
echo '<div class="spacer"></div>';
// -> SHOW USERs
echo '<h2><img src="library/images/icons/userIcon_small.png" alt="icon" width="22" height="21"> '.$langFile['DASHBOARD_TITLE_USER'].'</h2>';
echo '<div class="content">';
- if(is_array($userConfig)) {
+ if(!empty($userConfig) && is_array($userConfig)) {
// list user
echo '<ul class="sidebarListUsers unstyled">';
View
1  library/styles/bootstrap/less/variables.less
@@ -49,7 +49,6 @@
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace;
-@baseFontSize: 13px;
@baseFontFamily: @sansFontFamily;
@baseLineHeight: 18px;
@altFontFamily: @serifFontFamily;
View
5 library/styles/less/contentBlocks.less
@@ -140,11 +140,6 @@
margin-top: 0px !important;
}
- // center the submit button
- input.submit.center {
- margin-left: 353px;
- }
-
// ALERT BOXES (general)
&.alert {
View
11 library/styles/less/general.less
@@ -141,7 +141,7 @@ label.toolTipRight,
label.toolTipTop,
label.toolTipBottom {
background: url("../images/icons/hint_toolTipInfo.png") no-repeat right center;
- padding-right: 15px;
+ padding-right: 18px;
}
span.toolTipLeft.noMark,
span.toolTipRight.noMark,
@@ -163,9 +163,9 @@ span.warning {
span.hint {
display: inline-block;
- padding-left: 16px;
+ padding-left: 18px;
background: url("../images/icons/hint_toolTipInfo.png") no-repeat;
- background-position: 0px 4px;
+ background-position: left center;
font-size: 12px;
color: @colorBrown;
}
@@ -711,9 +711,10 @@ a.button {
text-decoration: none;
}
-a.button.center {
+a.button.center,
+input.submit.button.center {
left: 50%;
- margin-left: -26px;
+ margin-left: -26px !important;
}
// SUBMIT
View
8 library/styles/less/js_multipleSelect.less
@@ -62,11 +62,13 @@ ul.jsMultipleSelectDestination {
li {
cursor: auto !important;
+ padding-right: 18px;
- a {
- position: relative;
+ a.remove {
+ position: absolute;
display: none;
- margin-top: -1px;
+ top: 3px;
+ right: 6px;
padding: 0;
background: none;
float: right;
View
24 library/styles/less/page_editor.less
@@ -29,7 +29,8 @@ div.rteHide {
input.submit {
float:right;
- margin-top: -30px;
+ left: 0 !important;
+ margin-top: -10px;
margin-bottom: 10px;
margin-right: 353px;
}
@@ -73,18 +74,27 @@ div.rteHide {
// position: relative;
margin: 2px 0 !important;
padding: 4px 10px !important;
+
+ a.editSelection {
+ padding-left: 0;
+ background-image: none;
+ }
+ &:active {
+ #shadow >.inner(0,1px,4px,0.3);
+ }
}
li.jsMultipleSelectOption:last-child {
margin-bottom: 0 !important;
}
li.filter {
margin-bottom: 5px !important;
- }
- li.filter input {
- position: absolute;
- top: 3px;
- left: 5px;
- width: 83%;
+
+ input {
+ position: absolute;
+ top: 3px;
+ left: 5px;
+ width: 83%;
+ }
}
}
View
1  library/styles/less/styles.less
@@ -43,6 +43,7 @@
// DELETE these LINES FROM the "bootstrap/less/variables.less", to allow these rules to apply
+ @baseFontSize: 14px;
@gridColumns: 8;
@gridColumnWidth: 81px; // 84px - 2*20px padding of the div.content
@gridGutterWidth: 16px;
View
60 library/styles/styles.css
@@ -187,7 +187,7 @@
.feindura body {
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 13px;
+ font-size: 14px;
line-height: 18px;
color: #333333;
background-color: #ffffff;
@@ -358,7 +358,7 @@
margin: 0 0 9px;
}
.feindura p small {
- font-size: 11px;
+ font-size: 12px;
color: #999999;
}
.feindura .lead {
@@ -562,7 +562,7 @@
.feindura pre {
padding: 0 3px 2px;
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
- font-size: 12px;
+ font-size: 13px;
color: #333333;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
@@ -578,7 +578,7 @@
display: block;
padding: 8.5px;
margin: 0 0 9px;
- font-size: 12.025px;
+ font-size: 12.950000000000001px;
line-height: 18px;
word-break: break-all;
word-wrap: break-word;
@@ -617,7 +617,7 @@
width: 100%;
padding: 0;
margin-bottom: 27px;
- font-size: 19.5px;
+ font-size: 21px;
line-height: 36px;
color: #333333;
border: 0;
@@ -632,7 +632,7 @@
.feindura button,
.feindura select,
.feindura textarea {
- font-size: 13px;
+ font-size: 14px;
font-weight: normal;
line-height: 18px;
}
@@ -667,7 +667,7 @@
height: 18px;
padding: 4px;
margin-bottom: 9px;
- font-size: 13px;
+ font-size: 14px;
line-height: 18px;
color: #555555;
}
@@ -2116,7 +2116,7 @@
*zoom: 1;
padding: 4px 10px 4px;
margin-bottom: 0;
- font-size: 13px;
+ font-size: 14px;
line-height: 18px;
*line-height: 20px;
color: #333333;
@@ -2212,7 +2212,7 @@
}
.feindura .btn-large {
padding: 9px 14px;
- font-size: 15px;
+ font-size: 16px;
line-height: normal;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
@@ -2223,7 +2223,7 @@
}
.feindura .btn-small {
padding: 5px 9px;
- font-size: 11px;
+ font-size: 12px;
line-height: 16px;
}
.feindura .btn-small [class^="icon-"] {
@@ -2231,7 +2231,7 @@
}
.feindura .btn-mini {
padding: 2px 6px;
- font-size: 11px;
+ font-size: 12px;
line-height: 14px;
}
.feindura .btn-primary,
@@ -3837,7 +3837,7 @@
}
.feindura .label,
.feindura .badge {
- font-size: 10.998px;
+ font-size: 11.844px;
font-weight: bold;
line-height: 14px;
color: #ffffff;
@@ -4421,7 +4421,7 @@
.feindura label.toolTipTop,
.feindura label.toolTipBottom {
background: url("../images/icons/hint_toolTipInfo.png") no-repeat right center;
- padding-right: 15px;
+ padding-right: 18px;
}
.feindura span.toolTipLeft.noMark,
.feindura span.toolTipRight.noMark,
@@ -4441,9 +4441,9 @@
}
.feindura span.hint {
display: inline-block;
- padding-left: 16px;
+ padding-left: 18px;
background: url("../images/icons/hint_toolTipInfo.png") no-repeat;
- background-position: 0px 4px;
+ background-position: left center;
font-size: 12px;
color: #d49c5c;
}
@@ -5004,9 +5004,10 @@
padding: 0;
text-decoration: none;
}
-.feindura a.button.center {
+.feindura a.button.center,
+.feindura input.submit.button.center {
left: 50%;
- margin-left: -26px;
+ margin-left: -26px !important;
}
.feindura input.submit,
.feindura a.submit,
@@ -6591,9 +6592,6 @@
.feindura .mainContent .block h2 + .verticalSeparator {
margin-top: 0px !important;
}
-.feindura .mainContent .block input.submit.center {
- margin-left: 353px;
-}
.feindura .mainContent .block.alert {
border: none;
}
@@ -7524,7 +7522,8 @@
}
.feindura .editor input.submit {
float: right;
- margin-top: -30px;
+ left: 0 !important;
+ margin-top: -10px;
margin-bottom: 10px;
margin-right: 353px;
}
@@ -7560,6 +7559,17 @@
margin: 2px 0 !important;
padding: 4px 10px !important;
}
+.feindura #rightSidebar li.jsMultipleSelectOption a.editSelection,
+.feindura #rightSidebar li.filter a.editSelection {
+ padding-left: 0;
+ background-image: none;
+}
+.feindura #rightSidebar li.jsMultipleSelectOption:active,
+.feindura #rightSidebar li.filter:active {
+ -webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.30000000000000004);
+ -moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.30000000000000004);
+ box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.30000000000000004);
+}
.feindura #rightSidebar li.jsMultipleSelectOption:last-child {
margin-bottom: 0 !important;
}
@@ -8065,11 +8075,13 @@
}
.feindura ul.jsMultipleSelectDestination li {
cursor: auto !important;
+ padding-right: 18px;
}
-.feindura ul.jsMultipleSelectDestination li a {
- position: relative;
+.feindura ul.jsMultipleSelectDestination li a.remove {
+ position: absolute;
display: none;
- margin-top: -1px;
+ top: 3px;
+ right: 6px;
padding: 0;
background: none;
float: right;
View
226 library/thirdparty/javascripts/jsMultipleSelect.js
@@ -17,6 +17,7 @@ provides: [jsMultipleSelect]
*/
var jsMultipleSelect = new Class({
Implements: [Options,Events],
+
options: {
highlightColor: '#cedee6',
removeButton: new Element('a',{'html':'&#215;'}),
@@ -42,72 +43,131 @@ var jsMultipleSelect = new Class({
// vars
var jsMultipleSelectId = jsMultipleSelectDestination.getProperty('data-jsMultipleSelect'); // to allocate the selection boxes
+ var removedOptions = [];// removed from the option boxes
+ var selectedOptions = [];
+
+ jsMultipleSelectDestination.store('removedOptions',removedOptions);
+ jsMultipleSelectDestination.store('selectedOptions',selectedOptions);
+
var jsMultipleSelectDestinationBg = jsMultipleSelectDestination.getStyle('background-color');
- var removedItems = [];
// CLOSE FUNCTION
var closeFunction = function() {
var clone = this.getParent('li');
- var item = clone.retrieve('item');
- var duplicateCount = item.retrieve('duplicateCount');
+ var option = clone.retrieve('option');
- if(item.retrieve('remove')) {
- removedItems.erase(item);
- item.setStyle('display','block');
+ if(option.retrieve('remove')) {
+ removedOptions.erase(option);
+ option.setStyle('display','block');
}
- if(item.retrieve('duplicate'))
- item.store('duplicateCount',--duplicateCount);
clone.dispose();
+
+ selectedOptions.erase(clone);
+
+ // fire event
+ jsMultipleSelectDestination.fireEvent('remove',[option.getProperty('data-value'),option.getParent('ul.jsMultipleSelect').getProperty('data-name'),clone,option,option.getParent('ul.jsMultipleSelect')]);
+ };
+
+ // GET DUPLICATE NUMBER
+ // gets the next higher number of an already injected option, is one option number missing, it will fill thsi one first
+ var getDuplicateNumber = function(orgOption) {
+ var highestNumber = 0;
+ var storedNumbers = [];
+ var countedNumbers = [];
+ var count = 1;
+
+ jsMultipleSelectDestination.getChildren('li.jsMultipleSelectOption').each(function(clone){
+ if(orgOption == clone.retrieve('option')) {
+ storedNumbers.push(clone.retrieve('number'));
+ countedNumbers.push(count++);
+ if(clone.retrieve('number') >= highestNumber) {
+ highestNumber = clone.retrieve('number');
+ }
+ }
+ });
+
+ // get the missing numbers
+ for (var i = 0; i < storedNumbers.length; i++) {
+ countedNumbers.erase(storedNumbers[i]);
+ }
+ // use either a missing number or the next highest number
+ if(countedNumbers.length > 0)
+ return countedNumbers[0];
+ else
+ return ++highestNumber;
+ };
+
+
+ // PREPARE the OPTION to INJECT
+ var prepareInjectOption = function(option,clone,number) {
+
+ var injectOption = (option.retrieve('duplicate')) ? clone.clone() : clone;
+ var duplicateNumber = (number) ? Number(number) : getDuplicateNumber(option);
+
+ injectOption.setProperty('data-number',duplicateNumber);
+
+ injectOption.store('number',duplicateNumber);
+ injectOption.store('value',injectOption.getProperty('data-value'));
+ injectOption.store('name',injectOption.getProperty('data-name'));
+ injectOption.store('option',option);
+
+ if(option.retrieve('duplicate')) {
+ // add the remove function to the cloned option
+ injectOption.getChildren('a.'+self.options.removeButtonClass).addEvent('click',closeFunction);
+
+ // add a number to the duplicated option
+ if(duplicateNumber > 1)
+ injectOption.grab(new Element('span',{'text':' #'+duplicateNumber}));
+ }
+
+ return injectOption;
};
+ // CLEAR DESTINATION
+ $$('a.clearJsMultipleSelect[data-jsMultipleSelect="'+jsMultipleSelectId+'"]').each(function(clearButton){
+ clearButton.addEvent('click',function(e){
+ e.stop();
+ jsMultipleSelectDestination.getElements('li.jsMultipleSelectOption').dispose();
+
+ $$('.jsMultipleSelect[data-jsMultipleSelect="'+jsMultipleSelectId+'"] li.jsMultipleSelectOption').each(function(option){
+ if(option.retrieve('remove')) {
+ removedOptions.erase(option);
+ option.setStyle('display','block');
+ }
+ if(option.retrieve('duplicate'))
+ option.store('number',0);
+
+ selectedOptions = [];
+ });
+ });
+ });
+
// GO THROUGH ALL OPTION BOXES
$$('.jsMultipleSelect[data-jsMultipleSelect="'+jsMultipleSelectId+'"]').each(function(jsMultipleSelect){
// vars
- var items = [];
+ var options = [];
var name = jsMultipleSelect.getProperty('data-name'); // later the inputs anme attribute
- // setup CLEAR DESTINATION
- $$('a.clearJsMultipleSelect').each(function(clearButton){
- if(clearButton.getProperty('data-jsMultipleSelect') == jsMultipleSelectId) {
- clearButton.addEvent('click',function(e){
- e.stop();
- jsMultipleSelectDestination.getElements('li.jsMultipleSelectOption').dispose();
-
- items.each(function(item){
- var duplicateCount = item.retrieve('duplicateCount');
- if(item.retrieve('remove')) {
- removedItems.erase(item);
- item.setStyle('display','block');
- }
- if(item.retrieve('duplicate'))
- item.store('duplicateCount',1);
-
- });
- });
- }
- });
// ADD SELECTIONS
- jsMultipleSelect.getChildren('li.jsMultipleSelectOption').each(function(item){
+ jsMultipleSelect.getChildren('li.jsMultipleSelectOption').each(function(option){
// vars
- var duplicateCount = 1;
- items.push(item);
- item.setStyle('cursor','pointer');
- var value = item.getProperty('data-value');
+ options.push(option);
+ option.setStyle('cursor','pointer');
+ var value = option.getProperty('data-value');
// store values
- item.store('duplicateCount',duplicateCount);
- // item can be cloned or will be removed
- item.store('remove',(item.getProperty('data-type') === 'remove' || item.getParent('ul.jsMultipleSelect').getProperty('data-type') === 'remove'));
- // item can be add multiple times
- item.store('duplicate',(item.getProperty('data-type') === 'duplicates' || item.getParent('ul.jsMultipleSelect').getProperty('data-type') === 'duplicates'));
+ // option can be cloned or will be removed
+ option.store('remove',(option.getProperty('data-type') === 'remove' || option.getParent('ul.jsMultipleSelect').getProperty('data-type') === 'remove'));
+ // option can be add multiple times
+ option.store('duplicate',(option.getProperty('data-type') === 'duplicates' || option.getParent('ul.jsMultipleSelect').getProperty('data-type') === 'duplicates'));
// create clone, which will be add to the ul.jsMultipleSelectDestination
- var clone = item.clone();
+ var clone = option.clone();
clone.setStyle('cursor','auto');
// add close button
@@ -124,36 +184,26 @@ var jsMultipleSelect = new Class({
clone.grab(close,'bottom');
// store a reference to the clone
- item.store('clone',clone);
+ option.store('clone',clone);
// add click event
- item.addEvent('click',function() {
- duplicateCount = item.retrieve('duplicateCount');
-
- var injectItem = (item.retrieve('duplicate')) ? clone.clone() : clone;
- // give the injected item a reference to the original item
- injectItem.store('item',item);
-
- // add event to the duplicated item
- if(item.retrieve('duplicate')) {
- injectItem.getChildren('a.'+self.options.removeButtonClass).addEvent('click',closeFunction);
- if(duplicateCount > 1) {
- injectItem.grab(new Element('span',{'text':' #'+duplicateCount}));
- }
- item.store('duplicateCount',++duplicateCount);
- }
+ option.addEvent('click',function() {
+ if(!jsMultipleSelectDestination.contains(clone) || option.retrieve('duplicate')) {
+
+ var injectOption = prepareInjectOption(option,clone);
+ injectOption.inject(jsMultipleSelectDestination);
- if(!jsMultipleSelectDestination.contains(clone) || item.retrieve('duplicate')) {
- injectItem.inject(jsMultipleSelectDestination);
jsMultipleSelectDestination.highlight(self.options.highlightColor, jsMultipleSelectDestinationBg);
- if(item.retrieve('remove')) {
- removedItems.push(item);
- item.setStyle('display','none');
+ if(option.retrieve('remove')) {
+ removedOptions.push(option);
+ option.setStyle('display','none');
}
+ selectedOptions.push(injectOption);
+
// fire event
- jsMultipleSelectDestination.fireEvent('select',[value,name,item,injectItem,jsMultipleSelect]);
+ jsMultipleSelectDestination.fireEvent('select',[value,name,injectOption,option,jsMultipleSelect]);
}
});
});
@@ -187,63 +237,53 @@ var jsMultipleSelect = new Class({
// ->> FILTER the PAGES
if(filterValue.length > 0) {
close.setStyle('display','block');
- items.each(function(item) {
- var itemName = item.get('text');
- if(typeOf(itemName) !== 'null' && itemName.toLowerCase().contains(filterValue.toLowerCase())) {
- if(!removedItems.contains(item))
- item.setStyle('display','block');
+ options.each(function(option) {
+ var optionName = option.get('text');
+ if(typeOf(optionName) !== 'null' && optionName.toLowerCase().contains(filterValue.toLowerCase())) {
+ if(!removedOptions.contains(option))
+ option.setStyle('display','block');
} else {
- item.setStyle('display','none');
+ option.setStyle('display','none');
}
});
- // else SHOW ALL ITEMS AGAIN
+ // else SHOW ALL OPTIONS AGAIN
} else {
close.setStyle('display','none');
- items.each(function(item) {
- if(!removedItems.contains(item))
- item.setStyle('display','block');
+ options.each(function(option) {
+ if(!removedOptions.contains(option))
+ option.setStyle('display','block');
});
}
});
});
});
- // PARSE already SELECTED ITEMS (which are in the jsMultipleSelectDestination)
+ // PARSE already SELECTED OPTIONS (which are in the jsMultipleSelectDestination)
jsMultipleSelectDestination.getChildren('li[data-name]').each(function(selected) {
var value = selected.getProperty('data-value');
var name = selected.getProperty('data-name');
+ var number = selected.getProperty('data-number');
- $$('ul[data-name="'+name+'"] > li.jsMultipleSelectOption[data-value="'+value+'"]').each(function(item){
+ $$('ul[data-name="'+name+'"] > li.jsMultipleSelectOption[data-value="'+value+'"]').each(function(option){
- var clone = item.retrieve('clone');
- var duplicateCount = item.retrieve('duplicateCount');
+ var clone = option.retrieve('clone');
if(clone === null) return;
- var injectItem = (item.retrieve('duplicate')) ? clone.clone() : clone;
- // give the injected item a reference to the original item
- injectItem.store('item',item);
-
- // add event to the cloned item
- if(item.retrieve('duplicate')) {
- injectItem.getChildren('a.'+self.options.removeButtonClass).addEvent('click',closeFunction);
- if(duplicateCount > 1)
- injectItem.grab(new Element('span',{'text':' #'+duplicateCount}));
+ var injectOption = prepareInjectOption(option,clone,number);
+ injectOption.replaces(selected);
- item.store('duplicateCount',++duplicateCount);
+ if(option.retrieve('remove')) {
+ removedOptions.push(option);
+ option.setStyle('display','none');
}
- injectItem.replaces(selected);
-
- if(item.retrieve('remove')) {
- removedItems.push(item);
- item.setStyle('display','none');
- }
+ selectedOptions.push(injectOption);
// fire event
- jsMultipleSelectDestination.fireEvent('parsed',[value,name,item,injectItem,item.getParent('ul.jsMultipleSelect')]);
+ jsMultipleSelectDestination.fireEvent('parsed',[value,name,injectOption,option,option.getParent('ul.jsMultipleSelect')]);
});
});
View
6 library/views/adminSetup.php
@@ -62,11 +62,7 @@
<?php echo $langFile['ADMINSETUP_GENERAL_field1'] ?></span></label>
</div>
<div class="span5">
- <?php
- $baseUrl = preg_replace('#^[a-zA-Z]+[:]{1}[\/\/]{2}#','',$GLOBALS['adminConfig']['url']);
- $checkUrl = preg_replace('#^[a-zA-Z]+[:]{1}[\/\/]{2}#','',$_SERVER["SERVER_NAME"]);
- ?>
- <input type="text" id="cfg_url" name="cfg_url"<?php if($baseUrl != $checkUrl) echo ' style="color:#C5451F !important;" value="'.$langFile['ADMINSETUP_GENERAL_field1_inputWarningText'].'"'; else echo ' value="'.$adminConfig['url'].'"'; ?> readonly="readonly" class="toolTipRight" title="<?php echo $langFile['ADMINSETUP_GENERAL_field1_inputTip']; ?>">
+ <input type="text" id="cfg_url" name="cfg_url"<?php if($GLOBALS['adminConfig']['url'] != generateCurrentUrl()) echo ' style="color:#C5451F !important;" value="'.$langFile['ADMINSETUP_GENERAL_field1_inputWarningText'].'"'; else echo ' value="'.$adminConfig['url'].'"'; ?> readonly="readonly" class="toolTipRight" title="<?php echo $langFile['ADMINSETUP_GENERAL_field1_inputTip']; ?>">
</div>
</div>
View
107 library/views/windowBox/editPlugins.php
@@ -0,0 +1,107 @@
+<?php
+/**
+ * feindura - Flat File Content Management System
+ * Copyright (C) Fabian Vogelsteller [frozeman.de]
+ *
+ * This program 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.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License along with this program;
+ * if not,see <http://www.gnu.org/licenses/>.
+ *
+ * deletePageLanguage.php
+ *
+ * @version 0.1
+ */
+
+/**
+ * Includes the login.include.php and backend.include.php and filter the basic data
+ */
+require_once(dirname(__FILE__)."/../../includes/secure.include.php");
+
+echo ' '; // hack for safari, otherwise it throws an error that he could not find htmlentities like &ouml;
+
+// vars
+$post = (!empty($_POST)) ? $_POST : $_GET;
+$error = false;
+
+// WHEN THE FORM WAS SEND
+if($post['send'] == 'true') {
+
+ $newUserConfig = $userConfig;
+ $newUserConfig[$post['userId']]['permissions']['frontendEditing'] = $post['frontendEditing'];
+ $newUserConfig[$post['userId']]['permissions']['fileManager'] = (empty($adminConfig['uploadPath'])) ? false : $post['fileManager'];
+ $newUserConfig[$post['userId']]['permissions']['websiteSettings'] = $post['websiteSettings'];
+ $newUserConfig[$post['userId']]['permissions']['editWebsiteFiles'] = $post['editWebsiteFiles'];
+ $newUserConfig[$post['userId']]['permissions']['editStyleSheets'] = $post['editStyleSheets'];
+ $newUserConfig[$post['userId']]['permissions']['editSnippets'] = $post['editSnippets'];
+
+ $newUserConfig[$post['userId']]['permissions']['editableCategories'] = $post['editableCategories'];
+ $newUserConfig[$post['userId']]['permissions']['editablePages'] = $post['editablePages'];
+
+ if(saveUserConfig($newUserConfig)) {
+ saveActivityLog(28,$savedUsername); // <- SAVE the task in a LOG FILE
+
+ // CLOSE the windowBox, if the first part of the response is '#CLOSE#'
+ die('#CLOSE#');
+
+ } else
+ echo '<div class="alert alert-error">'.sprintf($langFile['USERSETUP_error_save'],$adminConfig['basePath']).'</div>';
+ echo '<a href="?site=userSetup" class="button ok center" onclick="closeWindowBox();return false;"></a>';
+
+// SHOW THE FORM
+} else {
+
+?>
+
+<form action="?site=editPlugins" method="post" enctype="multipart/form-data" id="editPluginsForm" onsubmit="requestSite('<?php echo $_SERVER['PHP_SELF']; ?>','','editPluginsForm');return false;" accept-charset="UTF-8">
+ <div>
+ <input type="hidden" name="send" value="true">
+ <input type="hidden" name="plugin" value="<?php echo $post['plugin']; ?>">
+ </div>
+
+ <div class="row">
+ <div class="span3 right">
+ <!-- <input type="checkbox" id="frontendEditing" name="frontendEditing" value="true"<?php if($userConfig[$post['userId']]['permissions']['frontendEditing']) echo ' checked="checked"'; echo $fmDisabled; ?>> -->
+ <?php echo $post['plugin'].$post['count']; ?>
+ </div>
+ <div class="span5">
+ <label for="frontendEditing"><?php echo $langFile['USERSETUP_USERPERMISSIONS_TEXT_FRONTENDEDITING']; ?></label>
+ </div>
+ </div>
+
+
+</form>
+
+<!-- PAGE SCRIPTS -->
+<script type="text/javascript">
+/* <![CDATA[ */
+ $('windowBox').addEvent('loaded',function(){
+
+ // adds cross browser placeholder support
+ // new PlaceholderSupport();
+
+ // // enable drag selection
+ // new jsMultipleSelect();
+
+ // // add fancy forms
+ // new FancyForm('#windowBox input[type="checkbox"], #windowBox input[type="radio"]');
+ // $$('#windowBox textarea.autogrow').each(function(textarea){
+ // new Form.AutoGrow(textarea);
+ // });
+
+ // $$('input#websiteSettings').addEvent('change',function(){
+ // if(this.checked && $('additionalWebsiteSettings') !== null)
+ // $('additionalWebsiteSettings').setStyle('display','block');
+ // else
+ // $('additionalWebsiteSettings').setStyle('display','none');
+ // });
+ });
+/* ]]> */
+</script>
+<?php } ?>
View
8 update.php
@@ -491,6 +491,14 @@ function until($version) {
: 'fade';
}
+ // if below build 958
+ if(until(958)) {
+ foreach ($pageContent['plugins'] as $pluginName => $pluginData) {
+ unset($pageContent['plugins'][$pluginName]);
+ $pageContent['plugins'][$pluginName][1] = $pluginData;
+ }
+ }
+
// -> change such a date: 2010-03-20 17:50:27 to unix timestamp
// mktime(hour,minute,seconds,month,day,year)

0 comments on commit 7aae787

Please sign in to comment.
Something went wrong with that request. Please try again.