【发布时间】:2011-01-19 00:50:41
【问题描述】:
我需要在整个网站上限制 Magento 面包屑的输出,我认为我在这个脚本中大部分时间都在那里。
$breadcrumbs = "";
$bleng = 0;
foreach($crumbs as $_crumbName=>$_crumbInfo):
$breadcrumbs .= "<li class=\"".$_crumbName."\">";
$bleng = $bleng + strlen($_crumbName);
if($_crumbInfo['link']):
$breadcrumbs .= "<a href=\"".$_crumbInfo['link']."\" title=\"".$this->htmlEscape($_crumbInfo['title'])."\">".$this->htmlEscape($_crumbInfo['label'])."</a>";
$bleng = $bleng + strlen($this->htmlEscape($_crumbInfo['label']));
elseif($_crumbInfo['last']):
$breadcrumbs .= "<strong>".$this->htmlEscape($_crumbInfo['label'])."</strong>";
$bleng = $bleng + strlen($this->htmlEscape($_crumbInfo['label']));
else:
$breadcrumbs .= $this->htmlEscape($_crumbInfo['label']);
$bleng = $bleng + strlen($this->htmlEscape($_crumbInfo['label']));
endif;
if(!$_crumbInfo['last']):
$breadcrumbs .= "<span>></span>";
endif;
$breadcrumbs .= "</li>";
endforeach;
if ($bleng > 70): // Arbitrary threshold
$trimmed = $breadcrumbs;
echo substr($trimmed, 0, 70);
echo $trimmed."...";
else:
echo $breadcrumbs;
endif;
这种快速修改的问题是$bleng 正在计算 html 标记以及可见文本中的字符。我需要的是仅计算可见文本(面包屑“标签”)并相应地修剪$breadcrumbs。实际上,此脚本正在从任何可见文本顶部的字符串中修剪 and 标记,但在最后添加它们似乎不起作用:
echo $trimmed."...</a></li>";
我怀疑有一种对 SEO 更友好的 JS 方法可以做到这一点,它不需要我使用任意字符限制。我很乐意为此使用 PHP 或 JS,只要它有效。有什么建议吗?
【问题讨论】:
-
发布后,我找到了一个 jQuery 解决方案,我将在这里尝试:stackoverflow.com/questions/3834353/trimming-a-breadcrumb
标签: php javascript magento