Yii: Bootstrap tabs, делаем активной вкладку на которую выполняется переход по ссылке

Yii: Bootstrap tabs, делаем активной вкладку на которую выполняется переход по ссылке По-умолчанию если у вас на страницы несколько вкладок, сделанных на Bootstrap tabs, то активной будет только та, которой вы дали свойство 'active' => true, но это бывает неудобно. Например, для панели управления мы хотим давать ссылки из меню на разные вкладки, то есть делать активными разные вкладки, в зависимости от url в ссылке. Это вовсе не сложно.
Можно за основу взять label у вкладки и тогда нужно в head или layout добавить такой код (обратите внимание на a:contains):
<?php if(CHttpRequest::getParam("tab") != null): ?>
    <script>
        $(document).ready(function() {
            $('#tabs a:contains("<?php echo CHttpRequest::getParam("tab"); ?>")').tab('show');
        });
    </script>
<?php endif; ?>
И в меню или где у вас ссылка стоит - в Url надо добавить Label того таба, который будет активизирован:
Yii::app()->createUrl('/users/'.Yii::app()->user->name, array('tab'=>'Label'))
Но если вы не хотите использовать Label, хотите брать вкладку по id, например, у вас в заголовки вкладки как у меня фигурируют числа выбранных записей, да и вообще если лейбл - длинный заголовок , то в javascript в head или layout будет немного другой код (смотрите - тут href*=):
<?php if(CHttpRequest::getParam("tab") != null): ?>
        <script>
            $(document).ready(function() { 
                $('#tabs a[href*="<?php echo CHttpRequest::getParam("tab"); ?>"]').tab('show');
            });
        </script> 
    <?php endif; ?>

 

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.