Yii 1.1.21 : apakah mungkin membuat dua tombol dropdown dalam grup tombol yang sama?

Saya baru mengenal Yii, dan saya sedang MENCARI dokumentasi tentang Yii dan CMenu. Saya telah menggunakan Phalcon dan berbagai kerangka kerja lain dengan opsi serupa, namun mesin menu Yii masih baru bagi saya.

Saya mencoba membuat menu tombol dengan dua tombol menu drop down, masing-masing dengan item sub menu, seperti ini: Grup Tombol Tarik Turun

Namun apa yang ditampilkan oleh mesin Yii CMenu adalah dua menu drop-down yang saling bertumpukan dan keduanya dipicu oleh tombol yang sama. Seperti ini: masukkan deskripsi gambar di sini

Melihat kode yang dirender, sepertinya kedua menu dropdown tersebut diberi kelas "menu dropdown" oleh CMenu, (atau apa pun lib yang mengaktifkan bootstrap) dan karena keduanya berada di grup tombol yang sama, ketika "terbuka" kelas ditugaskan, itu membuka KEDUA dropdown secara bersamaan.

Jadi pertanyaan saya sederhana, apakah mungkin, dengan menggunakan array menu CMenu, untuk memiliki dua dropdown yang sama. Apakah ada menu "Opsi Item" atau "Opsi HTML" yang dapat saya tambahkan ke properti item menu yang akan merujuk semua ini ke dua tag css yang berbeda? Aku tahu aku pasti melewatkan sesuatu.

Berikut adalah bagaimana menu dibuat dalam tampilan.

$this->menu = array_merge($this->menu, array(
      array(
          'label' => '<span class="hidden-xs hidden-sm">' . Yii::t('app', 'Export') . '</span>',
          'encodeLabel' => false,
          'htmlOptions' => array('id' => 'export-or-email-btn', 'class' => 'navbar-btn btn-sm',),
          'items' => array(
              array(
                  'label' => Yii::t('app', 'Export'),
                  'icon' => 'fa fa-file-excel-o',
                  'visible' => true,
                  'itemOptions' => array('class' => 'work-order-export-btn'),
              ),
              array(
                  'label' => Yii::t('app', 'Email Export'),
                  'icon' => 'fa fa-envelope-o',
                  'visible' => true,
                  'itemOptions' => array('id' => $model->getClassName(), 'class' => 'email-export-btn', 'data-grid-id' => 'work-order-grid'),
              ),
              array(
                  'label' => Yii::t('app', 'Export as Import Template'),
                  'icon' => 'fa fa-file-excel-o fa-lg',
                  'visible' => true,
                  'itemOptions' => array('class' => 'work-order-export-import-btn'),
              ),),),);

$this->menu = array_merge($this->menu, array(
    array(
        'label' => '<span class="hidden-xs hidden-sm">' . Yii::t('app', 'Actions') . '</span>',
        'encodeLabel' => false,
        'htmlOptions' => array(
            'id' => 'work-order-actions-btn work-order-actions',
            'class' => 'navbar-btn btn-sm',
            'style' => 'margin: 0 0 0 15px;',
        ),
        'items' => array(
            array(
                'icon' => 'fa fa-print fa-lg',
                'label' => Yii::t('app', 'Print to PDF'),
                'visible' => true,
                'itemOptions' => array(
                    'class' => 'work-order-print-pdf',
                ),),
            array(
                'icon' => 'fa fa-print fa-lg',
                'label' => Yii::t('app', 'Print'),
                'visible' => true,
                'itemOptions' => array(
                    'class' => 'work-order-print-selected',
                ),),))));

dan berikut cuplikan kode yang dirender:

<div class="btn-toolbar">
  <div class="operations btn-group-sm btn-group open">
    <button id="export-or-email-btn" class="navbar-btn btn-sm btn btn-primary dropdown-toggle" data-toggle="dropdown" name="yt7" type="button">
      <span class="hidden-xs hidden-sm">Export</span> 
      <span class="caret"></span>
    </button>
    <ul id="yw6" class="dropdown-menu">
      <li class="work-order-export-btn nav-header" data-ol-has-click-handler="">
        <a href="/id#"><i class="fa fa-file-excel-o"></i> Export</a>
      </li>
      <li id="WorkOrder" class="email-export-btn nav-header" data-grid-id="work-order-grid" data-ol-has-click-handler="">
        <a href="/id#"><i class="fa fa-envelope-o"></i> Email Export</a>
      </li>
      <li class="work-order-export-import-btn nav-header" data-ol-has-click-handler="">
        <a href="/id#"><i class="fa fa-file-excel-o fa-lg"></i> Export as Import Template</a>
      </li>
    </ul>
    <button id="work-order-actions-btn work-order-actions" class="navbar-btn btn-sm btn btn-primary dropdown-toggle" style="margin: 0 0 0 15px;" data-toggle="dropdown" name="yt8" type="button">
      <span class="hidden-xs hidden-sm">Actions</span> 
      <span class="caret"></span>
    </button>
    <ul id="yw7" class="dropdown-menu">
      <li class="work-order-print-pdf nav-header">
        <a href="/id#"><i class="fa fa-print fa-lg"></i> Print PDF</a>
      </li>
      <li class="work-order-print-selected nav-header">
        <a href="/id#"><i class="fa fa-print fa-lg"></i> Print Selected</a>
      </li>
    </ul>
  </div>
</div>

person UnKulMunki    schedule 24.01.2020    source sumber


Jawaban (1)


Saya pikir masalah Anda adalah Anda menggabungkan kedua array dalam atribut $this->menu yang sama.

Mungkin Anda harus menggunakan CMenu sebagai widget seperti di dokumentasi

$this->widget('zii.widgets.CMenu', array(
    'items'=>array(
        // Important: you need to specify url as 'controller/action',
        // not just as 'controller' even if default action is used.
        array('label'=>'Home', 'url'=>array('site/index')),
        // 'Products' menu item will be selected no matter which tag parameter value is since it's not specified.
        array('label'=>'Products', 'url'=>array('product/index'), 'items'=>array(
            array('label'=>'New Arrivals', 'url'=>array('product/new', 'tag'=>'new')),
            array('label'=>'Most Popular', 'url'=>array('product/index', 'tag'=>'popular')),
        )),
        array('label'=>'Login', 'url'=>array('site/login'), 'visible'=>Yii::app()->user->isGuest),
    ),
));

Untuk informasi dan atribut lebih lanjut, lihat dokumentasi resmi di sini.

person Hódos Gábor    schedule 27.01.2020
comment
Terima kasih, itulah yang sebenarnya terjadi. - person UnKulMunki; 21.02.2020