5

I've got some custom buttons in my Joomla component and I want them to open in a modal window like with the batch button in the com_content component. Anyone has got any idea on how to do it?

Thank you!

7

It's actually pretty simple.

In view.html.php, load modal library, if it's not already done:

JHtml::_('bootstrap.modal');

For adding button to toolbar, use:

// Toolbar object
$toolbar = JToolBar::getInstance('toolbar');
$layout = new JLayoutFile('joomla.toolbar.popup');

// Render the popup button
$dhtml = $layout->render(array('name' => 'test', 'text' => JText::_('Custom button'), 'class' => 'icon-archive', 'doTask' => ''));
$toolbar->appendButton('Custom', $dhtml);

name must match modal id after -. You can change class for different icons.

In default.php or in any file in tmpl folder add modal div, what will be shown after clicking on link

<div class="modal hide fade" id="modal-test">
  <div class="modal-header">
    <button type="button" role="presentation" class="close" data-dismiss="modal">x</button>
    <h3>Modal title</h3>
  </div>
  <div class="modal-body">
    Modal content here
  </div>
  <div class="modal-footer">
    <button class="btn" type="button" data-dismiss="modal">
      <?php echo JText::_('JCANCEL'); ?>
    </button>
  </div>
</div>
  • would this also work if the button is inside of the toolbar? Because right now I create my custom toolbar button with JToolbarHelper::custom inside of view.html.php. I'm sorry I wasn't clear in my post – republicca Aug 4 '15 at 9:28
  • @republicca I edited my answer for adding button to toolbar. – Rene Korss Aug 4 '15 at 10:26
  • 1
    Yes. You just have to load new JForm in your view.html.php and then print it in modal. I can see you have posted new question for this. But I would create new view what and then load that into modal with AJAX. See example JSFiddle here. – Rene Korss Aug 12 '15 at 8:49
  • 1
    Answered in your new question. – Rene Korss Aug 19 '15 at 8:55
  • 1
    Thanks @ZacharyDraper, added doTask to avoid notice. – Rene Korss Aug 29 '18 at 6:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.