我主要是當前在Magento工作的前端開發人員。和所有Magento一樣,似乎沒有一種簡單的方法來檢索當前頁面中的兄弟姐妹。在PHP中獲取頁面的直接兄弟姐妹
要做到這一點,我首先通過ID確定我在哪個頁面上。
然後,我使用for循環來確定此元素的位置,方法是評估父頁面的子項列表中的ID。
一旦我有了位置,我重新運行循環來獲取當前(i-1)之前或當前位置(i + 1)之前的兄弟姐妹。
這感覺真的很髒,過度設計,我知道有一個更優雅的方法來產生相同的結果,我只需要在正確的方向點。
注意:我擴大與下面http://www.bubbleshop.net/magento-cms-tree.html
守則所列的以下代碼模塊如下:
public function getSiblingsNav($parentID, $currentPageID) {
$parentPage = Mage::getModel('cms/page')->load($parentID);
$activePages = $parentPage->getChildren()->addActiveFilter();
$html = '';
if ($activePages->count() > 0) {
$html .= '<ul class="siblings">';
foreach ($activePages as $page) {
$i++;
if ($currentPageID == $page->getId()) {
$position = $i;
}
}
foreach ($activePages as $page) {
$location++;
if ($location == $position + 1 || $location == $position - 1) {
$html .= '<li class="' . ($location == $position + 1 ? 'next' : 'previous') . '"><a class="button" href="' . $page->getUrl() . '">';
$html .= $page->getTitle();
$html .= '</a></li>';
}
}
$html .= '</ul>';
return $html;
} else {
return false;
}
}
}
可能是你有收集想嘗試MySQL的限制功能。要獲得前一頁,如'id current-page-id order by id asc limit 1' –
啊,我沒有想過那。會給它一個鏡頭。 – nickspiel