如何将我的自定义 php 应用程序集成到 joomla 中?

问题描述 投票:0回答:2

也许有一些链接或教程,但没有找到任何内容, 我的问题是我有一个 joomla 3 应用程序和一些安装在上面的组件,例如 seo 和购物车,

我有另一个 php 应用程序(它使用 codeigniter php 框架),现在我想在这两者之间进行一些集成,

例如:我在 joomla3 安装中有一些用户、一些用户组和一些访问级别,现在我希望所有 joomla 用户都可以使用他们的 joomla 用户名/密码登录到我的自定义应用程序,或者如果用户登录到 joomla (前端或后端)他/她能够使用我的应用程序而无需再次登录,

或者,我能够在自定义应用程序中检查用户的 joomla ACL 和用户组。

我连接到 joomla DB 并读取数据的一种方式,也有两个问题,joomla 加密密码,所以我需要做同样的事情(如何),如果有一些 API 或类在我的自定义中使用它们,那就完美了申请。

以及其他方式(我认为我可以使用)为 joomla 创建一些组件并在其中创建我自己的 api 并在我的应用程序中包含/使用它们(但如何?)

有人可以帮我解决这个问题吗?我对创建 joomla 组件的经验很少。

php codeigniter joomla
2个回答
1
投票

像 joomla 组件一样运行任何 php 代码非常简单。

您所需要的只是创建一个带有前缀

com_
(com_mycode) 的文件夹,并在里面创建一个具有相同名称但不带前缀的 php 文件 (mycode.php)

  • 组件
    • com_mycode
      • mycode.php

这将是您的主要代码,您可以从此文件开始组织您的应用程序代码。

为了更多的集成,您必须提供有关您需要做什么的进一步信息,我们可以找到您可以使用的特定 joomla 对象。


0
投票

创建组件的另一种方法是创建模块。模块的优点在于它可以放置在一页或多页上的某个位置。例如,自定义登录模块可以驻留在每个页面的页眉、页脚或侧边栏中。

首先,在/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 中创建具有在该管理区域中定义的值的变量,特别是如果您有管理员用户需要进来并进行更改(例如新的欢迎文本)。

© www.soinside.com 2019 - 2024. All rights reserved.