CODNITIVE の Sidebar Navigation Menu Professional for Magento を使用しており、デフォルトで拡張できるようにしています。特に、最初のリスト項目だけをデフォルトで展開するソリューションが必要です。app/code/community/codnitive/sidenav/block/ で Navigation.php を編集しようとしています:
$collapsibleClass = '';
if ($config->isCollapsible()) {
$collapsibleClass = ' collapsible';
}
// add collapsible arrow and wrraper
$arrow = '';
$extraStyle = '';
$collapsibleIconPosition = $config->getCollapsibleIconPosition();
if ($config->isCollapsible()) {
$width = $config->getCollapsibleIconType() === 'arrow' ? 8 : 16;
$height = 0;
$expanded = 0;
if ($hasActiveChildren) {
$width = $config->getCollapsibleIconType() === 'arrow' ? 8 : 16;
$height = 16;
}
if ($height == 0) {
$extraStyle = ' display:none;';
}
if ($height == 0 && $collapsibleIconPosition === 'left') {
$liMarginLeft += $width;
}
if ($this->isCategoryActive($category)) {
$expanded = 1;
}
$expanded = ' expanded="' . $expanded .'"';
$spanOnclick = 'onclick="Codnitive.expandMenu(this.parentNode)';
$spanClass = $config->getCollapsibleIconType() . '-' . $collapsibleIconPosition;
$arrow = '<span class="' . $spanClass . ' " ' . $spanOnclick . '" style="width: ' . $width . 'px; height: ' . $height . 'px;' . $extraStyle . '"></span>';
}
このコードを追加して、目的のカテゴリを展開すると
if ($category->getId() == '35') {
$expanded = 1;
}
2 つの問題が発生します。
- 別のカテゴリがアクティブな場合でも、カテゴリは展開されたままです。
「プラス」記号 (カテゴリを展開できることを示す) は残りますが、「マイナス」にする必要があります。$collapsibleIconPosition は「正しい」べきだと思いますか?
if ($height == 0 && $collapsibleIconPosition === 'left') { $liMarginLeft += $width; }