0
これは長いショットだと思うが、誰かが私を助けてくれることを願っている。以下は、すべての製品を取得する部分だと思うが、すべてを表示するのではなく、カテゴリ。これは、「シンプル」と呼ばれるテーマを使用するシルバーストライプサイトです。私はSSで働いたことがないので、どんな助けもスーパーになるでしょう。シルバーストライプ、特定のカテゴリのみを表示
<?php
class ConceptPage extends Page
{
static $has_one = array(
);
static $many_many = array(
'Products' => 'Product'
);
static $allowed_children = array(
'none' => 'none'
);
function getCMSFields()
{
$fields = parent::getCMSFields();
return $fields;
}
}
class ConceptPage_Controller extends Page_Controller
{
static $allowed_actions = array(
'show',
);
public function init()
{
parent::init();
Requirements::css('products/css/products.css');
}
//Return the list of products for this category
public function getProductsList()
{
/*
$products = $this->Products(Null, 'Sort ASC');
foreach($products as $product){
$productsArray[] = $this->Link() . 'show/' . $product->URLSegment;
}
if(count($productsArray) > 0){
GoogleSitemap::register_routes($productsArray);
}
return $products;
*/
return $this->Products(Null, 'Sort ASC');
}
public function getProductsListDE()
{
$products = $this->Products(Null, 'Sort ASC');
$productsList = new ArrayList();
foreach ($products as $product) {
$product->Title = $product->Title_DE;
$product->SubTitle = $product->SubTitle_DE;
$productsList->push($product);
}
return $productsList;
}
//Get's the current product from the URL, if any
public function getCurrentProduct()
{
$Params = $this->getURLParams();
$URLSegment = Convert::raw2sql($Params['ID']);
if($URLSegment && $Product = DataObject::get_one('Product', "URLSegment = '" . $URLSegment . "'"))
{
return $Product;
}
}
//Shows the Product detail page
function show()
{
//Get the Product
if($Product = $this->getCurrentProduct())
{
$Data = array(
'Product' => $Product,
'MetaTitle' => $Product->Title,
'ExtraLink' => 'show/' . $Product->URLSegment
);
$this->addToBreadcrumbs($Product);
//return our $Data array to use, rendering with the ProductPage.ss template
return $this->customise($Data)->renderWith(array('ProductPage', 'Page'));
}
else //Product not found
{
return $this->httpError(404, 'Sorry that product could not be found');
}
}
}