Mercurial > defr > drupal > scald > mee
comparison mee.module @ 11:272628486e75
Adding the MEE Ressource Manager !
| author | Franck Deroche <franck@defr.org> |
|---|---|
| date | Thu, 04 Jun 2009 12:59:55 +0200 |
| parents | 57e611f691eb |
| children | da5d54d099b1 |
comparison
equal
deleted
inserted
replaced
| 10:5328b450f7b7 | 11:272628486e75 |
|---|---|
| 11 * Implementation of hook_theme(). | 11 * Implementation of hook_theme(). |
| 12 */ | 12 */ |
| 13 function mee_theme() { | 13 function mee_theme() { |
| 14 $theme = array( | 14 $theme = array( |
| 15 'mee_textarea' => array( | 15 'mee_textarea' => array( |
| 16 'arguments' => array('element' => NULL), | |
| 17 ), | |
| 18 'mee_ressource_manager' => array( | |
| 16 'arguments' => array('element' => NULL), | 19 'arguments' => array('element' => NULL), |
| 17 ), | 20 ), |
| 18 'mee_formatter_default' => array( | 21 'mee_formatter_default' => array( |
| 19 'arguments' => array('element' => NULL), | 22 'arguments' => array('element' => NULL), |
| 20 ), | 23 ), |
| 339 */ | 342 */ |
| 340 function mee_textarea_process($element, $edit, $form_state, $form) { | 343 function mee_textarea_process($element, $edit, $form_state, $form) { |
| 341 drupal_add_css(drupal_get_path('module', 'mee') .'/css/mee.css'); | 344 drupal_add_css(drupal_get_path('module', 'mee') .'/css/mee.css'); |
| 342 drupal_add_js(drupal_get_path('module', 'mee') .'/mee.js'); | 345 drupal_add_js(drupal_get_path('module', 'mee') .'/mee.js'); |
| 343 | 346 |
| 347 $element['mee'] = array( | |
| 348 '#type' => 'markup', | |
| 349 '#prefix' => '<div class="mee-wrap-editor-library">', | |
| 350 '#suffix' => '</div>', | |
| 351 ); | |
| 352 | |
| 344 $field = $form['#field_info'][$element['#field_name']]; | 353 $field = $form['#field_info'][$element['#field_name']]; |
| 345 $field_key = $element['#columns'][0]; | 354 $field_key = $element['#columns'][0]; |
| 346 $element[$field_key] = array( | 355 $element['mee']['ressource_manager'] = array( |
| 356 '#type' => 'markup', | |
| 357 '#weight' => 0.5, | |
| 358 '#theme' => 'mee_ressource_manager' | |
| 359 ); | |
| 360 $element['mee']['ressource_manager'][0] = array( | |
| 361 'title' => array( | |
| 362 '#type' => 'markup', | |
| 363 '#value' => 'Lorem ipsum' | |
| 364 ), | |
| 365 'weight' => array( | |
| 366 '#type' => 'weight', | |
| 367 ) | |
| 368 ); | |
| 369 $element['mee'][$field_key] = array( | |
| 347 '#type' => 'textarea', | 370 '#type' => 'textarea', |
| 348 '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL, | 371 '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL, |
| 349 '#rows' => !empty($field['widget']['rows']) ? $field['widget']['rows'] : 10, | 372 '#rows' => !empty($field['widget']['rows']) ? $field['widget']['rows'] : 10, |
| 350 '#weight' => 0, | 373 '#weight' => 0, |
| 351 // The following values were set by the content module and need | 374 // The following values were set by the content module and need |
| 355 '#required' => $element['#required'], | 378 '#required' => $element['#required'], |
| 356 '#field_name' => $element['#field_name'], | 379 '#field_name' => $element['#field_name'], |
| 357 '#type_name' => $element['#type_name'], | 380 '#type_name' => $element['#type_name'], |
| 358 '#delta' => $element['#delta'], | 381 '#delta' => $element['#delta'], |
| 359 '#columns' => $element['#columns'], | 382 '#columns' => $element['#columns'], |
| 360 '#prefix' => '<div class="mee-wrap-editor-library">', | 383 # '#prefix' => '<div class="mee-wrap-editor-library">', |
| 361 '#suffix' => '</div>', | 384 # '#suffix' => '</div>', |
| 362 '#dnd-enabled' => TRUE, | 385 '#dnd-enabled' => TRUE, |
| 363 '#dnd-settings' => array( | 386 '#dnd-settings' => array( |
| 364 'drop_selector' => '#'. $element['#id'] .' .drop', | 387 'drop_selector' => '#'. $element['#id'] .' .drop', |
| 365 'url' => $field['mee_dnd_callback_url'], | 388 'url' => $field['mee_dnd_callback_url'], |
| 366 ), | 389 ), |
| 368 | 391 |
| 369 if (!empty($field['mee_processing'])) { | 392 if (!empty($field['mee_processing'])) { |
| 370 $filter_key = (count($element['#columns']) == 2) ? $element['#columns'][1] : 'format'; | 393 $filter_key = (count($element['#columns']) == 2) ? $element['#columns'][1] : 'format'; |
| 371 $format = isset($element['#value'][$filter_key]) ? $element['#value'][$filter_key] : FILTER_FORMAT_DEFAULT; | 394 $format = isset($element['#value'][$filter_key]) ? $element['#value'][$filter_key] : FILTER_FORMAT_DEFAULT; |
| 372 $parents = array_merge($element['#parents'] , array($filter_key)); | 395 $parents = array_merge($element['#parents'] , array($filter_key)); |
| 373 $element[$filter_key] = filter_form($format, 1, $parents); | 396 $element['mee'][$filter_key] = filter_form($format, 1, $parents); |
| 374 $element[$filter_key]['#prefix'] = '<div class="mee-filter-form">'; | 397 $element['mee'][$filter_key]['#prefix'] = '<div class="mee-filter-form">'; |
| 375 $element[$filter_key]['#suffix'] = '</div>'; | 398 $element['mee'][$filter_key]['#suffix'] = '</div>'; |
| 376 } | 399 } |
| 377 | 400 |
| 378 // Used so that hook_field('validate') knows where to flag an error. | 401 // Used so that hook_field('validate') knows where to flag an error. |
| 379 $element['_error_element'] = array( | 402 $element['_error_element'] = array( |
| 380 '#type' => 'value', | 403 '#type' => 'value', |
| 381 '#value' => implode('][', array_merge($element['#parents'], array($field_key))), | 404 '#value' => implode('][', array_merge($element['#parents'], array($field_key))), |
| 382 ); | 405 ); |
| 406 $element['mee']['short'] = array( | |
| 407 '#type' => 'textarea', | |
| 408 '#title' => 'Contenu court', | |
| 409 '#rows' => 5, | |
| 410 '#weight' => 100 | |
| 411 ); | |
| 383 | 412 |
| 384 | 413 |
| 385 return $element; | 414 return $element; |
| 386 } | 415 } |
| 387 | 416 |
| 398 */ | 427 */ |
| 399 function theme_mee_textarea($element) { | 428 function theme_mee_textarea($element) { |
| 400 return $element['#children']; | 429 return $element['#children']; |
| 401 } | 430 } |
| 402 | 431 |
| 432 function theme_mee_ressource_manager(&$form) { | |
| 433 static $count = 0; | |
| 434 $id = 'mee-ressource-manager-'. $count; | |
| 435 drupal_add_tabledrag($id, 'order', 'sibling', 'mee-rm-weight'); | |
| 436 $count++; | |
| 437 $header = array('', t('Title'), t('Weight')); | |
| 438 $rows = array(); | |
| 439 foreach(element_children($form) as $key) { | |
| 440 $form[$key]['weight']['#attributes']['class'] = 'mee-rm-weight'; | |
| 441 | |
| 442 $row = array(''); | |
| 443 $row[] = drupal_render($form[$key]['title']); | |
| 444 $row[] = drupal_render($form[$key]['weight']); | |
| 445 $rows[] = array('data' => $row, 'class' => 'draggable'); | |
| 446 } | |
| 447 $output = theme('table', $header, $rows, array( | |
| 448 'id' => $id, | |
| 449 'class' => 'mee-ressource-manager' | |
| 450 )); | |
| 451 $output .= drupal_render($form); | |
| 452 return $output; | |
| 453 } | |
| 403 | 454 |
| 404 | 455 |
| 405 | 456 |
| 406 | 457 |
| 407 | 458 |
