bootstrap.js and external .js (jQuery)

preliminary remark
Tiki uses jQuery 1.10.2 whilst Bootstrap users at the moment can use either 1.10.2 or 2.0.1. It is said, that one should use the last version of either one of both branches.So we are fine in the respect of jQuery compatibility.

bootstrap.js -> add in tiki-setup.php

To integrate Bootstrap into Tiki we have to add bootstrap.js to Tiki to make Bootstraps dropdown elements and the mobile navigation working. The first question is, where to store the bootstrap files ... I assume, that we will get it with the composer into the "vendors" directory, when we install via shell/SSH/SVN and that this will be the place aswell, when we install a packed Tiki via FTP. So assumably we will have a directory /vendors/bootstrap with all the content in it:

bootstrap directories
  • vendors/bootstrap
  • vendors/bootstrap/dist
  • vendors/bootstrap/dist/css
  • vendors/bootstrap/dist/fonts
  • vendors/bootstrap/dist/js
  • vendors/bootstrap/examples
  • vendors/bootstrap/examples/...
  • vendors/bootstrap/fonts
  • vendors/bootstrap/_includes
  • vendors/bootstrap/js
  • vendors/bootstrap/js/tests
  • vendors/bootstrap/_layouts
  • vendors/bootstrap/less
  • vendors/bootstrap/assets
  • vendors/bootstrap/assets/css
  • vendors/bootstrap/assets/ico
  • vendors/bootstrap/assets/js
  • vendors/bootstrap/assets/img

To integrate bootstrap.js into Tiki we have to add the file into the file /tiki-setup.php in the document root of the Tiki installation. This is done with the following line of code near the end of the file (somebody find a good place?):

loading by default

$headerlib->add_jsfile('vendors/bootstrap/dist/js/bootstrap.js');

It is possible to integrate the "Bootstrap Plugins" which sort out for example the drop down behaviour, one by one, but the easiest is to integrate the bootstrap.js because it contains all plugins.

It would be further more not a big deal to set up a preference for Bootstrap and to load the .js file only when the preference ist active (tried today and worked). Do we need that? Code would be then:

add conditional to a preference

if ( $prefs['style_bootstrap_layout'] == 'y' ) {
    $headerlib->add_jsfile('bootstrap/swfobject/swfobject.js')}

Pls mind, that the second version needed modification in
/lib/prefs/style.php and /templates/admin/include_look.tpl
aswell. That is pretty much it, what is necessary from the JavaScript/jQuery point of view to make Bootstrap running in Tiki.

external jQuery plugins

Wouldn't it be awesome, if even non-tecchie users could easily download jQuery Plugins like for example responsive slideshows and integrate them into tiki mainly with three easy steps?
The idea is as following:

  1. The user downloads the plugin and uploads it to the Tiki document root in a directory "/customjquery", similar to vendors
  2. The user types the path to the .js file into an array in "Look and Feel" similar to the existing custom code areas or similar to the domain areas in "General -> Navigation"
    one line per plugin
  3. The user copies the Plugins .css file to an appropriate place in "/styles" and adds it to his theme with @inlcude


Codewise there should be a few lines in tiki-setup.php that "check" for the above mentioned array and include all plugins line per line into the tiki-setup.php.

There could be naming conflicts of variables and selector between different external .js files, but we could include a linktip to the doc.t.o and there provide a few hints how to deal with such iussues in general. More to write about .js in respect of Bootstrap? Well, go on ...

Alias

BS js