Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"
Copy Source | Copy HTML name = SwfField description = Flash CCK. dependencies[] = content dependencies[] = filefield package = CCK core = 6.x version = "6.x-1.1"
Copy Source | Copy HTML// hook_install(モジュールをインストール)関数 swffield_install(){//コンテンツモジュールをロードしますdrupal_load( 'module' 、 'content' );//新しいモジュールのインストールについてCCKに通知しますcontent_notify( 'install' 、 'swffield' );}// hook_uninstall(モジュールのアンインストール)関数 swffield_uninstall(){drupal_load( 'module' 、 'content' );//新しいモジュールの削除についてCCKに通知しますcontent_notify( 'uninstall' 、 'swffield' );}// hook_enable(モジュールを有効化)関数 swffield_enable(){drupal_load( 'module' 、 'content' );//新しいモジュールが含まれていることをCCKに通知しますcontent_notify( 'enable' 、 'swffield' );}// hook_disable(モジュールのシャットダウン)function swffield_disable(){drupal_load( 'module' 、 'content' );// CCKに新しいモジュールを無効にするよう指示しますcontent_notify( 'disable' 、 'swffield' );}
Copy Source | Copy HTML
Copy Source | Copy HTML//必要なファイルを接続しますmodule_load_include( 'inc' 、 'swffield' 、 'swffield.render' );module_load_include( 'inc' 、 'swffield' 、 'swffield.widget' );//初期化。 ファイルフィールドがあるかどうかを確認し、ない場合はモジュールを無効にします。関数 swffield_init(){if (!module_exists( 'filefield' )){module_disable( array ( 'swffield' ));帰る}}//ウィジェットのデータ入力フォームとその処理方法を設定します。//私たちのフィールドはFilefieldフィールドと変わりません関数 swffield_elements(){$ filefield_elements = module_invoke( 'filefield' 、 'elements' );$ elements [ 'swffield_widget' ] = $ filefield_elements [ 'filefield_widget' ];$要素を 返し ます 。}// CCKフォーマッタ情報を報告します関数 swffield_field_formatter_info(){$フォーマッタ = 配列 ('swffield_flash' => 配列 ('label' => t( 'Flash' )、'フィールドタイプ' => 配列 ( 'filefield' )、'description' => t( 'Flashコンテンツの表示' )、)、);$フォーマッタを 返します。}//デフォルトのフィールド値がFilefieldと同じであることを指定しますfunction swffield_default_value(& $ form 、& $ form_state 、 $ field 、 $ delta ){return filefield_default_value( $ form 、 $ form_state 、 $ field 、 $ delta );}//フィールドを空と見なすタイミングを指定しますfunction swffield_content_is_empty( $ item 、 $ field ){return filefield_content_is_empty( $ item 、 $ field );}//別のハンドラーを追加して、フィールド設定を保存しますfunction swffield_form_content_field_overview_form_alter(& $ form 、& $ form_state ){$ form [ '#submit' ] [] = 'swffield_form_content_field_overview_submit' ;}//フィールド設定を保存するためのハンドラーfunction swffield_form_content_field_overview_submit(& $ form 、& $ form_state ){//マテリアルに新しいフィールドを追加する場合if ( isset ( $ form_state [ 'fields_added' ] [ '_add_new_field' ])&& isset ( $ form [ '#type_name' ])){//フィールドタイプ$ new_field = $ form_state [ 'fields_added' ] [ '_add_new_field' ];//材料タイプ$ node_type = $ form [ '#type_name' ];//フィールドデータを含む配列$ field = content_fields( $ new_field 、 $ node_type );//フィールドがモジュールによって追加された場合if ( $ field [ 'widget' ] [ 'module' ] == 'swffield' ){foreach ( $ field [ 'display_settings' ] as $ display_type => $ display_settings ){if ( $ field [ 'display_settings' ] [ $ display_type ] [ 'format' ] == 'default' ){// swffield_flashフィールドの表示を設定します$ field [ 'display_settings' ] [ $ display_type ] [ 'format' ] = 'swffield_flash' ;}}//フィールドを更新しますcontent_field_instance_update( $ field );}}}
Copy Source | Copy HTML// CCKウィジェット情報を報告します関数 swffield_widget_info(){配列を返す ('swffield_widget' => 配列 ('label' => t( 'Flash' )、'フィールドタイプ' => 配列 ( 'filefield' )、「複数の値」 => CONTENT_HANDLE_CORE、'callbacks' => 配列 ( 'default value' => CONTENT_CALLBACK_CUSTOM)、'説明' => 'Flashコンテンツ' 、)、);}//このフックは、フィールドがフォームに追加されるたびに呼び出されますfunction swffield_widget(& $ form 、& $ form_state 、 $ field 、 $ items 、 $ delta = 0 ){$ element = filefield_widget( $ form 、 $ form_state 、 $ field 、 $ items 、 $ delta );$要素を 返し ます 。}//ウィジェット設定(フィールド)function swffield_widget_settings( $ op 、 $ widget ){スイッチ ( $ op ){ケース 「フォーム」 :return swffield_widget_settings_form( $ widget );ケース 「検証」 :return swffield_widget_settings_validate( $ widget );ケース 「保存」 :return swffield_widget_settings_save( $ widget );}}//フィールド設定フォームfunction swffield_widget_settings_form( $ widget ){$ form = module_invoke( 'filefield' 、 'widget_settings' 、 'form' 、 $ widget );//デフォルトでは、CCKはtxtファイルタイプを置き換えます// Swfに置き換えますif ( $ form [ 'file_extensions' ] [ '#default_value' ] == 'txt' ){$ form [ 'file_extensions' ] [ '#default_value' ] = 'swf' ;}//表示されるコンテンツの幅を示すフィールド「幅」$ form [ 'width' ] = 配列 ('#type' => 'textfield' 、'#title' => '幅' 、'#default_value' => $ widget [ 'width' ]? $ウィジェット [ 'width' ]: 470 、'#size' => 15 、'#maxlength' => 5 、'#description' => 'Flashコンテンツの幅' 、'#weight' => 2 。 1);//「高さ」に類似$ form [ 'height' ] = array ('#type' => 'textfield' 、'#title' => '高さ' 、'#default_value' => $ widget [ 'height' ]? $ウィジェット [ '高さ' ]: 350 、'#size' => 15 、'#maxlength' => 5 、'#description' => 'Flashコンテンツの高さ' 、'#weight' => 2 。 2);//ユーザーがJavascriptを無効にしている場合またはFlash Playerを使用していない場合の代替テキスト設定$ form [ 'alt_text' ] = array ('#type' => 'textarea' 、'#title' => '代替テキスト' 、'#default_value' => $ widget [ 'alt_text' ]? $ widget [ 'alt_text' ]: 'Dear friends!<br />このサイトの技術にはAdobe Flash Playerがプリインストールされている必要があるため、ブラウザのプラグインの最新バージョンを<a href = "からインストールすることを強くお勧めします。 http://www.adobe.com/go/getflashplayer">Adobe.com </a> ' 、'#description' => 'ユーザーにFlash Playerがインストールされていない場合、このテキストが表示されます' 、'#weight' => 2 。 3);$フォームを 返す ;}//設定フォーム検証ツールfunction swffield_widget_settings_validate( $ widget ){$ extensions = array_filter(explode( '' 、 $ widget [ 'file_extensions' ]));$ flash_extensions = array ( 'swf' );//ファイル拡張子を確認しますif (count(array_diff( $ extensions 、 $ flash_extensions )))){form_set_error( 'file_extensions' 、 'SWF形式のみがサポートされています' );}//幅と高さを確認しますforeach ( array ( 'width' 、 'height' ) as $ resolution ){if ( empty ( $ widget [ $ resolution ])||!preg_match( '/ ^ [0-9] + $ /' 、 $ widget [ $ resolution ])){form_set_error( $ resolution 、 '無効なコンテンツサイズが指定されました。' );}}return module_invoke( 'filefield' 、 'widget_settings' 、 'validate' 、 $ widget );}//フィールド設定を保存しますfunction swffield_widget_settings_save( $ widget ){$ filefield_settings = module_invoke( 'filefield' 、 'widget_settings' 、 'save' 、 $ widget );return array_merge( $ filefield_settings 、 array ( 'width' 、 'height' 、 'alt_text' ));}
Copy Source | Copy HTML//テーマフック//ウィジェットのテーマ関数を設定し、フォーマッターとサイトでの表示関数 swffield_theme(){$テーマ = 配列 ('swffield_widget' => 配列 ('引数' => 配列 ( '要素' => NULL)、)、'swffield_formatter_swffield_flash' => 配列 ('引数' => 配列 ( '要素' => NULL)、)、'swffield_flash' => 配列 ('arguments' => 配列 ( 'item' => NULL、 'attributes' => NULL)、)、);$テーマを 返します。}//ウィジェットのテーマはフォーム要素と同じですfunction theme_swffield_widget( $ element ){テーマを返す ( 'form_element' 、 $ element 、 $ element [ '#children' ]);}//フォーマッタのテーマfunction theme_swffield_formatter_swffield_flash( $ element ){//ファイルがアップロードされているかどうかを確認しますif ( empty ( $ element [ '#item' ] [ 'fid' ])){return '' ;}$ field = content_fields( $ element [ '#field_name' ]、 $ element [ '#node' ]-> type);$ item = $ element [ '#item' ];//フィールドを表示するクラス$ class = 'swffield swffield-' 。 $ field [ 'field_name' ];// swffield_flash関数を使用して出力を返しますテーマを返す ( 'swffield_flash' 、 $ item 、 array ( 'class' => $ class 、 'width' => $ field [ 'widget' ] [ 'width' ]、 'height' => $ field [ 'widget' ] [ 'height' ]、 'alt' => $フィールド [ 'widget' ] [ 'alt_text' ]));}//ヘルパーテーマ関数function theme_swffield_flash( $ item 、 $ attributes ){//ライブラリ「swfobject.js」をダウンロードしますdrupal_add_js(drupal_get_path( 'module' 、 'swffield' )。 "/" 。 "swfobject.js" );//表示されたアイテムのIDを生成します$ id = "swffield-" 。 rand(1、10000);//ファイルパス$ file = "/" 。 $アイテム [ 'filepath' ];//準備完了要素return "<div id = '" 。 $ id 。 "'class ='" 。 $属性 [ 'クラス' ]。 「 '>」。 $属性 [ 'alt' ]。 「<script type = 'text / javascript'>」。 「var flashvars = {};」。 "var params = {bgcolor: '#ffffff'、allowFullScreen: 'false'、allowScriptAccess: 'always'、wmode: 'opaque'};"。 "new swfobject.embedSWF( '" 。 $ file 。 "'、 '" 。 $ id 。 "'、 '" 。 $ attributes [ ' width ' ]。 "'、 '" 。 $ attributes [ ' height ' ]。 " '、' 9.0.0 '、false、flashvars、params); "。 「</ script>」。 "</ div>" ;}
Source: https://habr.com/ru/post/J96549/More articles:Yahoo! Yahoo!プラットフォームを開きます メッセンジャーGoogle Technology User Groupがモスクワに登場セルラー通信はどのように始まりましたか?グーーーHTC HeroのヨーロッパのユーザーがAndroid 2.1を利用できるようになりましたYouTubeとグッゲンハイム美術館で最もクリエイティブなビデオを検索ロシア製機器またはITスペシャリストの1日有料のWebサービスを開いた後、何をしましたか? スタートアップの精神分析回路-もう一度銃を持ったヤギについてPHPでスケーラブルなベクトルグラフを作成するAll Articles