Joomla 4 alphaをテストして遊んでいます。私がやろうとしたことは、モジュールの最新記事(mod_articles_latest)をすばやく編集/変更して、新しい関数を追加することです。
Joomla 3.xでは、通常、次のようにhelper.phpファイルに追加することで、モジュールに新しい関数を追加します。
class ModNameHelper
{
public static function myFunctionName($param1,$param2)
{ ...
次に、default.phpから次のように呼び出します。
ModNameHelper::myFunctionName($param1,$param2);
今度は、myCustomFunctionをArticlesLatestHelper.phpに次のように追加して、これらの手順をmod_articles_latestで複製しようとしました。
/**
* @package Joomla.Site
* @subpackage mod_articles_latest
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\Module\ArticlesLatest\Site\Helper;
defined('_JEXEC') or die;
use Joomla\CMS\Access\Access;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\Router\Route;
use Joomla\Component\Content\Site\Model\ArticlesModel;
use Joomla\Registry\Registry;
use Joomla\Utilities\ArrayHelper;
\JLoader::register('ContentHelperRoute', JPATH_SITE . '/components/com_content/helpers/route.php');
/**
* Helper for mod_articles_latest
*
* @since 1.6
*/
abstract class ArticlesLatestHelper
{
/**
* Retrieve a list of article
*
* @param Registry $params The module parameters.
* @param ArticlesModel $model The model.
*
* @return mixed
*
* @since 1.6
*/
public static function getList(Registry $params, ArticlesModel $model)
{ // this is the built-in function ... }
public static function myCustomFunction($myparam) {
}
そして、このようにdefault.phpで関数を呼び出しました
ArticlesLatestHelper::myCustomFunction($myparam);
しかし、それは致命的なエラーを返しました:
Error: Class 'ArticlesLatestHelper' not found: Class 'ArticlesLatestHelper' not found
誰かが私に言うことができます、私はここで何が間違っているのですか?ありがとう!
次のように、default.php
の上部にそのヘルパークラスを含めます。
defined('_JEXEC') or die;
use Joomla\Module\ArticlesLatest\Site\Helper\ArticlesLatestHelper;
次に、そのクラスをdefault.php
ファイル内で使用できます
または、次のようにmod_articles_latest.php
に独自の変数を標準で定義します。
$myStuffHere = ArticlesLatestHelper::myCustomFunction($myparam);
そして、その変数名$myStuffHere
でin default.php
の戻り値を使用できます
これはあなたが探しているものだと思います。