gpt4 book ai didi

php - 银条 3.7 : How to render template syntax or PHP output with out spaces?

转载 作者:行者123 更新时间:2023-12-03 13:41:36 25 4
gpt4 key购买 nike

如何删除模板中的空格输出?例如,我有一个 $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。

最佳答案

一种简单的方法是修改 SilverStripe Controller 中的字符串:

class ProductPage_Controller extends Page_Controller
{
/**
* returns the brand name as a class (with dash instead of space)
*
* @return string
*/
public function BrandAsClass()
{
return str_replace(' ', '-', $this->Brand);
}
}

然后在您的模板中调用 $BrandAsClass:

<% loop Children %>
<li class="$BrandAsClass">
<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 %>

关于php - 银条 3.7 : How to render template syntax or PHP output with out spaces?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58799481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com