【发布时间】:2022-01-12 17:16:18
【问题描述】:
我有这段代码已经在我需要完成的页面上运行。 (整个 Joomla 3.9 站点是自定义代码、组件等的科学怪人。)
$placeholder_country = JText::_('COM_ACME_PLACEHOLDER_COUNTRY_'.strtoupper(str_replace('-','_',$var['country'])));
if($placeholder_country === 'COM_ACME_PLACEHOLDER_COUNTRY_'.strtoupper(str_replace('-','_',$var['country'])) || !$placeholder_country) $placeholder_country = '';
$article->text = JString::str_ireplace("{%placeholder_country%}", $placeholder_country, $article->text);
我尝试添加以下内容,看看是否可以使用相同的方式设置标题。
$placeholder_country = JText::_('titlenick_'.strtoupper(str_replace('-','_',$var['country'])));
if($placeholder_country === 'titlenick_'.strtoupper(str_replace('-','_',$var['country'])) || !$placeholder_country) $placeholder_country = '';
$document->setTitle = JString::str_ireplace("{%placeholder_country%}", $placeholder_country, $article->text);
意思是,我进入 Joomla 语言覆盖部分,添加语言常量,例如“TITLENICK_PERU”
在“文本”Id 中输入我想要的页面标题。例如“便宜的秘鲁假期”。
编辑:
尝试使用 Anibal 的以下答案来解决:
在给出上述见解后,取得了进展。
我已经确认这是可行的
$placeholder_nicktitle = JText::_('titlenick_'.strtoupper(str_replace('-','_',$var['country'])));
if($placeholder_nicktitle === 'titlenick_'.strtoupper(str_replace('-','_',$var['country'])) || !$placeholder_nicktitle) $placeholder_nicktitle = '';
$article->text = JString::str_ireplace("{%placeholder_nicktitle%}", $placeholder_nicktitle, $article->text);
在 Joomla 文章中放置 {%placeholder_nicktitle%} 会导致覆盖触发并显示我在覆盖中键入的文本。
现在的问题是如何让它工作,以便我在覆盖“文本”字段中输入的任何文本最终都会成为页面标题?
我想这需要改变
$article->text = JString::str_ireplace("{%placeholder_nicktitle%}", $placeholder_nicktitle, $article->text);
这是一个很长的镜头,但我尝试用这个替换上面的行(它抛出了 500 错误)
$document =& JFactory::getDocument();
$document->setTitle("JString::str_ireplace(".
{%placeholder_nicktitle%}", $placeholder_nicktitle, $article-
>text);");
旁注:现在页面的标题来自 Joomla 文章标题本身“{%country_name%} 廉价假期”就是我们在其中的内容。我相信自定义编码。我尝试在 Joomla 文章标题中添加 {%placeholder_nicktitle%},但由于某种原因不起作用
【问题讨论】:
-
请将您的 Joomla 问题发布到 Joomla Stack Exchange(您已经是会员并且一年多没有提问)。
-
刚刚把问题贴在那里,我想因为问题涉及 PHP 和自定义代码,所以我会在这里发布
-
这个问题当然依赖于对 Joomla(及其核心类/方法)的一些背景知识。如果有人想回答这个问题,请发到joomla.stackexchange.com/q/31738/12352
-
如果用户愿意,他们应该仍然可以在此处发布答案。
-
Stack Overflow 用户当然可以在这里发帖,但我正在努力发展 Stack Exchange 测试版社区。 SO 在一天内收到的问题比 JSE 在一年内收到的问题还多。 JSE 社区正经历着停滞不前的增长,因为它正在与成熟的 SO 和 Joomla 拥有的论坛争夺注意力。