PDA

View Full Version : مشکل Active شدن در CMenu



engmmrj
شنبه 12 بهمن 1392, 14:25 عصر
سلام
من با CMenu یک سری منو تولید کردم که این منو ها sub menu هم داره
حالا براش حالت active گذاشتم ، مشکل اینجاست که وقتی نو یک sub menu هست باید فقط منو رو active کنه sub menu رو !


<?php $this->widget('zii.widgets.CMenu',array(
'encodeLabel'=>false ,
'activeCssClass'=>'active',

'activateParents'=>true,
'submenuHtmlOptions'=>array('class'=>'dropdown-menu'),
'htmlOptions'=>array('class'=>'nav navbar-nav'),

'items'=>array(
array('label' =>'امکانات'.' <b class="caret"></b>', 'url' => array(''),'itemOptions'=>array('class'=>'dropdown'),'linkOptions'=>array('class'=>'dropdown-toggle','data-toggle'=>'dropdown'),
'items' => array(

array('label' => 'مشخصات دانشجو', 'url' => array('site')),
array('label' => 'دروس رشته', 'url' => array('site')),
array('label' => 'تغییر کلمه عبور', 'url' => array('site/ChangePass')),
array('label' => 'کارت ورود به جلسه', 'url' => array('site'))
)
),
array('label'=>'انتخاب واحد', 'url' => array('site/CreateUnit')),
array('label' => 'اطلاعات مالی دانشجو'.' <b class="caret"></b>', 'url' => array(''),'itemOptions'=>array('class'=>'dropdown'),'linkOptions'=>array('class'=>'dropdown-toggle','data-toggle'=>'dropdown'),
'items' => array(

array('label' => 'جدول شهریه', 'url' => array('site/Tuition'),),
array('label' => 'شهریه ترم جاری', 'url'=>array('site/TuitionUnit'))
)
),
array('label' => 'کارنامه و برنامه هفتگی'.' <b class="caret"></b>', 'url' => array(''),'itemOptions'=>array('class'=>'dropdown'),'linkOptions'=>array('class'=>'dropdown-toggle','data-toggle'=>'dropdown'),
'items' => array(

array('label' => 'برنامه هفتگی', 'url' => array('site/WeeklySchedule')),
array('label' => 'کارنامه ترم جاری', 'url' => array('site/WorkBook')),
),
),

array('label' => 'صفحه اصلی', 'url' => array('site/index')),




)
)
);
output . . .

<ul class="nav navbar-nav" id="yw0">
<li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="/university/site/WeeklySchedule">امکانات <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/university/site/site">مشخصات دانشجو</a></li>
<li><a href="/university/site/site">دروس رشته</a></li>
<li><a href="/university/site/ChangePass">تغییر کلمه عبور</a></li>
<li><a href="/university/site/site">کارت ورود به جلسه</a></li>
</ul>
</li>
<li><a href="/university/site/CreateUnit">انتخاب واحد</a></li>
<li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="/university/site/WeeklySchedule">اطلاعات مالی دانشجو <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/university/site/Tuition">جدول شهریه</a></li>
<li><a href="/university/site/TuitionUnit">شهریه ترم جاری</a></li>
</ul>
</li>
<li class="dropdown active"><a class="dropdown-toggle" data-toggle="dropdown" href="/university/site/WeeklySchedule">کارنامه و برنامه هفتگی <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="active"><a href="/university/site/WeeklySchedule">برنامه هفتگی</a></li>
<li><a href="/university/site/WorkBook">کارنامه ترم جاری</a></li>
</ul>
</li>
<li><a href="/university/site/index">صفحه اصلی</a></li>
</ul>

الان هم به منو کلاس active رو اضافه کرده هم به submenu

<li class="dropdown active">
<ul class="dropdown-menu">
<li class="active"></li>
</ul>
</li>

MMSHFE
شنبه 12 بهمن 1392, 15:33 عصر
متوجه مشکلتون نشدم. میخواین وقتی روی Submenu هستین، دقیقاً چی active بشه؟ منو، زیرمنو، یا هر دو؟

engmmrj
شنبه 12 بهمن 1392, 16:22 عصر
متوجه مشکلتون نشدم. میخواین وقتی روی Submenu هستین، دقیقاً چی active بشه؟ منو، زیرمنو، یا هر دو؟
میخوام وقتی تو submenu هستم منو والد active بشه .
الان هم منو والد active میشه هم منو child

MMSHFE
شنبه 12 بهمن 1392, 17:01 عصر
برای منوهای فرعی، 'active'=>false, رو دستی ست کنید ببینید درست میشه یا نه چون قاعدتاً وقتی Yii ببینه Route با url یک منو همخوانی داره، اون رو فعال میکنه. البته میشه یک ترفند دیگه هم گذاشت و اون، ست کردن 'activeClass'=>'noClass', برای زیرمنوها هست که درواقع باعث میشه اگه route با url زیرمنو یکی بود، بجای کلاس active بهش کلاس noClass رو بده (یا هر اسم دیگه که خودتون دوست دارین). اینطوری چون کلاس active بهش داده نشده، ازنظر ظاهری مثل کلاس active بنظر نمیرسه. امیدوارم منظورمو خوب توضیح داده باشم.

engmmrj
شنبه 12 بهمن 1392, 21:54 عصر
برای منوهای فرعی، 'active'=>false, رو دستی ست کنید ببینید درست میشه یا نه چون قاعدتاً وقتی Yii ببینه Route با url یک منو همخوانی داره، اون رو فعال میکنه. البته میشه یک ترفند دیگه هم گذاشت و اون، ست کردن 'activeClass'=>'noClass', برای زیرمنوها هست که درواقع باعث میشه اگه route با url زیرمنو یکی بود، بجای کلاس active بهش کلاس noClass رو بده (یا هر اسم دیگه که خودتون دوست دارین). اینطوری چون کلاس active بهش داده نشده، ازنظر ظاهری مثل کلاس active بنظر نمیرسه. امیدوارم منظورمو خوب توضیح داده باشم.
هیچ کدام جواب نداد .
از این روش با jquery استفاده کردم درست شد :

$('.dropdown-menu li').attr('class',false);

engmmrj
شنبه 12 بهمن 1392, 22:00 عصر
یافتم استاد :لبخند: .

'activateItems' => false,
بازم بخاطر مطالعه نکردن document بود :لبخند: