123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- <?php
- // $Id$
- //
- // jqplug.module
- //
- //
- //
- // Created by Bach on 2008-04.
- // Modified by bach on 2009-09-09
- // Copyright 2009 gui. All rights reserved.
- //
- /**
- * @file
- * Loads plugins for jQuery
- *
- *
- *
- */
- define('JQPLUG_PERM_ADMIN', 'administer jqplug');
- /**
- *
- * hook_permission()
- *
- */
- function jqplug_permission(){
- return array('administer jqplug' => array(
- 'title' => 'administer jqplug',
- 'description' => 'administer what jquery plugin will be loaded',
- ),
- );
- }
- /**
- * hook_menu()
- *
- */
- function jqplug_menu() {
- $items['admin/config/user-interface/jgplug'] = array(
- 'title' => 'jq plug',
- 'description' => 'Control which plugin are loaded by theme using jqplug.',
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('jqplug_admin_settings'),
- 'access arguments' => array(JQPLUG_PERM_ADMIN),
- 'type' => MENU_NORMAL_ITEM
- );
- return $items;
- }
- function jqplug_admin_settings() {
-
- $form = array();
- $form['jqplug'] = array(
- '#type' => 'fieldset',
- '#title' => t('jqplug settings'),
- '#description' => t('Control which plugin are loaded by theme using jqplug.')
- );
- $default = array();
- $options = array();
-
- $list = _get_plugList();
-
- ## DEFINE OPTIONS
- foreach($list as $plug){
- $options[$plug['file']] = t($plug['name']);
- }
-
- # config by theme, does'nt work yet 'cause of hook_init which does'nt have acces to global $theme
- /*
- $themes = list_themes();
- foreach($themes as $theme){
- if( $theme->status == 1){
-
- $form['jqplug']['jqplug_theme_' . $theme->name] = array(
- '#type' => 'checkboxes',
- '#title' => t($theme->name),
- '#default_value' => variable_get('jqplug_theme_' . $theme->name, $default),
- '#options' => $options,
- '#description' =>t('<b>' . $theme->name . ' :</b> selecte which plugins will be load for this theme.'),
- );
- }
- }
- */
-
- #same config for alla themes
- $form['jqplug']['jqplug'] = array(
- '#type' => 'checkboxes',
- '#title' => t('jQuery Plugins'),
- '#default_value' => variable_get('jqplug', $default),
- '#options' => $options,
- '#description' =>t('selecte which plugins will be load for all theme.'),
- );
-
- return system_settings_form($form);
- }
- // function jqplug_add($adds = array()){
- //
- // $activated = variable_get('jqplug', array());
- // $list = _get_plugList();
- //
- // $match = true;
- // foreach ($adds as $add) {
- // foreach($list as $plug){
- // if($plug['name'] == $add){
- // variable_set();
- // }
- // }
- // }
- //
- //
- //
- // return $match;
- //
- // }
- function _get_plugList(){
- $list = array();
- $mod_path = drupal_get_path('module', 'jqplug');
- $pluginsFolderPath = $mod_path.'/js/*';
- $strToRemove = array("jquery.", ".pack", "jQuery", ".js", ".compressed", ".minified", ".min");
- $strToSpace = array(".", "-");
- foreach(glob($pluginsFolderPath) as $file){
- $pathParts = explode("/", $file);
- $file = $pathParts[count($pathParts)-1];
- $fileParts = explode(".", $file);
- $extension = $fileParts[count($fileParts)-1];
- if($extension == "js"){
- $PlugName = str_replace($strToRemove, '', $file);
- $PlugName = str_replace($strToSpace, ' ', $PlugName);
- array_push($list, array("file"=>$file,"name"=>$PlugName));
- }
- }
- return $list;
- }
- /**
- * Implementation of hook_init().
- */
- function jqplug_init() {
- # Add the JS for this module.
- $mod_path = drupal_get_path('module', 'jqplug');
- // dsm($mod_path);
- # config by theme, does'nt work yet 'cause of hook_init which does'nt have acces to global $theme
- // global $theme;
- // $theme_plugs = variable_get('jqplug_theme_'.$theme, array());
- // foreach($theme_plugs as $plug){
- // if( $plug != 0 ){
- // drupal_add_js($mod_path.'/js/'.$plug, 'module', 'header', FALSE, TRUE);
- // }
- // }
-
- #same config for alla themes
- $plugs = variable_get('jqplug', array());
- // dsm($plugs);
- foreach($plugs as $plug){
- if( $plug != "0" ){
- // dsm($mod_path.'/js/'.$plug);
- if(file_exists($mod_path.'/js/'.$plug))
- drupal_add_js($mod_path.'/js/'.$plug, array('scope'=>'header', 'group'=>JS_LIBRARY));
-
- $cssFile = preg_replace("/\.js$/", '.css', $plug);
- $cssFile = str_replace(".min", '', $cssFile);
- if(file_exists($mod_path.'/js/'.$cssFile))
- drupal_add_css($mod_path.'/js/'.$cssFile, array('media'=>'screen', 'group'=>CSS_DEFAULT));
-
- }
- }
-
- }
|