我试图了解如何在joomla 2.5中开发自定义组件,在第一步我遇到困难,我想知道什么是使用assignRef()函数和更多信息click here
<?php
/**
* @package Joomla.Tutorials
* @subpackage Components
* @link http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
* @license GNU/GPL
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view');
/**
* HTML View class for the HelloWorld Component
*
* @package HelloWorld
*/
class HelloViewHello extends JView
{
function display($tpl = null)
{
$greeting = "Hello World!";
$this->assignRef( 'greeting', $greeting );
parent::display($tpl);
}
}
在assignRef()函数中,第一个参数充当变量而不是值,因为如果我将其值更改为其他值,则无法显示$ greeting的值: -
http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1 * @license GNU / GPL * /
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view');
/**
* HTML View class for the HelloWorld Component
*
* @package HelloWorld
*/
class HelloViewHello extends JView
{
function display($tpl = null)
{
$greeting = "Hello World!";
$this->assignRef( 'greeting123', $greeting );
parent::display($tpl);
}
}
然后在site / views / hello / tmpl / default.php中,如果我这样写,那么它会显示正确的答案: -
<?php
// No direct access
defined('_JEXEC') or die('Restricted access'); ?>
<h1><?php echo $this->greeting123; ?></h1>
然后结果将是:---- Hello world
我知道,对你而言,这是一个简单或天真的问题,但对我来说,这是我自己的发展领域新时代的开始。任何事情都会受到最多的赞赏..
答案 0 :(得分:3)
在Joomla 1.5中,有两个函数assign()
和assignRef()
用于将数据从视图传递到布局。但是从Joomla 1.6及更高版本开始,只需将数据添加到视图中即可object.since Joomla 1.6 / 2.5 至少需要 PHP 5.2 ,它具有更好的内存管理,这是引入这两种方法的主要原因。那两个
方法是通过引用而不是值来分配变量。的 PHP4 强>
默认情况下使用按值分配,而 PHP5 (使用对象时)使用
通过引用分配。
如果您使用的是Joomla最新版本,您可以通过添加
来实现 $this->variable = $something;
在您的view.html.php
中,它将在布局中提供。
答案 1 :(得分:1)