Jelajahi Sumber

Start fixing legacy plugin system in master

jmontoya 9 tahun lalu
induk
melakukan
3b853f4c0f

+ 1 - 0
main/inc/lib/api.lib.php

@@ -2497,6 +2497,7 @@ function api_get_setting($variable)
  */
 function api_get_plugin_setting($plugin, $variable)
 {
+    return '';
     $variableName = $plugin.'_'.$variable;
     $result = api_get_setting($variableName);
     if (isset($result[$plugin])) {

+ 1 - 1
src/Chamilo/CoreBundle/Controller/Admin/AdminController.php

@@ -247,7 +247,7 @@ class AdminController extends BaseController
             $items = array();
             $items[] = array(
                 'url' => $this->generateUrl(
-                    'chamilo_platform_settings_list'
+                    'admin_settings'
                 ),
                 'label' => get_lang('PlatformConfigSettings'),
             );

+ 85 - 0
src/Chamilo/CoreBundle/Controller/Admin/PluginsController.php

@@ -0,0 +1,85 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\CoreBundle\Controller\Admin;
+
+use Sylius\Bundle\SettingsBundle\Controller\SettingsController as SyliusSettingsController;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\Validator\Exception\ValidatorException;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
+use Chamilo\SettingsBundle\Manager\SettingsManager;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
+
+/**
+ * Class SettingsController
+ * @package Chamilo\SettingsBundle\Controller
+ */
+class PluginsController extends SyliusSettingsController
+{
+    /**
+     * @Security("has_role('ROLE_ADMIN')")
+     * @Route("/plugins")
+     *
+     * @return array
+     */
+    public function pluginsAction()
+    {
+        $appPlugin = new \AppPlugin();
+        $installedPlugins = $appPlugin->get_installed_plugins();
+
+        return $this->render(
+            '@ChamiloCore/Admin/Settings/plugins.html.twig',
+            array(
+                'plugins' => $installedPlugins
+            )
+        );
+    }
+
+    /**
+     * @Security("has_role('ROLE_ADMIN')")
+     * @Route("/plugins/add")
+     *
+     * @return array
+     */
+    public function pluginsAddAction()
+    {
+        $appPlugin = new \AppPlugin();
+        $allPlugins = $appPlugin->read_plugins_from_path();
+        $allPluginsList = [];
+        foreach ($allPlugins as $pluginName) {
+            $file = api_get_path(SYS_PLUGIN_PATH).$pluginName.'/plugin.php';
+
+            if (is_file($file)) {
+                $pluginInfo = require $file;
+                var_dump($pluginInfo);exit;
+                $allPluginsList[] = $pluginInfo;
+            }
+        }
+
+
+
+        $installedPlugins = $appPlugin->get_installed_plugins();
+
+        $manager = $this->getSettingsManager();
+        $schemas = $manager->getSchemas();
+
+        return $this->render(
+            '@ChamiloCore/Admin/Settings/pluginsAdd.html.twig',
+            array(
+                'plugins' => $allPluginsList,
+                'installed_plugins' =>$installedPlugins
+            )
+        );
+    }
+
+    /**
+     * @return SettingsManager
+     */
+    protected function getSettingsManager()
+    {
+        return $this->get('chamilo.settings.manager');
+    }
+}

+ 13 - 4
src/Chamilo/SettingsBundle/Controller/SettingsController.php → src/Chamilo/CoreBundle/Controller/Admin/SettingsController.php

@@ -1,7 +1,7 @@
 <?php
 /* For licensing terms, see /license.txt */
 
-namespace Chamilo\SettingsBundle\Controller;
+namespace Chamilo\CoreBundle\Controller\Admin;
 
 use Sylius\Bundle\SettingsBundle\Controller\SettingsController as SyliusSettingsController;
 use Symfony\Component\HttpFoundation\Request;
@@ -21,7 +21,8 @@ class SettingsController extends SyliusSettingsController
 {
     /**
      * @Security("has_role('ROLE_ADMIN')")
-     * @Template
+     * @Route("/settings", name="admin_settings")
+     *
      * @return array
      */
     public function indexAction()
@@ -29,12 +30,20 @@ class SettingsController extends SyliusSettingsController
         $manager = $this->getSettingsManager();
         $schemas = $manager->getSchemas();
 
-        return array('schemas' => $schemas);
+        return $this->render(
+            '@ChamiloCore/Admin/Settings/index.html.twig',
+            array(
+                'schemas' => $schemas
+            )
+        );
     }
 
     /**
      * Edit configuration with given namespace.
      * @Security("has_role('ROLE_ADMIN')")
+     *
+     * @Route("/settings/{namespace}", name="chamilo_platform_settings")
+     *
      * @param Request $request
      * @param string $namespace
      *
@@ -108,7 +117,7 @@ class SettingsController extends SyliusSettingsController
         $schemas = $manager->getSchemas();
 
         return $this->render(
-            'ChamiloSettingsBundle:Settings:default.html.twig',
+            '@ChamiloCore/Admin/Settings/default.html.twig',
             array(
                 'schemas' => $schemas,
                 'settings' => $settings,

+ 0 - 2
src/Chamilo/CoreBundle/Controller/User/ProfileController.php

@@ -9,14 +9,12 @@ use Symfony\Component\Routing\Annotation\Route;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
 use Symfony\Component\HttpFoundation\Response;
 
-
 /**
  * Class ProfileController
  * @package Chamilo\CoreBundle\Controller
  */
 class ProfileController extends BaseController
 {
-
     /**
      * My files
      * @Route("/{username}/files")

+ 9 - 28
src/Chamilo/CoreBundle/Resources/config/routing.yml

@@ -1,29 +1,29 @@
 index:
-    resource: "@ChamiloCoreBundle/Controller/IndexController.php"
+    resource: '@ChamiloCoreBundle/Controller/IndexController.php'
     type:     annotation
 
 userportal:
-    resource: "@ChamiloCoreBundle/Controller/UserPortalController.php"
+    resource: '@ChamiloCoreBundle/Controller/UserPortalController.php'
     type:     annotation
     prefix:   /userportal
 
 front:
-    resource: "@ChamiloCoreBundle/Controller/FrontController.php"
+    resource: '@ChamiloCoreBundle/Controller/FrontController.php'
     type:     annotation
     prefix:   /front
 
 user:
-    resource: "@ChamiloCoreBundle/Controller/User/UserController.php"
+    resource: '@ChamiloCoreBundle/Controller/User/UserController.php'
     type:     annotation
     prefix:   /user
 
 course:
-    resource: "@ChamiloCoreBundle/Controller/CourseController.php"
+    resource: '@ChamiloCoreBundle/Controller/CourseController.php'
     type:     annotation
     prefix:   /course
 
 legacy_javascript:
-    resource: "@ChamiloCoreBundle/Controller/JavascriptLegacyController.php"
+    resource: '@ChamiloCoreBundle/Controller/JavascriptLegacyController.php'
     type:     annotation
     prefix:   /js
 
@@ -45,22 +45,16 @@ web.img:
     path: bundles/chamilocore/img/
 
 # Core controllers
-
 core_admin:
-    resource: "@ChamiloCoreBundle/Controller/Admin"
+    resource: '@ChamiloCoreBundle/Controller/Admin'
     type: annotation
-    prefix:   /admin
-
-#core_app:
-#    resource: "@ChamiloCoreBundle/Controller/App"
-#    type: annotation
-#    prefix:   /app
+    prefix: /admin
 
 course_url:
     path: courses
 
 core_tool:
-    resource: "@ChamiloCourseBundle/Controller"
+    resource: '@ChamiloCourseBundle/Controller'
     type: annotation
     prefix: /courses/{course}/
 
@@ -104,19 +98,6 @@ remove_trailing_slash:
         url: .*/$
         _method: GET
 
-# Settings list
-chamilo_platform_settings_list:
-    pattern: /admin/settings
-    defaults:
-        _controller: ChamiloSettingsBundle:Settings:index
-        template: ChamiloSettingsBundle:Settings:index.html.twig
-
-# Setting form
-chamilo_platform_settings:
-    pattern: /admin/settings/{namespace}
-    defaults:
-        _controller: ChamiloSettingsBundle:Settings:updateSetting
-        template: ChamiloSettingsBundle:Settings:default.html.twig
 
 # Course settings
 chamilo_course_settings:

+ 1 - 1
src/Chamilo/SettingsBundle/Resources/views/Settings/default.html.twig → src/Chamilo/CoreBundle/Resources/views/Admin/Settings/default.html.twig

@@ -7,7 +7,7 @@
 
     <div class="row">
         <div class="col-xs-3 col-md-3">
-        {% include '@ChamiloSettings/Settings/menu.html.twig' %}
+        {% include '@ChamiloCore/Admin/Settings/menu.html.twig' %}
         </div>
         <div class="col-xs-9 col-md-9">
             <div class="page-header">

+ 1 - 1
src/Chamilo/SettingsBundle/Resources/views/Settings/index.html.twig → src/Chamilo/CoreBundle/Resources/views/Admin/Settings/index.html.twig

@@ -10,7 +10,7 @@
 {% block page_content %}
     <div class="row">
         <div class="col-xs-3 col-md-3">
-        {% include '@ChamiloSettings/Settings/menu.html.twig' %}
+        {% include '@ChamiloCore/Admin/Settings/menu.html.twig' %}
         </div>
         <div class="col-xs-9 col-md-9">
         </div>

+ 11 - 0
src/Chamilo/CoreBundle/Resources/views/Admin/Settings/menu.html.twig

@@ -0,0 +1,11 @@
+<ul class="nav nav-pills nav-stacked">
+{% set current_namespace = app.request.get('namespace') %}
+{% for namespace in schemas|keys %}
+    <li class="{% if (current_namespace ==  namespace)  %} active {% endif %}">
+        <a href="{{ path('chamilo_platform_settings', { 'namespace': namespace }) }}">
+            <img src="{{ asset('bundles/chamilocore/img/icons/32/' ~ namespace ~'.png') }}" />
+            {{ namespace | capitalize | trans }}
+        </a>
+    </li>
+{% endfor %}
+</ul>

+ 31 - 0
src/Chamilo/CoreBundle/Resources/views/Admin/Settings/plugins.html.twig

@@ -0,0 +1,31 @@
+{% extends "::layout.html.twig" %}
+
+{% block page_title %}
+    {{ 'Plugins' | trans }}
+{% endblock %}
+
+{% block page_subtitle %}
+{% endblock %}
+
+{% block page_content %}
+
+<a href="{{ url('chamilo_core_admin_plugins_pluginsadd') }}">
+    Add
+</a>
+
+<form class="form-horizontal" name="plugins" method="post" action="'.api_get_self().'?category='.Security::remove_XSS($_GET['category']).'&sec_token=' . $token . '">
+    <table class="data_table">
+        <tr>
+            <th>Action</th>
+            <th>Plugin</th>
+            <th>Description</th>
+        </tr>
+        {% for plugin in plugins %}
+            <tr>
+                <td>{{ plugin | var_dump }}</td>
+                <td>Description</td>
+            </tr>
+
+        {% endfor %}
+    </table>
+{% endblock%}

+ 21 - 0
src/Chamilo/CoreBundle/Resources/views/Admin/Settings/pluginsAdd.html.twig

@@ -0,0 +1,21 @@
+{% extends "::layout.html.twig" %}
+
+{% block page_title %}
+    {{ 'Settings' | trans }}
+{% endblock %}
+
+{% block page_subtitle %}
+{% endblock %}
+
+{% block page_content %}
+    <div>
+    {% for plugin in plugins %}
+        <div class="panel panel-default">
+            <div class="panel-heading">{{ plugin | var_dump }} </div>
+            <div class="panel-body">
+            </div>
+        </div>
+
+    {% endfor %}
+    </div>
+{% endblock%}

+ 0 - 11
src/Chamilo/SettingsBundle/Resources/views/Settings/menu.html.twig

@@ -1,11 +0,0 @@
-<ul class="nav nav-pills nav-stacked">
-{% set current_namespace = app.request.get('namespace') %}
-    {% for namespace in schemas|keys %}
-        <li class="{% if (current_namespace ==  namespace)  %} active {% endif %}">
-            <a href="{{ path('chamilo_platform_settings', { 'namespace': namespace }) }}">
-                <img src="{{ asset('bundles/chamilocore/img/icons/32/' ~ namespace ~'.png') }}" />
-                {{ namespace | capitalize | trans }}
-            </a>
-        </li>
-    {% endfor %}
-</ul>