也许有一些链接或教程,但没有找到任何内容, 我的问题是我有一个 joomla 3 应用程序和一些安装在上面的组件,例如 seo 和购物车,
我有另一个 php 应用程序(它使用 codeigniter php 框架),现在我想在这两者之间进行一些集成,
例如:我在 joomla3 安装中有一些用户、一些用户组和一些访问级别,现在我希望所有 joomla 用户都可以使用他们的 joomla 用户名/密码登录到我的自定义应用程序,或者如果用户登录到 joomla (前端或后端)他/她能够使用我的应用程序而无需再次登录,
或者,我能够在自定义应用程序中检查用户的 joomla ACL 和用户组。
我连接到 joomla DB 并读取数据的一种方式,也有两个问题,joomla 加密密码,所以我需要做同样的事情(如何),如果有一些 API 或类在我的自定义中使用它们,那就完美了申请。
以及其他方式(我认为我可以使用)为 joomla 创建一些组件并在其中创建我自己的 api 并在我的应用程序中包含/使用它们(但如何?)
有人可以帮我解决这个问题吗?我对创建 joomla 组件的经验很少。
像 joomla 组件一样运行任何 php 代码非常简单。
您所需要的只是创建一个带有前缀
com_
(com_mycode) 的文件夹,并在里面创建一个具有相同名称但不带前缀的 php 文件 (mycode.php)
这将是您的主要代码,您可以从此文件开始组织您的应用程序代码。
为了更多的集成,您必须提供有关您需要做什么的进一步信息,我们可以找到您可以使用的特定 joomla 对象。
创建组件的另一种方法是创建模块。模块的优点在于它可以放置在一页或多页上的某个位置。例如,自定义登录模块可以驻留在每个页面的页眉、页脚或侧边栏中。
首先,在/modules中创建一个新的mod_目录,如mod_mylogin。
然后,创建一个空白的index.html 文件、一个名为mod_mylogin.xml 的XML 文件和一个名为mod_mylogin.php 的PHP 文件。还可以添加其他文件,例如包含文件,甚至目录。
index.html
<!DOCTYPE html><body></body></html>
mod_mylogin.xml
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="3.1" client="site" method="upgrade">
<name>mod_mylogin</name>
<author>Your Name</author>
<creationDate>September 2023</creationDate>
<copyright>Copyright (C) 2005 - 2016 Open Source Matters. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>[email protected]</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.0.0</version>
<description>MY LOGIN</description>
<files>
<filename module="mod_mylogin">mod_mylogin.php</filename>
<filename>index.html</filename>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field name="text_1"
type="text"
label="Text 1"
description="Enter text 1"
/>
</fieldset>
</fields>
</config>
</extension>
mod_mylogin.php
<?php
defined('_JEXEC') or die('Restricted access');
// For example, you can use Joomla's JFactory to access info for users already logged in
$user = JFactory::getUser();
// you don't have to define new variables, but this just shows you some of what's available
$user_id = $user->id;
$user_name = $user->name;
// Your PHP, HTML, etc goes on this page
echo "<h2>Hello ".$user_name."</h2>";
// values defined in the admin area can be retrieved using $params->get()
echo "<p>".$params->get('text_1')."</p>";
?>
然后,您必须完成添加模块的过程。步骤如下:
如果您在 /modules 中创建了新的 mod_mylogin 目录,则转到管理员区域并执行“扩展”、“管理”、“发现”。单击“发现”按钮,然后您将看到新模块。选中其名称旁边的框,然后单击“安装”按钮。
接下来,转到“扩展”、“模块”,单击绿色的“新建”按钮,然后从列表中选择您的新模块。
将其作为模块添加后,您可以将其添加到页面并管理权限。转到扩展,然后转到模块。单击模块的名称即可转到其管理页面。请注意 XML 文件添加的文本字段。您可以根据需要添加任意数量。它非常适合在 PHP 中创建具有在该管理区域中定义的值的变量,特别是如果您有管理员用户需要进来并进行更改(例如新的欢迎文本)。