php - SilverStripe 3.7:如何在没有空格的情况下呈现模板语法或 PHP 输出?
问题描述
如何删除模板中的空格输出?例如,我有一个 $Brand,其中一些输出是两个单词,就像我的 php 变量中的 TommyHilfiger 一样。输出变为“Tommy Hilfiger”。这非常适合前端显示,但我如何将其渲染为 TommyHilfiger 或 Tommy-Hifiger?我想在我的 html 中将它们用作 css 类。例如,像 $Brand.Nospaces。还是需要在 PHP 中完成?
PHP
class ProductPage extends Page {
// Contact object's fields
public static $db = array(
'Brand' => 'Varchar(255)'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab("Root.Details",
new DropdownField("Brand", "Brand",
array(
"Adidas" => "Adidas",
"AmericanSportsTeams" => "American Sports Teams",
"United Colors of Benetton" => "United Colors of Benetton",
"Valentino" => "Valentino",
)
)
);
return $fields;
}
}
class ProductPage_Controller extends Page_Controller {
}
模板 ProductPage.ss
<% loop Children %>
<li class="$Brand">
<a href="$Link">
<figure style="background-image: URL(<% loop $ProductImages.limit(1,1) %>$Fill(400,600).URL<% end_loop %>);">
<img src="<% loop $ProductImages.limit(1) %>$Fill(400,600).URL<% end_loop %>" alt="$Title"
class="snipcart-add-item"
data-item-id="P$ID $MenuTitle"
data-item-max-quantity="1"
data-item-stock="1"
data-item-name="$Title"
data-item-price="<% if $SalePrice %>$SalePrice<% else %>$Price<% end_if %>"
data-item-description="$Content"
data-item-image="<% loop $ProductImages.limit(1) %>$Pad(50,50).URL<% end_loop %>">
</figure>
<div id="pro-deets">
<h3>$Title</h3>
$Brand
</div>
</a>
</li>
<% end_loop %>
也许与:
$filter = URLSegmentFilter::create();
$className = $filter->filter($title);
我只是不清楚如何将其应用于 $Brand 它需要将模板作为 $BrandNoSpace 或其他东西,因为我需要将 $Brand 及其空格也用于显示的 txt。
解决方案
控制器中的自定义功能将更容易满足您的需求。
class ProductPage_Controller extends Page_Controller
{
public function BrandNoSpaces()
{
return str_replace(' ', '-', $this->Brand);
}
}
在您的模板中:
<li class="$BrandNoSpaces">
“贝纳通的统一色彩”变成
<li class="United-Colors-of-Benetton">
推荐阅读
- ios - ios swift json数据到字典
- javascript - 如何使 tableRow 可点击?我在网上看过,但是没有用
- javascript - 我的 AngularJs 应用程序中的路由问题
- swift - 我无法在 Swift 的类中创建空数组属性
- python - 使用“pathos.pools.ProcessPool”锁定的规范方法是什么?
- python - 如果第 4 行没有记录,则删除文件,PYTHON
- php - 防止直接 url 访问位于受保护的 php 页面内的 pdf 链接
- firebase - Flutter 和 Firebase:从 Firebase 存储返回所有图像
- java - 是否有通用代码将日期格式(时间戳)更改为数字格式
- python-3.x - rasa 初始化 rasa init --no-prompt 面临许多问题