2014-09-11 50 views
1

我只花了30分钟在网上搜索这个,并不能拿出一个体面的答案。如何阻止Joomla从联系人信息中剥离HTML代码?

但无论如何,在Joomla中,联系人组件有正常的输入字段,但是地址有一个textarea。

这会让我假设你可以在那里输入多行地址,它会显示为单独的行......但它不会。即使我输入换行符,输出也会显示在一行上。

所以我尝试输入<br>分开,并保存后,Joomla去掉这些标签。

在模板中,输出被简单地呼应$this->contact->address

反正是有,爆炸此输入与<br>马克取代换行符写的?

UPDATE:

现在作为一项临时措施,我可以添加HTML代码插入到数据库中的值,从而节省和前端输出。

在另一个笔记上,我现在正在寻找从联系人表单中删除主题行,而不会破坏代码。并尽可能地使用覆盖。谁能帮忙?

回答

0

您是否试过Sourcerer的扩展?

+1

实际上,我所做的是在输入字段中输入'-br-',我想要中断,然后在布局文件中使用str_replace替换'-br-'和'
'。这工作正常。 – Lee 2014-09-14 01:26:50

+0

@李 - 你应该做出答案并接受它。伟大的方式来做到这一点,因为我已经有一个在我的模板中的联系形式的HTML覆盖:) – pathfinder 2017-03-22 18:53:16

0

你的问题很老了,但你有解决这个李?

要创建的Joomla换行符,标题,文本区域等最简单的方式做,这是使用来自NoNumber的ReReplace扩展:http://extensions.joomla.org/extensions/edition/replace/4336

我个人用它来在e.x.添加换行符菜单项标题,其中< br />不被允许并被剥离。

使用ReReplacer,您可以创建自定义标签e.x.然后让ReReplacer用< br />替换{br}。

因此,每次你需要在Joomla的任何地方添加一个换行符,这里的html代码通常会被剥离,你可以添加{br}来添加一个新行。

+0

我确实使用了一种替换我输入的方法,虽然我没有使用插件,因为它不是真的需要。我在php中使用了一个str_replace函数,其中输出地址行。 – Lee 2014-11-11 07:50:51

0

非常古老的问题,但我陷入了同样的问题,并试图找到一个更人性化的解决方案。

您可以在地址textarea中输入多行,并将它们正确输出到HTML页面源。但是如你所知,HTML中的换行符不会被渲染,它们必须被转换为<br>

对于这个PHP有一个很好的功能,nl2br,每次在字符串中遇到换行符时插入一个<br>

所以在你的模板html\com_contact\contact\default_address.php,替换:

echo $this->contact->address; 

echo nl2br($this->contact->address); 

这将做的工作很好,并允许用户以自然插入的联系地址textarea的任何换行符是将被正确渲染,并带有相应的<br>;我相信这比用户在地址栏中插入-br-标签的前一个用户更友好。

+0

这很糟糕,因为它会被更新覆盖,不是吗? – Lee 2017-10-18 16:19:40

+0

它不会被Joomla内核的更新覆盖:我建议在您使用的模板中更改它(如果文件丢失,请重写)。 – DaviG 2017-10-19 17:23:53