나는 모든 것을 서버 측에서 잘 작동하지만 설치시이 에러를 보였을 때joomla 2.5 안녕하세요 세계 모듈 개발
자습서를 복사하여 복사하고 붙여 넣은 This을 읽으므로 Joomla 2.5 모듈 개발에 새로운 내용입니다.1) 엄격한 기준 : modUserDataHelper :: GetData의()는 C의 정적 호출하면 안 비 정적 방법 \ XAMPP \ htdocs를 \ 줌라 \ 모듈 \ mod_userdata \ mod_userdata.php 라인 (16)
2)에 엄격한 표준 : 변수는 C : \ xampp \ htdocs \ joomla \ modules \ mod_userdata \ helper.php에서 참조 용으로 할당해야합니다.
내 코드에 어떤 문제가 있는지 말해 줄 수 있습니까?
파일 :
mod_userdata.xml
mod_userdata.php
helper.php
index.html
tmpl/default.php
tmpl/index.html
mod_userdata.xml
<?xml version="1.0" encoding="UTF-8"?>
<extension type="module" version="1.7" client="site" method="upgrade">
<name>User Data Module</name>
<author>Minitek.gr</author>
<creationDate>03/08/2011</creationDate>
<copyright>Copyright (C) 2011. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<authorEmail>your_email</authorEmail>
<authorUrl>www.minitek.gr</authorUrl>
<version>1.7.1</version>
<description>Users Data Module</description>
<languages>
</languages>
<files>
<filename module="mod_userdata">mod_userdata.php</filename>
<filename>mod_userdata.xml</filename>
<filename>helper.php</filename>
<filename>index.html</filename>
<folder>tmpl</folder>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field name="moduleclass_sfx" type="text" default="" label="Module Class Suffix" description="Suffix for individual css styling" />
<field name="limit" type="text" default="10" label="Limit Displayed Users" description="Limit Displayed Users" />
<field name="user_id" type="radio" default="1" label="Display user ID" description="Display user ID">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field name="user_name" type="radio" default="1" label="Display Name" description="Display Name">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field name="user_username" type="radio" default="1" label="Display Username" description="Display Username">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
</fieldset>
</fields>
</config>
</extension>
mod_userdata.php
<?php
/**
* @package Joomla.Site
* @subpackage mod_userdata
* @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;
// Include the syndicate functions only once
require_once dirname(__FILE__).'/helper.php';
// Get the user data
$list = modUserDataHelper::getData($params); // <-- ERROR IS HERE!!!
// Get the layout
require JModuleHelper::getLayoutPath('mod_userdata', $params->get('layout', 'default'));
helper.php
<?php
/**
* @package Joomla.Site
* @subpackage mod_userdata
* @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;
class modUserDataHelper
{
function getData(&$params)
{
// Database query
$list = array();
$query = " SELECT id, name, username "
." FROM #__users "
." WHERE block=0 "
." ORDER BY id DESC "
." LIMIT " . $params->get('limit');
$db =& JFactory::getDBO(); // <-- ERROR IS HERE!!!
$db->setQuery($query);
$rows = $db->loadObjectList();
// Get list items
if ($rows!=null)
{
$i=0;
foreach ($rows as $row)
{
$list["users"][$i]["id"]=$row->id;
$list["users"][$i]["name"]=$row->name;
$list["users"][$i]["username"]=$row->username;
$i++;
}
return $list;
}
}
}
tmpl/default.php
<?php
/**
* @package Joomla.Site
* @subpackage mod_userdata
* @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die; ?>
<div class="moduletable<?php echo $params->get('moduleclass_sfx') ?>">
<ul>
<?php for ($i=0;$i< sizeof($list["users"]); $i++) { ?>
<li>
<?php if ($params->get('user_id')) { ?>
<span><?php echo $list["users"][$i]["id"];?></span>
<?php } ?>
<?php if ($params->get('user_name')) { ?>
<span><?php echo $list["users"][$i]["name"];?></span>
<?php } ?>
<?php if ($params->get('user_username')) { ?>
<span><?php echo $list["users"][$i]["username"];?></span>
<?php } ?>
</li>
<?php } ?>
</ul>
</div>
"엄격한 표준"이 설정되어있어 5.4가 아닌 PHP 5.3 용으로 작성된 코드로 인해 오류가 발생합니다. 객체가 인스턴스화되거나 참조 ('new MyClass'와 반대되는'새로운 MyClass')에 의해 할당되고'static '으로 정의되지 않은'modUserDataHelper :: getData()'가 마치' 정적 '이다. – Matt
등 어떻게해야할까요? 내 PHP 버전에서 작동하도록 만들 수 없으며, 무엇을 변경해야합니까? – Irakli
할 수있는 일은 엄격한 기준 (깔개 아래 청소 먼지와 동등한 코드)을 끄거나 나쁜 코드를 수정하는 것입니다. 이 경우,'modUserDataHelper :: getData()'호출은 나쁜 형식이다. 정적 인 컨텍스트가 아니라 인스턴스화 된 객체에서 호출해야합니다. 그것의 인스턴스 ('$ tempObj' 또는 이와 비슷한 것)를 만든 다음 그 객체 ('$ tempObj-> getData();')에서 메소드를 호출하십시오. – Matt