codeigniter 如何将我自定义PHP应用程序集成到Joomla?

zaqlnxep  于 8个月前  发布在  PHP
关注(0)|答案(2)|浏览(58)

也许有一些链接或教程,但没有发现任何这一点,我的问题是,我有一个joomla 3应用程序和一些组件安装在它像seo和购物车,
我有另一个php应用程序(它使用codeigniter php框架),现在我想在这两者之间进行一些集成,
例如:我有一些用户,一些用户组和一些访问级别在joomla 3安装,现在我希望所有的joomla用户可以登录到我的自定义应用程序与他们的joomla用户名/密码,或更好的,如果用户登录到joomla(前端或后端)他/她能够使用我的应用程序,而无需再次登录,
或者,我可以检查用户的joomla ACL和用户组在我的自定义应用程序。
一种方法我是连接到joomla数据库和读取数据,也有2个问题,joomla加密密码,所以我需要做同样的(如何),这将是完美的,如果有一些API或类使用它们在我的自定义应用程序。
和其他方式(我认为我可以使用)创建一些组件的joomla和创建我自己的api在它和包括/使用他们在我的应用程序(但如何?)
有谁能帮我解决这个问题吗?我对创建Joomla组件的经验很少。

bxpogfeg

bxpogfeg1#

这是非常简单的运行任何php代码像一个joomla组件。
你所需要的就是创建一个前缀为com_com_mycode)的文件夹,然后在里面创建一个没有前缀的同名php文件(* mycode.php *)

  • 组件
  • 公司简介
  • mycode.php

它将是你的主代码,你可以从这个文件开始组织你的应用程序代码。
为了更多的集成,你必须给予出关于你需要做什么的进一步信息,我们可以找到你可以使用的特定的joomla对象。

ctzwtxfj

ctzwtxfj2#

创建组件的另一种方法是创建模块。模块的好处是它可以放在一个页面或多个页面上的某个位置。例如,自定义登录模块可以位于每个页面的页眉、页脚或侧边栏中。
首先,在/modules中创建一个新的mod_ directory,如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目录,那么转到管理员区域,然后执行Extensions、Manage、Discover。点击Discover按钮,然后你会看到你的新模块。选中其名称旁边的复选框,然后单击“安装”按钮。
接下来,转到Extensions,Modules,单击绿色的New按钮,然后从列表中选择新模块。
一旦将其作为模块添加,您就可以将其添加到页面并管理权限。转到扩展,然后是模块。点击您的模块名称以转到其管理页面。请注意XML文件添加的文本字段。您可以添加任何您想要的。它非常适合在PHP中创建在管理区域中定义了值的变量,特别是如果您有管理用户需要进来进行更改,例如新的欢迎文本。

相关问题