【问题标题】:joomla: use a plugin from a module (jmapmyldap)joomla:使用模块中的插件(jmapmyldap)
【发布时间】:2017-06-21 10:09:41
【问题描述】:

在 joomla 3.x 中,我有一个插件来管理身份验证和组成员映射,它是 JMapMyLDAP。 该插件有一组存储在配置中的参数,这些参数控制插件如何连接到 LDAP 服务器、如何生成 LDAP 查询、如何映射属性等等...

现在我正在开发一个自定义模块,旨在从 LDAP 中获取有关当前用户的更多信息,即它旨在查询 Active Directory 中相应用户的一些更多扩展属性(我当前的 LDAP身份验证后端)。

考虑到我已经使用绑定帐户、基本 DN 配置了 JMapMyLDAP 插件...重新使用此插件的配置和功能而不是通过以下方式再次编写 LDAP 基本功能会很有用我自己并在其他地方再次存储相同的配置......

因此,一般来说,问题是:模块中是否有一种方法可以调用插件的初始化 istance(即加载存储的配置)以便直接调用其方法?

在我的测试中,我已经在default.php(或helper.php)中成功导入了带有jimport的插件

<?php 
// No direct access
defined('_JEXEC') or die; 
jimport('joomla.plugin.plugin');
jimport('shmanic.jldap2');
jimport('shmanic.jmapmyldap');

但是现在呢?

我需要获取plgUserJMapMyLDAP 的实例(扩展Jplugin)才能查询我的LDAP 后端。

【问题讨论】:

    标签: plugins joomla ldap joomla3.0


    【解决方案1】:

    我从你的问题中了解到的是 1.您想触发在您的插件中编写的自定义函数。您可以使用以下脚本来完成。

        JPluginHelper::importPlugin(<plugin type>, <plugin name>);
        $Dispatcher = JEventDispatcher::getInstance();
        $result = $Dispatcher->trigger('<Event name>', <array of parameter>);
    

    如果有的话,结果变量会返回给你预期的输出。

    1. 您想使用插件下配置的现有参数。因此,您可以使用以下脚本在任何地方访问任何插件参数。

      $plugin = JPluginHelper::getPlugin(<plugin type>, <plugin name>);
      $params = new JRegistry($plugin->params);
      echo $params->get('param_name','default_value');
      

    【讨论】:

      猜你喜欢
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 2012-10-02
      • 1970-01-01
      • 2012-02-19
      • 2011-08-19
      相关资源
      最近更新 更多