HEX
Server: Apache/2.4.25 (Debian)
System: Linux server17 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
User: web37 (1062)
PHP: 7.4.30
Disabled: show_source, highlight_file, apache_child_terminate, apache_get_modules, apache_note, apache_setenv, virtual, dl, disk_total_space, posix_getpwnam, posix_getpwuid, posix_mkfifo, posix_mknod, posix_setpgid, posix_setsid, posix_setuid, posix_uname, proc_nice, openlog, syslog, pfsockopen
Upload Files
File: /var/www/web37/htdocs/fickanzeiger/admin/controllers/PluginController.php
<?php
/**
 * Arfooo
 * 
 * @package    Arfooo
 * @copyright  Copyright (c) Arfooo Annuaire (fr) and Arfooo Directory (en)
 *             by Guillaume Hocine (c) 2007 - 2010
 *             http://www.arfooo.com/ (fr) and http://www.arfooo.net/ (en)
 * @author     Guillaume Hocine & Adrian Galewski
 * @license    http://creativecommons.org/licenses/by/2.0/fr/ Creative Commons
 */


class Admin_PluginController extends AppController
{
    /**
     * set access privileges
     */
    function init()
    {
        $this->acl->allow("administrator", $this->name, "*");

        if (!$this->acl->isAllowed($this->session->get("role"), $this->name, $this->action)) {
            $this->redirect(AppRouter::getRewrittedUrl("/admin/main/logIn"));
        }
    }

    /**
     * Get available plugins in /plugin directory
     */
    function getAvailablePlugins()
    {
        $plugins = array();
        $dir = new DirectoryIterator(CODE_ROOT_DIR . 'plugins/');

        foreach ($dir as $file) {
            if (!$file->isDot() && $file->isDir()) {
                $plugins[] = $file->getFilename();
            }
        }

        return $plugins;
    }

    /**
     * Show plugin details
     */
    function editAction($pluginName)
    {
        $pluginName = basename($pluginName);
        $pluginRootPath = CODE_ROOT_DIR . "plugins/" . $pluginName . "/";

        $descriptionPath = $pluginRootPath . "info.txt";
        $pluginDescription = file_exists($descriptionPath) ? file_get_contents($descriptionPath) : "";

        $functionsPath = $pluginRootPath . "functions.xml";
        $pluginFunctions = array();

        if (file_exists($functionsPath)) {
            $xml = new SimpleXMLElement(file_get_contents($functionsPath));

            foreach ($xml->function as $function) {
                $pluginFunctions[] = array("action"      => (string) $function->action,
                                           "description" => (string) $function->description);
            }

        }

        $this->set("pluginDescription", $pluginDescription);
        $this->set("pluginFunctions", $pluginFunctions);
    }

    /**
     * Display plugins managment page
     */
    function indexAction()
    {
        $plugins = $this->getAvailablePlugins();
        $this->set("plugins", $plugins);
    }
}