[Drupal] créer des functions javascript a la volée!
Submitted by Sir Squall on Wed, 09/16/2009 - 17:12
Sa peut être pratique on sais jamais :)!
Dans mon cas je m'en suis servi car j'avais un petit flash qui renvoi les valeurs a une fonction javascript et ce petit flash apparait pour chaque champs cck de type number, ce qui fait que quand j'en ajoutai 1 bah je devais aller ajouter la fonction javacript a la main! Pas super combo :( !!
Donc je crée des functions automatiquement avec le nom de mon champ cck, ce qui fait que je me retrouve avec des function field_price(){ alert('yeah'); } ect.. et que dans mon flash le nom de la fonction et renseigner automatiquement yeah!
function search_engine_display_block_2(){ $path = drupal_get_path('module', 'search_engine'); if(arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))){ //get type $type = search_engine_get_type(arg(2)); //load cck field $content_type = content_types($type); $fields = $content_type['fields']; foreach($fields as $field => $value){ //add flash for all number and integer switch($value['type']){ case 'number_integer': case 'number_float': //load value max $sql = "SELECT MAX(".$value['field_name']."_value) AS max FROM {content_type_".$type."} "; $data = db_fetch_object(db_query($sql)); //arrondi a la centaine supérieur $data->max = ceil($data->max/100)*100; //create function javascript to get value $js .= " function ".$value['field_name']."(data) { if(typeof json == 'undefined'){ var json = new Object(); } json.".$value['field_name']." = data; var encoded = JSON.stringify(json); Drupal_json_form.fields = encoded; search_engine_ajax_load(); }\n"; //Affiche le flash $out .= '<div id="FlashPrix" class="se_option" style="padding: 5px 0px 0px; width: 210px;">'; $out .= '<object id="sliderMono1" height="80" align="middle" width="210" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">'; $out .= '<param value="sameDomain" name="allowScriptAccess"/>'; $out .= '<param value="'.base_path().$path.'/sliderMonoVente.swf" name="movie"/>'; $out .= '<param value="high" name="quality"/>'; $out .= '<param value="#ffffff" name="bgcolor"/>'; $out .= '<param value="showall" name="scale"/>'; $out .= '<param value="transparent" name="wmode"/>'; $out .= '<param value="unitName='.$value['prefix'].'&startPos=0&endPos='.$data->max.'&funcName='.$value['field_name'].'&algorithm=linear&id=1" name="FlashVars"/>'; $out .= '<embed height="80" align="middle" width="210" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" allowfullscreen="true" type="application/x-shockwave-flash" allowscriptaccess="sameDomain" name="sliderMono1" bgcolor="#ffffff" quality="high" flashvars="unitName='.$value['prefix'].'&startPos=0&endPos='.$data->max.'&funcName='.$value['field_name'].'&algorithm=linear&id=1" src="'.base_path().$path.'/sliderMonoVente.swf"/>'; $out .= '</object>'; $out .= '</div>'; break; } } drupal_add_js($js,'inline'); return $out; } return false; }
C'est fait !!!
http://api.drupal.org/api/function/drupal_add_js






Recent comments
40 weeks 1 day ago
46 weeks 4 days ago
46 weeks 6 days ago
50 weeks 5 days ago
50 weeks 5 days ago
50 weeks 6 days ago
1 year 3 weeks ago
1 year 5 weeks ago
1 year 5 weeks ago
1 year 5 weeks ago