2010-08-13 30 views
9

tôi muốn kiểm tra qua php nếu một trang là một cms_page trong Magento. Tôi cần breadcrumbs diffrent cho các trang cms, vì vậy im cố gắng này với một điều kiện, nhưng tôi không có ý tưởng làm thế nào để hoặc nơi để xem xét. Heres breadcrumbs.phtml của tôi cho đến nay.Magento - kiểm tra xem trang cms

<?php if(this is a cms page): ?> 

<p>some content</p> 
<?php else: ?> 
<?php if($crumbs && is_array($crumbs)): ?> 
<div class="breadcrumbs"> 
    <ul> 
    <?php $charsges = 0; ?> 
    <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?> 
     <?php 
     $charsges = strlen($_crumbInfo['label']) + $charsges; 
     if($charsges > 40){ 
      $chars = 18; 
      if(strlen($_crumbInfo['label']) > $chars){ 
       $_crumbInfo['label'] = substr($_crumbInfo['label'], 0, $chars); 
       $_crumbInfo['label'] = $_crumbInfo['label'].'..'; 
      } 
     } 
     ?> 
     <li class="<?php echo $_crumbName ?>"> 
     <?php if($_crumbInfo['link']): ?> 

     <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']) ?></a> 
     <?php elseif($_crumbInfo['last']): ?> 
     <strong><?php echo $this->htmlEscape($_crumbInfo['label']) ?></strong> 
     <?php else: ?> 

     <?php echo $this->htmlEscape($_crumbInfo['label']) ?> 
     <?php endif; ?> 
     <?php if(!$_crumbInfo['last']): ?> 
     <span>&nbsp;&gt;&nbsp;</span> 
     <?php endif; ?> 
     </li> 
    <?php endforeach; ?> 
    </ul> 
</div> 
<?php endif; ?> 

Greets rito

Trả lời

29

Sau đây sẽ cho bạn những gì bạn muốn

//from a block or phtml script 
$this->getRequest()->getModuleName() 

Khi điều này trả về chuỗi 'cms', bạn đang ở trên một trang CMS.

Khi giao diện người dùng và bộ định tuyến quản trị của Magento không thể tìm thấy kết quả phù hợp trên URL của bạn, bộ định tuyến CMS sẽ tiếp quản. Nếu bộ định tuyến CMS tìm thấy một kết quả phù hợp (dựa trên các trang CMS bạn đã thiết lập), nó sẽ tắt yêu cầu đến mô-đun cms và bộ điều khiển Mage_Cms_IndexController.

+0

cảm ơn, hãy thử vào thứ hai. – Rito

+0

hoạt động hoàn hảo! Cảm ơn rất nhiều. – Rito

+4

'' 'Mage :: app() -> getRequest() -> getRouteName() === 'cms'''' – cmuench

Các vấn đề liên quan