【问题标题】:Joomla 3 Lis users in usergroup moduleJoomla 3在用户组模块中列出用户
【发布时间】:2025-11-30 15:40:01
【问题描述】:

有人知道这样的模块吗?

基本上,我想使用 loadmodule 选项在文章中动态加载某些用户组中的用户。

【问题讨论】:

    标签: joomla joomla3.0 joomla-extensions


    【解决方案1】:

    最终建立了自己。

    修改文件:

    <?php
    
    defined('_JEXEC') or die;
    
    // Include the latest functions only once
    require_once __DIR__ . '/helper.php';
    
    $shownumber         = $params->get('shownumber', 10);
    $groupnumber        = $params->get('group', 4);
    
    $names              = ModUsersUsergroupHelper::getUsers($params);
    
    $moduleclass_sfx    = htmlspecialchars($params->get('moduleclass_sfx'), ENT_COMPAT, 'UTF-8');
    
    require JModuleHelper::getLayoutPath('mod_users_usergroup', $params->get('layout', 'default'));
    

    帮手:

    <?php
    
    defined('_JEXEC') or die;
    
    /**
     * Helper for mod_users_usergroup
     *
     * @package     Joomla.Site
     * @subpackage  mod_users_usergroup
     *
     * @since       1.6
     */
    
    class ModUsersUsergroupHelper
    {
    
    /**
     * Get users in a certain usergroup
     *
     * @param   \Joomla\Registry\Registry  $params  module parameters
     *
     * @return  array  The array of users
     *
     * @since   1.6
     */
    
    public static function getUsers($params)
    {
    
        $db         = JFactory::getDbo();
    
        $groupId    = $params->get('group', 2);
    
        $query      = $db->getQuery(true)
            ->select($db->quoteName(array('u.id', 'u.name', 'u.username', 'u.registerDate')))
            ->order($db->quoteName('u.registerDate') . ' DESC')
            ->from('#__users AS u')
            ->join('INNER', '#__user_usergroup_map AS ugm ON ugm.user_id = u.id')
            ->where('ugm.group_id =' . $db->quote($groupId));
    
        $db->setQuery($query, 0, $params->get('shownumber'));
    
        try
        {
    
            return (array) $db->loadObjectList();
    
        }
    
        catch (RuntimeException $e)
        {
    
            JFactory::getApplication()->enqueueMessage(JText::_('JERROR_AN_ERROR_HAS_OCCURRED'), 'error');
    
            return array();
    
                }
    
            }
    
    }
    

    【讨论】:

      【解决方案2】:

      我不知道有这样的扩展,但您可以使用 Sourcerer 或类似方法在自定义 HTML 模块中包含一些代码以实现所需的结果。

      然后可以使用 loadmodule 在文章中显示自定义 HTML 模块。

      示例代码见:https://*.com/a/20743966

      【讨论】: