在Joomla中从另一个PHP调用PHP

在Joomla中从另一个PHP调用PHP,php,joomla,Php,Joomla,我有一个main index.php。这个PHP上有一个href链接,我从中调用另一个PHP。第二个PHP中有一些jdoc语句。这些不会被执行。如果我在index.php中使用“include”,那么它可以正常工作。如果我使用href指向同一index.php中的某个位置,它也可以工作 index.php代码: <a href="/joomla16/templates/zmtemplate/second.php">Trial</a> second.php <

我有一个main index.php。这个PHP上有一个href链接,我从中调用另一个PHP。第二个PHP中有一些jdoc语句。这些不会被执行。如果我在index.php中使用“include”,那么它可以正常工作。如果我使用href指向同一index.php中的某个位置,它也可以工作

index.php代码:

<a href="/joomla16/templates/zmtemplate/second.php">Trial</a> 

second.php

<jdoc:include type="modules" name="Header3"             style="none" /> 

<jdoc:include type="modules" name="Header14"            style="none" />                     

Joomla需要一个入口点文件,用于设置Joomla应用程序并启动生成页面所涉及的所有步骤。这不是模板目录中的
index.php
文件。它是基本Joomla目录中的
index.php
文件


在模板目录中,
index.php
文件只是默认模板(而不是应用程序的入口点)。您可以通过在url的查询字符串中传递
tmpl=
来加载不同的模板(还有其他一些很好的方法)。但是模板系统是非常通用的,您实际上可能根本不需要不同的模板文件

首先,您试图访问的页面不是Joomla框架的一部分

在Joomla中,您不能只显式地使用新页面,如
second.php
或其他内容

它基于MVC,您必须根据您的需求为任务编写
组件
模块

组件为您的需求提供了广泛的选项,如表单提交、不同页面(布局)等。模块是最小的单元,它仅在视图页面的任何位置显示内容(来自DB或静态)(您可以在一个页面中包含多个模块)

另一个
Dirty
选项是快速实现您的需求,如下所示

不要在模板内部加载
second.php
,而是在根目录中使用它,然后将Joomla框架作品包含到该页面,使用ht访问为该页面创建一些
SEF URL
,您可以使用下面的脚本包含Joomla框架作品

define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );//this is when we are in the root,means path to Joomla installation
define( 'DS', DIRECTORY_SEPARATOR );

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
希望它有意义


或者您必须更详细地描述您想要实现的目标。

确保在第二个.php文件中导入了Joomla!框架函数,以便您使用
等函数。在第二个.php文件的开头尝试类似的方法

<?php
 defined('_JEXEC') or die;
jimport('joomla.filesystem.file');
JHtml::_('behavior.framework', true);
?>


完成此操作后,现在可以调用jdoc include语句并查看它是否有效。希望这有帮助。

您需要学习HTML、CSS,然后学习PHP和MYSQL。一旦你了解了所有你能学到的东西

PHP和MYSQL有些可选,但我强烈建议您理解它们,以便充分使用Joomla

您的
语句需要在Joomla安装中的Joomla模板中使用。您不能只在任意random index.php文件中放入
语句,并希望它们能够工作。您需要joomla模板引擎来正确呈现这些标记

如果在任何类似以下的plain.php文件中使用include(),则您有权:

<?php include('filename.php'); ?>

没有Joomla也行。所以你需要先从基础开始


查看Lynda.com,了解所有这些主题的培训视频,甚至在youtube.com上查找这些主题

据我所知,joomla中有一个.htaccess文件,它将每个url重写为
index.php
,因此您的第二个php脚本永远不会执行。您可能必须编辑
.htaccess
文件才能不重定向
second.php
second.php也必须运行joomla。你不能直接将一个url指向它,然后期望joomla会发现它。Bansi,谢谢…我是joomla的新手…你能告诉我如何编辑。htaccess to not redirect second.phpMarc,你能详细说明second.php运行joomla意味着什么吗?怎么做?您好…请回复。你能给我一个关于joomla工作原理的好网址吗?这是一个很大的话题。wiki非常好:如果你正在开发某种扩展,你可以看看这里:但是如果你有更多关于你要做什么的细节,我可能会给你一些更有用的提示。您好..回复。我是Joomla的新手…您能告诉我如何使用该组件提交表单吗?你能给我指出一些好的网站来解释MVC模式是如何为Joomla工作的吗?最好的MVC教程是Joomla文档,你可以检查它们是如何实现的,你还可以下载一个示例组件,下载该结构并根据您的需求进行修改很容易。您好……阅读后我收集到的信息是,如果我必须为second.php和index.php制作一个组件,我将调用该组件而不是href链接……正确吗?是的,您可以创建一个组件及其视图(布局)可以从菜单系统链接,也可以从index.phpI hv从示例组件创建一个组件。我通过在index.php的选项中传递组件的名称来测试它。它应该呼应“你好,世界”。URL执行正确,但未显示消息