2010-11-19 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_extensions.php: added functions "get_disabled_extensions" and "getExtensionInfo". * operation/extensions.php: erased the delete extension option. * images/dot_green.disabled.png, images/dot_red.disabled.png: added files for the table of features extension. * godmode/extensions.php: show a table of extension with features and action to disable and delete. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3606 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
8bc5c711ff
commit
7d4c6e8ba4
|
@ -1,3 +1,16 @@
|
||||||
|
2010-11-19 Miguel de Dios <miguel.dedios@artica.es>
|
||||||
|
|
||||||
|
* include/functions_extensions.php: added functions
|
||||||
|
"get_disabled_extensions" and "getExtensionInfo".
|
||||||
|
|
||||||
|
* operation/extensions.php: erased the delete extension option.
|
||||||
|
|
||||||
|
* images/dot_green.disabled.png, images/dot_red.disabled.png: added files
|
||||||
|
for the table of features extension.
|
||||||
|
|
||||||
|
* godmode/extensions.php: show a table of extension with features and
|
||||||
|
action to disable and delete.
|
||||||
|
|
||||||
2010-11-17 Miguel de Dios <miguel.dedios@artica.es>
|
2010-11-17 Miguel de Dios <miguel.dedios@artica.es>
|
||||||
|
|
||||||
* extensions/vnc_view.php: added first version of extension of to VNC view
|
* extensions/vnc_view.php: added first version of extension of to VNC view
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
|
||||||
check_login ();
|
check_login ();
|
||||||
|
|
||||||
if (! give_acl ($config['id_user'], 0, "PM")) {
|
if (! give_acl ($config['id_user'], 0, "PM")) {
|
||||||
|
@ -31,37 +30,233 @@ if (sizeof ($config['extensions']) == 0) {
|
||||||
// Header
|
// Header
|
||||||
print_page_header (__('Extensions'). " » ". __('Defined extensions'), "images/extensions.png", false, "", true, "" );
|
print_page_header (__('Extensions'). " » ". __('Defined extensions'), "images/extensions.png", false, "", true, "" );
|
||||||
|
|
||||||
|
$enterprise = (bool)get_parameter('enterprise', 0);
|
||||||
$delete = get_parameter ("delete", "");
|
$delete = get_parameter ("delete", "");
|
||||||
$name = get_parameter ("name", "");
|
$enabled = get_parameter("enabled", "");
|
||||||
|
$disabled = get_parameter("disabled", "");
|
||||||
|
|
||||||
|
|
||||||
if ($delete != ""){
|
if ($delete != ""){
|
||||||
if (!file_exists($config["homedir"]."/extensions/ext_backup"))
|
if ($enterprise) {
|
||||||
mkdir($config["homedir"]."/extensions/ext_backup");
|
if (!file_exists($config["homedir"]."/enterprise/extensions/ext_backup"))
|
||||||
$source = $config["homedir"]."/$delete.php";
|
{
|
||||||
rename ($source, $config["homedir"]."/extensions/ext_backup/$name.php");
|
mkdir($config["homedir"]."/enterprise/extensions/ext_backup");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!file_exists($config["homedir"]."/extensions/ext_backup"))
|
||||||
|
{
|
||||||
|
mkdir($config["homedir"]."/extensions/ext_backup");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($enterprise) {
|
||||||
|
$source = $config["homedir"]."/enterprise/extensions/" . $delete;
|
||||||
|
$endFile = $config["homedir"]."/enterprise/extensions/ext_backup/" . $delete;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$source = $config["homedir"]."/extensions/" . $delete;
|
||||||
|
$endFile = $config["homedir"]."/extensions/ext_backup/" . $delete;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rename($source, $endFile);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
var href = location.href.replace(/&enterprise=(0|1)&delete=.*/g, "");
|
||||||
|
location = href;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$table->width = '500px';
|
if ($enabled != '') {
|
||||||
$table->head = array ();
|
if ($enterprise) {
|
||||||
$table->head[0] = __('Name');
|
$endFile = $config["homedir"]."/enterprise/extensions/" . $enabled;
|
||||||
$table->head[1] = __('Delete');
|
$source= $config["homedir"]."/enterprise/extensions/disabled/" . $enabled;
|
||||||
$table->align[1] = "center";
|
}
|
||||||
$table->data = array ();
|
else {
|
||||||
|
$endFile = $config["homedir"]."/extensions/" . $enabled;
|
||||||
|
$source = $config["homedir"]."/extensions/disabled/" . $enabled;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($config['extensions'] as $extension) {
|
rename($source, $endFile);
|
||||||
if ($extension['godmode_function'] == '')
|
|
||||||
continue;
|
|
||||||
if ($extension['godmode_menu'] == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
$data = array ();
|
?>
|
||||||
$data[0] = '<a href="index.php?sec=gextensions&sec2='.$extension['godmode_menu']['sec2'].'" class="mn">'.$extension['godmode_menu']['name'].'</a>';
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
$data[1] = '<a href="index.php?sec=gextensions&sec2=godmode/extensions&delete='.$extension['godmode_menu']['sec2'].'&name='.$extension['godmode_menu']['name'].'" class="mn"><img src="images/cross.png"></a>';
|
var href = location.href.replace(/&enterprise=(0|1)&enabled=.*/g, "");
|
||||||
|
location = href;
|
||||||
array_push ($table->data, $data);
|
}
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($disabled != '') {
|
||||||
|
if ($enterprise) {
|
||||||
|
if (!file_exists($config["homedir"]."/enterprise/extensions/disabled"))
|
||||||
|
{
|
||||||
|
mkdir($config["homedir"]."/enterprise/extensions/disabled");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!file_exists($config["homedir"]."/extensions/disabled"))
|
||||||
|
{
|
||||||
|
mkdir($config["homedir"]."/extensions/disabled");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($enterprise) {
|
||||||
|
$source = $config["homedir"]."/enterprise/extensions/" . $disabled;
|
||||||
|
$endFile = $config["homedir"]."/enterprise/extensions/disabled/" . $disabled;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$source = $config["homedir"]."/extensions/" . $disabled;
|
||||||
|
$endFile = $config["homedir"]."/extensions/disabled/" . $disabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rename($source, $endFile);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
var href = location.href
|
||||||
|
href = href.replace(/&enterprise=(0|1)&disabled=.*/g, "");
|
||||||
|
console.log(href);
|
||||||
|
location = href;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
$extensions = getExtensionInfo();
|
||||||
|
|
||||||
|
$table->width = '95%';
|
||||||
|
|
||||||
|
$table->head = array();
|
||||||
|
$table->head[] = __('File');
|
||||||
|
$table->head[] = "<span title='" . __("Enterprise") . "'>" . __('E.') . "</span>";
|
||||||
|
$table->head[] = "<span title='" . __("Godmode Function") . "'>" . __('G.F.') . "</span>";
|
||||||
|
$table->head[] = "<span title='" . __("Godmode Menu") . "'>" . __('G.M.') . "</span>";
|
||||||
|
$table->head[] = "<span title='" . __("Operation Menu") . "'>" . __('O.M.') . "</span>";
|
||||||
|
$table->head[] = "<span title='" . __("Operation Function") . "'>" . __('O.F.') . "</span>";
|
||||||
|
$table->head[] = "<span title='" . __("Login Function") . "'>" . __('L.F.') . "</span>";
|
||||||
|
$table->head[] = "<span title='" . __("Agent operation tab") . "'>" . __('A.O.T.') . "</span>";
|
||||||
|
$table->head[] = "<span title='" . __("Agent godmode tab") . "'>" . __('A.G.T.') . "</span>";
|
||||||
|
$table->head[] = "<span title='" . __("Operation") . "'>" . __('O.') . "</span>";
|
||||||
|
|
||||||
|
$table->width = array();
|
||||||
|
$table->width[] = '30%';
|
||||||
|
$table->width[] = '22px';
|
||||||
|
$table->width[] = '44px';
|
||||||
|
$table->width[] = '44px';
|
||||||
|
$table->width[] = '44px';
|
||||||
|
$table->width[] = '44px';
|
||||||
|
$table->width[] = '66px';
|
||||||
|
$table->width[] = '66px';
|
||||||
|
$table->width[] = '44px';
|
||||||
|
|
||||||
|
$table->align = array();
|
||||||
|
$table->align[] = 'left';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
$table->align[] = 'center';
|
||||||
|
|
||||||
|
$table->data = array();
|
||||||
|
foreach ($extensions as $file => $extension) {
|
||||||
|
$data = array();
|
||||||
|
|
||||||
|
|
||||||
|
$on = '<img src="images/dot_green.png" />';
|
||||||
|
$off = '<img src="images/dot_red.png" />';
|
||||||
|
if (!$extension['enabled']) {
|
||||||
|
$on = '<img src="images/dot_green.disabled.png" />';
|
||||||
|
$off = '<img src="images/dot_red.disabled.png" />';
|
||||||
|
$data[] = '<i style="color: grey;">' . $file . '</i>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extension['enterprise']) {
|
||||||
|
$data[] = $on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extension['godmode_function']) {
|
||||||
|
$data[] = $on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extension['godmode_menu']) {
|
||||||
|
$data[] = $on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extension['operation_menu']) {
|
||||||
|
$data[] = $on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extension['operation_function']) {
|
||||||
|
$data[] = $on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extension['login_function']) {
|
||||||
|
$data[] = $on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extension['extension_ope_tab']) {
|
||||||
|
$data[] = $on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extension['extension_god_tab']) {
|
||||||
|
$data[] = $on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = $off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$extension['enabled']) {
|
||||||
|
$data[] = '<a title="' . __('Delete') . '" href="index.php?sec=gextensions&sec2=godmode/extensions&enterprise=' . (int)$extension['enterprise'] . '&delete='.$file.'" class="mn"><img src="images/cross.disabled.png"></a>' .
|
||||||
|
' <a title="' . __('Enable') . '" href="index.php?sec=gextensions&sec2=godmode/extensions&enterprise=' . (int)$extension['enterprise'] . '&enabled='.$file.'" class="mn"><img src="images/lightbulb_off.png"></a>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data[] = '<a title="' . __('Delete') . '" href="index.php?sec=gextensions&sec2=godmode/extensions&enterprise=' . (int)$extension['enterprise'] . '&delete='.$file.'" class="mn"><img src="images/cross.png"></a>' .
|
||||||
|
' <a title="' . __('Disable') . '" href="index.php?sec=gextensions&sec2=godmode/extensions&enterprise=' . (int)$extension['enterprise'] . '&disabled='.$file.'" class="mn"><img src="images/lightbulb.png"></a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$table->data[] = $data;
|
||||||
|
}
|
||||||
print_table ($table);
|
print_table ($table);
|
||||||
?>
|
?>
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 475 B |
Binary file not shown.
After Width: | Height: | Size: 508 B |
|
@ -128,6 +128,146 @@ function get_extensions ($enterprise = false) {
|
||||||
return $extensions;
|
return $extensions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_disabled_extensions() {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$extensions = array ();
|
||||||
|
|
||||||
|
$dirs = array('open' => EXTENSIONS_DIR . '/disabled', 'enterprise' => ENTERPRISE_DIR . '/' . EXTENSIONS_DIR . '/disabled');
|
||||||
|
|
||||||
|
foreach ($dirs as $type => $dir) {
|
||||||
|
$handle = false;
|
||||||
|
|
||||||
|
if (file_exists ($dir))
|
||||||
|
$handle = @opendir ($dir);
|
||||||
|
|
||||||
|
if (empty ($handle))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
$ignores = array ('.', '..');
|
||||||
|
|
||||||
|
$file = readdir ($handle);
|
||||||
|
while ($file !== false) {
|
||||||
|
if (in_array ($file, $ignores)) {
|
||||||
|
$file = readdir ($handle);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$filepath = realpath ($dir."/".$file);
|
||||||
|
if (! is_readable ($filepath) || is_dir ($filepath) || ! preg_match ("/.*\.php$/", $filepath)) {
|
||||||
|
$file = readdir ($handle);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//$content = file_get_contents($filepath);
|
||||||
|
$content = '';
|
||||||
|
|
||||||
|
$data = array();
|
||||||
|
|
||||||
|
$data['operation_menu'] = false;
|
||||||
|
if (preg_match("/<?php(\n|.)*add_operation_menu_option(\n|.)*?>/", $content)) {
|
||||||
|
$data['operation_menu'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['godmode_menu'] = false;
|
||||||
|
if (preg_match('/<\?php(\n|.)*add_godmode_menu_option(\n|.)*\?>/', $content)) {
|
||||||
|
$data['godmode_menu'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['operation_function'] = false;
|
||||||
|
if (preg_match('/<\?php(\n|.)*add_extension_main_function(\n|.)*\?>/', $content)) {
|
||||||
|
$data['operation_function'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['login_function'] = false;
|
||||||
|
if (preg_match('/<\?php(\n|.)*add_extension_login_function(\n|.)*\?>/', $content)) {
|
||||||
|
$data['login_function'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['extension_ope_tab'] = false;
|
||||||
|
if (preg_match('/<\?php(\n|.)*add_extension_opemode_tab_agent(\n|.)*\?>/', $content)) {
|
||||||
|
$data['extension_ope_tab'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['extension_god_tab'] = false;
|
||||||
|
if (preg_match('/<\?php(\n|.)*add_extension_godmode_tab_agent(\n|.)*\?>/', $content)) {
|
||||||
|
$data['extension_god_tab'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['godmode_function'] = false;
|
||||||
|
if (preg_match('/<\?php(\n|.)*add_extension_godmode_function(\n|.)*\?>/', $content)) {
|
||||||
|
$data['godmode_function'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['enterprise'] = false;
|
||||||
|
if ($type == 'enterprise') {
|
||||||
|
$data['enterprise'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['enabled'] = false;
|
||||||
|
|
||||||
|
$extensions[$file] = $data;
|
||||||
|
|
||||||
|
$file = readdir ($handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $extensions;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getExtensionInfo() {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$return = array ();
|
||||||
|
|
||||||
|
foreach($config['extensions'] as $extension) {
|
||||||
|
$data = array();
|
||||||
|
$data['godmode_function'] = false;
|
||||||
|
if (!empty($extension['godmode_function'])) {
|
||||||
|
$data['godmode_function'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['godmode_menu'] = false;
|
||||||
|
if (!empty($extension['godmode_menu'])) {
|
||||||
|
$data['godmode_menu'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['operation_function'] = false;
|
||||||
|
if (!empty($extension['main_function'])) {
|
||||||
|
$data['operation_function'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['operation_menu'] = false;
|
||||||
|
if (!empty($extension['operation_menu'])) {
|
||||||
|
$data['operation_menu'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['login_function'] = false;
|
||||||
|
if (!empty($extension['login_function'])) {
|
||||||
|
$data['login_function'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['extension_ope_tab'] = false;
|
||||||
|
if (!empty($extension['extension_ope_tab'])) {
|
||||||
|
$data['extension_ope_tab'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['extension_god_tab'] = false;
|
||||||
|
if (!empty($extension['extension_god_tab'])) {
|
||||||
|
$data['extension_god_tab'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['enterprise'] = (bool)$extension['enterprise'];
|
||||||
|
|
||||||
|
$data['enabled'] = true;
|
||||||
|
|
||||||
|
$return[$extension['file']] = $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
$return = $return + get_disabled_extensions();
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Document extensions
|
* TODO: Document extensions
|
||||||
*
|
*
|
||||||
|
@ -230,7 +370,7 @@ function add_extension_opemode_tab_agent($tabId, $tabName, $tabIcon, $tabFunctio
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Document extensions
|
* Add the function to call in OPERATION
|
||||||
*
|
*
|
||||||
* @param string $function_name
|
* @param string $function_name
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -44,10 +44,10 @@ if ($delete != ""){
|
||||||
$table->width = '500px';
|
$table->width = '500px';
|
||||||
$table->head = array ();
|
$table->head = array ();
|
||||||
$table->head[0] = __('Name');
|
$table->head[0] = __('Name');
|
||||||
if (give_acl ($config['id_user'], 0, "PM")){
|
//if (give_acl ($config['id_user'], 0, "PM")){
|
||||||
$table->head[1] = __('Delete');
|
// $table->head[1] = __('Delete');
|
||||||
$table->align[1] = "center";
|
// $table->align[1] = "center";
|
||||||
}
|
//}
|
||||||
$table->data = array ();
|
$table->data = array ();
|
||||||
|
|
||||||
foreach ($config['extensions'] as $extension) {
|
foreach ($config['extensions'] as $extension) {
|
||||||
|
@ -59,9 +59,9 @@ foreach ($config['extensions'] as $extension) {
|
||||||
$data = array ();
|
$data = array ();
|
||||||
$data[0] = '<a href="index.php?sec=extensions&sec2='.$extension['operation_menu']['sec2'].'" class="mn">'.$extension['operation_menu']['name'];
|
$data[0] = '<a href="index.php?sec=extensions&sec2='.$extension['operation_menu']['sec2'].'" class="mn">'.$extension['operation_menu']['name'];
|
||||||
|
|
||||||
if (give_acl ($config['id_user'], 0, "PM")) {
|
// if (give_acl ($config['id_user'], 0, "PM")) {
|
||||||
$data[1] = '<a href="index.php?sec=extensions&sec2=operation/extensions&delete='.$extension['operation_menu']['sec2'].'&name='.$extension['operation_menu']['name'].'" class="mn"><img src="images/cross.png"></a>';
|
// $data[1] = '<a href="index.php?sec=extensions&sec2=operation/extensions&delete='.$extension['operation_menu']['sec2'].'&name='.$extension['operation_menu']['name'].'" class="mn"><img src="images/cross.png"></a>';
|
||||||
}
|
// }
|
||||||
|
|
||||||
array_push ($table->data, $data);
|
array_push ($table->data, $data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue