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