Joomla:在组件中编写和调用辅助函数

2024-04-30

初出茅庐的 Joomla / PHP 开发人员,在了解如何做到这一点时遇到了困难。我发现搜索的所有内容都是旧版本的 Joomla 或其他框架,因此第一次时一切都很混乱。

我想要一个可以从组件中的任何位置调用的辅助函数。基本上它需要一个用户 ID 输入并返回他们的全名,比如头发颜色和身高。这是函数:

function get_profile_info($userID) {

        $db =& JFactory::getDBO();          
        $query = $db->getQuery(true);

        $query->SELECT('u.id as UserID
                    , u.name AS Name
                    , up.profile_value AS Hair
                    , up2.profile_value AS Height
                    ');
        $query->FROM (' #__users AS u');
        $query->LEFTJOIN (' #__user_profiles AS up ON u.id = up.user_id AND up.ordering = 1');
        $query->LEFTJOIN (' #__user_profiles AS up ON u.id = up.user_id AND up.ordering = 2');
        $query->WHERE(' u.id = '.$userID.'');
        $query->GROUPBY (' u.id
                    , u.name
                    , up.profile_value
                    ');


       $db->setQuery($query);   
       return $query;                   
}

我将其放入组件的“helpers”文件夹中名为“lookups.php”的文件中......但这里是我不确定下一步要做什么的地方。 Lookups.php 的顶部有强制性的:

<?php defined ( '_JEXEC' ) or die;

那么两个问题: 1)我是将所有内容放在一个类中还是将其保留为一系列函数(因为还会有其他函数)?

2) 如何传递 userID 并获取视图 (view.html.php / default.php) 中的 Name、Hair 和 Height 值?

谢谢你!

===================================

编辑:根据 @Shaz 的回复,下面是我现在所处的位置(再次,只是开始并尝试解决其中的一些问题):

查找.php

abstract class LookupHelper {

        var $Name;
        var $Hair;
        var $Height;

    public function get_profile_info($userID) {
                ... 
                (same as above until the next line)

                $db->setQuery($query);
                $result=$db->loadRow();
                $Name = $result[1];
                $Hair = $result[2];
                $Height = $result[3];
        $getprofileinfo = array(Name=>$Name, Hair=>$Hair, Height=>$Height);
                $return $getprofileinfo;
           }
    }

然后在我的default.php中(可能会移动到view.html.php):

    $getprofileinfo = Jview::loadHelper('lookups'); //got an error without this
    $getprofileinfo = LookupHelper::get_profile_info($userID);

    $Name = $getprofileinfo[Name];
    $Hair = $getprofileinfo[Hair];
    $Height = $getprofileinfo[Height];

所以......它正在工作 - 但似乎有一种更简单的方法可以做到这一点(特别是手动创建一个数组,然后按位置调用)。想法?

谢谢你!!


  1. 创建助手类并在其中包含所有函数:

    抽象类HelloWorldHelper { /* 功能 */ }

  2. 调用该函数并存储结果:

    $var = HelloWorldHelper::get_profile_info($thatId);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Joomla:在组件中编写和调用辅助函数 的相关文章

  • 如何在使用 Component Creator 构建的 Joomla 3.x 组件的一个视图中包含多个模型

    Joomla 组件使用 MVC 模型 Component Creator 是一种广泛使用的工具 其付费级别支持通过 SQL 导入创建多表视图 此外 开发人员根据 Joomla 文档从头开始构建组件 我想构建一个高级组件 充当 仪表板 显示来
  • 如何从joomla中的模块参数获取数据

    我正在构建 joomla 2 5 模块 我想从模块参数访问数据传递 但出现以下错误 致命错误 在非对象上调用成员函数 get 我的代码如下 帮助程序 php class modFeedGrabber function feedurl par
  • Joomla 2.5 Jquery 无法调用 null 的方法

    大家好 我正在使用 Joomla 2 5 和 Jquery 我在 chrome 控制台中遇到了这个奇怪的错误 Uncaught TypeError Cannot call method slideUp of null 这是index php
  • joomla(2.5)系统插件安装时加载语言文件

    在安装系统插件 在 Joomla 2 5 中 期间 我很难显示本地化字符串 xml 文件中本地化字符串的 正常 方式似乎不起作用 请参阅另一个问题 基于语言的安装描述 https stackoverflow com questions 11
  • 在 Joomla 3 中添加快捷图标

    有人知道如何在 Joomla 3 1 中添加快捷图标 甚至编辑当前的快捷图标列表吗 更具体地说 这将是登录 Joomla 管理中心后立即出现在屏幕右侧的一系列链接 我在 stackoverflow 上搜索并没有找到这个问题 QuickIco
  • joomla模块开发与表单-如何处理

    我正在创建一个简单的 Joomla 2 5 模块 它将有一个 html 表单 mod mymodule tmpl default php
  • 错误 324(net::ERR_EMPTY_RESPONSE)

    我现在在我们的许多网站上经常遇到上述问题 大约一个月前这些网站工作正常 但突然有超过 10 个网站不仅在 crome 中出现此错误 而且在其他浏览器中也出现此错误 不相同但相关 Error 324 net ERR EMPTY RESPONS
  • CSS 问题 - 边距顶部 - Google Chrome [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions On my
  • 从 Joomla 表单字段插入数据库

    我是 Joomla 的初学者 开发并创建了一个非常简单的模块 如何创建包含 3 个文本字段的表单 然后将输入的值保存到数据库表中 试试这个例子 我们将把用户的名字和姓氏发布到表中 在您的数据库中创建一个表 注意它应该有前缀 jos 我们将这
  • 验证码 重新验证码不再起作用

    昨天工作正常 但今天验证码不再出现 我调试了代码 我意识到我的 joomla 插件 captcharecaptcha 在将页面渲染为 javascript 文件时包含此文件 http api recaptcha net js recaptc
  • 如何将变量从控制器传递到视图 joomla mvc

    根据此示例 如何将变量从 joomla 子控制器传递到视图 class MYControllerControllerParser extends JController public function construct default a
  • 将文件上传器添加到 Joomla 管理组件

    我根据 Joomla 指南制作了 Joomla 管理组件 http docs joomla org Developing a Model View Controller Component 2 5 Developing a Basic Co
  • Joomla 数据库 - 如何在 getQuery 中使用 LIMIT?

    我想使用 joomla 内置数据库类构建以下查询 SELECT FROM table name ORDER BY id DESC LIMIT 1 这是我到目前为止建立的查询 db JFactory getDBO query db gt ge
  • 显示 SQL 结果时 nl2br() 不起作用

    在我的 Joomla 模块上 我们使用以下代码从数据库获取喊叫信息 function getShouts number timezone message shouts array db JFactory getDBO query db gt
  • Joomla 2.5 自定义字段列表未在显示中选择

    我在我的组件 models fields time php 中使用以下 php 创建了一个自定义字段类型 defined JPATH BASE or die jimport joomla form formfield class JForm
  • 从 sef url 中删除组件部分,菜单项未完全删除

    我为 joomla 2 5 构建了一个自定义组件 现在我想实现 sef url 所以我开始创建router php文件 我几乎成功了 我唯一想要更改的是删除组件名称链接 这是我得到的 http host tld component comp
  • Joomla 2.5 中基于类别的文章的替代布局

    目前 我的 Joomla 2 5 安装中的文章有 2 个 布局 default php default links php feature link php feature link php 当在 文章管理器 的 替代布局 下的 编辑文章
  • 合并 csv 文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 PHP 或 joomla 中将多个 CSV 文件合并为一个 csv 文件 将文件夹中 csv 文件中的所有数据合并到文本文件中 通
  • Joomla 3.0 使用php脚本注册用户

    我已经搜索并找到了一种使用 JUser 执行此操作的方法 但是当我尝试该脚本时 它说找不到包含文件并且服务器上不存在该文件 我不知道这对于 Joomla 3 0 是否有所不同 所以我寻求帮助 这是我尝试过的脚本
  • 为什么我应该使 Joomla 版本保持最新?

    当发布问题并提及我的 Joomla 版本时 我总是被告知更新到最新版本 我不明白为什么更新这么重要 更新有什么好处 每当我看到有人发布问题并陈述旧版本的 Joomla 时 通常我说的第一句话是 升级到最新版本的 Joomla 1 5 26

随机推荐

  • 在Python中单击按钮时隐藏标签

    在 Python Tkinter 中单击按钮时如何隐藏现有标签 这实际上取决于您使用的几何管理器 如果你使用 lbl Tkinter Label parent 要创建标签 您将使用以下方法之一来隐藏它 lbl grid forget lbl
  • 如何检索使用 Apache 的 mod_ldap 进行身份验证的用户的用户信息?

    我使用 Apache 进行 LDAP 身份验证 现在我需要知道如何获取使用 PHP 登录的用户 有可能吗 我是否必须在 PHP 中进行身份验证才能存储用户名 如果您激活 mod authnz ldap 模块并按如下方式配置您的部分
  • 当 S3 上的 ZIP 包更改时如何更新 aws_lambda_function Terraform 资源?

    Zip 包不是由 Terraform 上传到 S3 Lambda 由 Terraform aws lambda function 资源配置 当我在 S3 上更改 Zip 包并运行时terraform apply命令 Terraform 说没
  • 在控制台应用程序中使用 swift 处理可可按键事件(按下按键)

    好吧 我正在尝试登录控制台输出按下的键 我只是无法理解可可的结构 无论是 Obj c 还是 swift 我不是这两种语言的大师 但是 这是我的代码 import Cocoa import Foundation import AppKit v
  • 使用 git,如何在冲突期间“使用他们的”?

    使用 git 如何执行 使用他们的 类型的分支合并命令 该命令应该用原始版本覆盖我的本地版本 要将您的 master 替换为 origin master git checkout master git branch M master old
  • SSDT-BI 可以与 SQL Server 2008 R2 一起使用吗?

    有人可以告诉我在 Visual Studio 2012 或 2013 中开发的 SSIS 包是否可以在 2008r2 服务器上运行吗 如果是 2008r2服务器上还需要安装其他软件吗 这里不关心部署 我只想通过 sql 代理作业在 2008
  • 同位素重叠图像?

    似乎它只发生在 Chrome 和 Safari 中 而不是 Firefox 我将它与基础响应框架一起使用 所以我不确定如何设置高度 Chrome Safari 中的图像之间似乎也没有足够的间距 我该如何解决 编辑 这是一个小提琴http j
  • 在 NuGet 包中添加解决方案级项目

    我想通过 NuGet 包将解决方案文件夹和解决方案项 不是项目 添加到解决方案文件中 我想这将通过 Powershell 来完成 我浏览了 NuGet Powershell 和 EnvDTE 的文档 但无法弄清楚 我会使用哪些命令 方法 我
  • 可以设计自定义推文按钮并利用数据属性吗?

    我正在使用自己的样式创建自定义推文按钮 但是当您选择自定义自己的样式时 您似乎无法使用数据属性 数据文本 数据网址等 仅当您使用使用小部件 javascript 的 Twitter 样式按钮时 数据属性的使用才显得可用 http platf
  • 从 Fortran 字符串中提取单个字符

    我需要一个程序将基数 a 转换为基数 b 其中基数 a 和 b 可以是从 2 到 36 我的想法是使用字符串作为数字 作为中介转换为基数 10 然后从基数 10 转换为基数 b 由于我是 Fortran 新手 我不太理解函数和子字符串 现在
  • 如何从 ScheduledExecutorService 中删除任务?

    我有一个ScheduledExecutorService定期执行一些不同的任务scheduleAtFixedRate Runnable INIT DELAY ACTION DELAY TimeUnit SECONDS 我也有不一样的Runn
  • 使用 Underscore debounce 获取事件对象[React]

    我正在尝试对我已设法做到的操作使用去抖 但是我想将 e 作为参数传递 但它不起作用 我有什么办法可以做到这一点吗 constructor props context super props context this testing debo
  • Jupyter Notebook 上未显示结构化流输出

    我有两个笔记本 第一个笔记本正在使用 tweepy 从 twitter 读取推文并将其写入套接字 其他笔记本正在使用 Spark 结构化流 Python 从该套接字读取推文并将其结果写入控制台 不幸的是我没有在 jupyter 控制台上得到
  • Logstash 过滤器将“$epoch.$microsec”转换为“$epoch_millis”

    我正在尝试转换表单中的时间戳字段 epoch microsec to epoch millis Example 1415311569 541062 gt 1415311569541 Logstash 似乎没有任何乘法的方法 所以ts 100
  • WPF - 从 WPF 应用程序切换到 xbap

    我有一个可用的 WPF 应用程序 我希望看到它作为 xbap 运行 我需要在 WPF 应用程序中更改哪些内容才能使其作为 xbap 运行 当谈到可以以图形方式执行的操作时 两者之间的唯一区别是 XBAP 无法使用 BitmapEffects
  • 在 Kubernetes 中向 MySQL 添加另一个用户

    这是我的MySQL apiVersion apps v1beta1 kind Deployment metadata name abc def my mysql namespace abc sk test labels project ab
  • jQueryUI:正确删除可拖动元素

    我正在开发一个可视化编辑器 它需要用户可以根据需要添加 删除和拖动元素 每个元素都是一个div使用 jQueryUI 实现可拖动 新元素被附加到父元素上div代表工作空间 每个元素内部都有一个用于将其删除的按钮 这一切都很好 我遇到的问题是
  • 用于多部分/表单数据的 POSTMAN

    如何将 POSTMAN 用于 Multipart form data 它具有自定义标头来测试我的控制器 该控制器采用 2 个文件作为参数 public controller MultipartFile files POST HTTP 1 1
  • 未捕获(承诺中)语法错误:获取函数中出现意外的标记'

    我有几个结构如下的 JSON 文件 我们称之为 info json data title Job company Company past fulltime Former Company intern Women IT Priority 5
  • Joomla:在组件中编写和调用辅助函数

    初出茅庐的 Joomla PHP 开发人员 在了解如何做到这一点时遇到了困难 我发现搜索的所有内容都是旧版本的 Joomla 或其他框架 因此第一次时一切都很混乱 我想要一个可以从组件中的任何位置调用的辅助函数 基本上它需要一个用户 ID