diff options
author | patdenice <patdenice@piwigo.org> | 2011-04-13 10:36:53 +0000 |
---|---|---|
committer | patdenice <patdenice@piwigo.org> | 2011-04-13 10:36:53 +0000 |
commit | d2da26e467aec1347ae7c314c4c8279cb4618c34 (patch) | |
tree | 62593399f01a303f03608d910a98cce98cc8b664 /plugins/LocalFilesEditor/include | |
parent | c01d0c1790613fd73efc3c78d0c12debdfb1cbc7 (diff) |
Clean code
git-svn-id: http://piwigo.org/svn/trunk@10348 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'plugins/LocalFilesEditor/include')
-rw-r--r-- | plugins/LocalFilesEditor/include/css.inc.php | 45 | ||||
-rw-r--r-- | plugins/LocalFilesEditor/include/functions.inc.php | 114 | ||||
-rw-r--r-- | plugins/LocalFilesEditor/include/lang.inc.php | 53 | ||||
-rw-r--r-- | plugins/LocalFilesEditor/include/localconf.inc.php | 26 | ||||
-rw-r--r-- | plugins/LocalFilesEditor/include/plug.inc.php | 25 | ||||
-rw-r--r-- | plugins/LocalFilesEditor/include/tpl.inc.php | 140 |
6 files changed, 403 insertions, 0 deletions
diff --git a/plugins/LocalFilesEditor/include/css.inc.php b/plugins/LocalFilesEditor/include/css.inc.php new file mode 100644 index 000000000..42c6b6920 --- /dev/null +++ b/plugins/LocalFilesEditor/include/css.inc.php @@ -0,0 +1,45 @@ +<?php + +if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); + +$edited_file = isset($_POST['edited_file']) ? $_POST['edited_file'] : ''; +$content_file = ''; + +if ((isset($_POST['edit'])) and !is_numeric($_POST['file_to_edit'])) +{ + $edited_file = $_POST['file_to_edit']; + if (file_exists($edited_file)) + { + $content_file = file_get_contents($edited_file); + } + else + { + $content_file = "/* " . l10n('locfiledit_newfile') . " */\n\n"; + } +} + +$selected = 0; +$options[] = l10n('locfiledit_choose_file'); +$options[] = '----------------------'; +$value = PHPWG_ROOT_PATH.PWG_LOCAL_DIR . "css/rules.css"; +$options[$value] = 'local / css / rules.css'; +if ($edited_file == $value) $selected = $value; +$options[] = '----------------------'; + +foreach (get_dirs($conf['themes_dir']) as $theme_id) +{ + $value = PHPWG_ROOT_PATH.PWG_LOCAL_DIR . 'css/'.$theme_id.'-rules.css'; + $options[$value] = 'local / css / '.$theme_id.'-rules.css'; + if ($edited_file == $value) + $selected = $value; +} + +$template->assign('css_lang_tpl', array( + 'OPTIONS' => $options, + 'SELECTED' => $selected + ) +); + +$codemirror_mode = 'text/css'; + +?>
\ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/functions.inc.php b/plugins/LocalFilesEditor/include/functions.inc.php new file mode 100644 index 000000000..b85887852 --- /dev/null +++ b/plugins/LocalFilesEditor/include/functions.inc.php @@ -0,0 +1,114 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based photo gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008-2011 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | 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 | +// | | +// | 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, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +/** + * returns $code if php syntax is correct + * else return false + * + * @param string php code + */ +function eval_syntax($code) +{ + $code = str_replace(array('<?php', '?>'), '', $code); + if (function_exists('token_get_all')) + { + $b = 0; + foreach (token_get_all($code) as $token) + { + if ('{' == $token) ++$b; + else if ('}' == $token) --$b; + } + if ($b) return false; + else + { + ob_start(); + $eval = eval('if(0){' . $code . '}'); + ob_end_clean(); + if ($eval === false) return false; + } + } + return '<?php' . $code . '?>'; +} + +/** + * returns true or false if $str is bool + * returns $str if $str is integer + * else "$str" + * + * @param string + */ +function editarea_quote($value) +{ + switch (gettype($value)) + { + case "boolean": + return $value ? 'true' : 'false'; + case "integer": + return $value; + default: + return '"'.$value.'"'; + } +} + +/** + * returns bak file for restore + * @param string + */ +function get_bak_file($file) +{ + if (get_extension($file) == 'php') + { + return substr_replace($file, '.bak', strrpos($file , '.'), 0); + } + else + { + return $file . '.bak'; + } +} + +/** + * returns dirs and subdirs + * retun array + * @param string + */ +function get_rec_dirs($path='') +{ + $options = array(); + if (is_dir($path)) + { + $fh = opendir($path); + while ($file = readdir($fh)) + { + $pathfile = $path . '/' . $file; + if ($file != '.' and $file != '..' and $file != '.svn' and is_dir($pathfile)) + { + $options[$pathfile] = str_replace(array('./', '/'), array('', ' / '), $pathfile); + $options = array_merge($options, get_rec_dirs($pathfile)); + } + } + closedir($fh); + } + return $options; +} + +?>
\ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/lang.inc.php b/plugins/LocalFilesEditor/include/lang.inc.php new file mode 100644 index 000000000..fe5a4f85c --- /dev/null +++ b/plugins/LocalFilesEditor/include/lang.inc.php @@ -0,0 +1,53 @@ +<?php + +if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); + +$edited_file = isset($_POST['edited_file']) ? $_POST['edited_file'] : ''; +$content_file = ''; + +if ((isset($_POST['edit'])) and !is_numeric($_POST['file_to_edit'])) +{ + $edited_file = $_POST['file_to_edit']; + if (file_exists($edited_file)) + { + $content_file = file_get_contents($edited_file); + } + else + { + $content_file = "<?php\n\n/* ".l10n('locfiledit_newfile')." */\n\n\n\n\n?>"; + } +} + +$selected = 0; +$options[] = l10n('locfiledit_choose_file'); +$options[] = '----------------------'; +foreach (get_languages() as $language_code => $language_name) +{ + $value = PHPWG_ROOT_PATH.PWG_LOCAL_DIR.'language/'.$language_code.'.lang.php'; + if ($edited_file == $value) + { + $selected = $value; + $template->assign('show_default', array( + array( + 'URL' => LOCALEDIT_PATH.'show_default.php?file=language/'.$language_code.'/common.lang.php', + 'FILE' => 'common.lang.php' + ), + array( + 'URL' => LOCALEDIT_PATH.'show_default.php?file=language/'.$language_code.'/admin.lang.php', + 'FILE' => 'admin.lang.php' + ) + ) + ); + } + $options[$value] = $language_name; +} + +$template->assign('css_lang_tpl', array( + 'OPTIONS' => $options, + 'SELECTED' => $selected + ) + ); + +$codemirror_mode = 'application/x-httpd-php'; + +?>
\ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/localconf.inc.php b/plugins/LocalFilesEditor/include/localconf.inc.php new file mode 100644 index 000000000..b801db236 --- /dev/null +++ b/plugins/LocalFilesEditor/include/localconf.inc.php @@ -0,0 +1,26 @@ +<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+$edited_file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR . "config/config.inc.php";
+
+if (file_exists($edited_file))
+{
+ $content_file = file_get_contents($edited_file);
+}
+else
+{
+ $content_file = "<?php\n\n/* ".l10n('locfiledit_newfile')." */\n\n\n\n\n?>";
+}
+
+$template->assign('show_default', array(
+ array(
+ 'URL' => LOCALEDIT_PATH.'show_default.php?file=include/config_default.inc.php',
+ 'FILE' => 'config_default.inc.php'
+ )
+ )
+);
+
+$codemirror_mode = 'application/x-httpd-php';
+
+?>
\ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/plug.inc.php b/plugins/LocalFilesEditor/include/plug.inc.php new file mode 100644 index 000000000..55c4b2dde --- /dev/null +++ b/plugins/LocalFilesEditor/include/plug.inc.php @@ -0,0 +1,25 @@ +<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+$edited_file = PHPWG_PLUGINS_PATH . "PersonalPlugin/main.inc.php";
+
+if (file_exists($edited_file))
+{
+ $content_file = file_get_contents($edited_file);
+}
+else
+{
+ $content_file = "<?php\n/*
+Plugin Name: " . l10n('locfiledit_onglet_plug') . "
+Version: 1.0
+Description: " . l10n('locfiledit_onglet_plug') . "
+Plugin URI: http://piwigo.org
+Author:
+Author URI:
+*/\n\n\n\n\n?>";
+}
+
+$codemirror_mode = 'application/x-httpd-php';
+
+?>
\ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/tpl.inc.php b/plugins/LocalFilesEditor/include/tpl.inc.php new file mode 100644 index 000000000..aea29ed9d --- /dev/null +++ b/plugins/LocalFilesEditor/include/tpl.inc.php @@ -0,0 +1,140 @@ +<?php + +if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); + +$edited_file = isset($_POST['edited_file']) ? $_POST['edited_file'] : ''; +$content_file = ''; + +if ((isset($_POST['edit'])) and !is_numeric($_POST['file_to_edit'])) +{ + $edited_file = $_POST['file_to_edit']; + if (file_exists($edited_file)) + { + $content_file = file_get_contents($edited_file); + } + else + { + $content_file = "{* " . l10n('locfiledit_newfile') . " *}\n\n"; + } +} + +$newfile_page = isset($_GET['newfile']); + +// Edit new tpl file +if (isset($_POST['create_tpl'])) +{ + $filename = $_POST['tpl_name']; + if (empty($filename)) + { + array_push($page['errors'], l10n('locfiledit_empty_filename')); + } + if (get_extension($filename) != 'tpl') + { + $filename .= '.tpl'; + } + if (!preg_match('/^[a-zA-Z0-9-_.]+$/', $filename)) + { + array_push($page['errors'], l10n('locfiledit_filename_error')); + } + if (is_numeric($_POST['tpl_model']) and $_POST['tpl_model'] != '0') + { + array_push($page['errors'], l10n('locfiledit_model_error')); + } + if (file_exists($_POST['tpl_parent'] . '/' . $filename)) + { + array_push($page['errors'], l10n('locfiledit_file_already_exists')); + } + if (!empty($page['errors'])) + { + $newfile_page = true; + } + else + { + $edited_file = $_POST['tpl_parent'] . '/' . $filename; + $content_file = ($_POST['tpl_model'] == '0') ? $new_file['tpl'] : file_get_contents($_POST['tpl_model']); + } +} + +if ($newfile_page) +{ + $filename = isset($_POST['tpl_name']) ? $_POST['tpl_name'] : ''; + $selected['model'] = isset($_POST['tpl_model']) ? $_POST['tpl_model'] : '0'; + $selected['parent'] = isset($_POST['tpl_parent']) ? $_POST['tpl_parent'] : PHPWG_ROOT_PATH . 'template-extension'; + + // Parent directories list + $options['parent'] = array(PHPWG_ROOT_PATH . 'template-extension' => 'template-extension'); + $options['parent'] = array_merge($options['parent'], get_rec_dirs(PHPWG_ROOT_PATH . 'template-extension')); + + $options['model'][] = l10n('locfiledit_empty_page'); + $options['model'][] = '----------------------'; + $i = 0; + foreach (get_extents() as $pwg_template) + { + $value = PHPWG_ROOT_PATH . 'template-extension/' . $pwg_template; + $options['model'][$value] = 'template-extension / ' . str_replace('/', ' / ', $pwg_template); + $i++; + } + foreach (get_dirs($conf['themes_dir']) as $theme_id) + { + if ($i) + { + $options['model'][] = '----------------------'; + $i = 0; + } + $dir = $conf['themes_dir'] . '/' . $theme_id . '/template/'; + if (is_dir($dir) and $content = opendir($dir)) + { + while ($node = readdir($content)) + { + if (is_file($dir.$node) and get_extension($node) == 'tpl') + { + $value = $dir . $node; + $options['model'][$value] = $theme_id . ' / ' . $node; + $i++; + } + } + } + } + if (end($options['model']) == '----------------------') + { + array_pop($options['model']); + } + // Assign variables to template + $template->assign('create_tpl', array( + 'NEW_FILE_NAME' => $filename, + 'MODEL_OPTIONS' => $options['model'], + 'MODEL_SELECTED' => $selected['model'], + 'PARENT_OPTIONS' => $options['parent'], + 'PARENT_SELECTED' => $selected['parent'] + ) + ); +} +else +{ + // List existing template extensions + $selected = 0; + $options[] = l10n('locfiledit_choose_file'); + $options[] = '----------------------'; + foreach (get_extents() as $pwg_template) + { + $value = './template-extension/' . $pwg_template; + $options[$value] = str_replace('/', ' / ', $pwg_template); + if ($edited_file == $value) $selected = $value; + } + if ($selected == 0 and !empty($edited_file)) + { + $options[$edited_file] = str_replace(array('./template-extension/', '/'), array('', ' / '), $edited_file); + $selected = $edited_file; + } + $template->assign('css_lang_tpl', array( + 'OPTIONS' => $options, + 'SELECTED' => $selected, + 'NEW_FILE_URL' => $my_base_url.'-tpl&newfile', + 'NEW_FILE_CLASS' => empty($edited_file) ? '' : 'top_right' + ) + ); +} + +$codemirror_mode = 'text/html'; + +?>
\ No newline at end of file |