| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 | 
							- <?php
 
- /**
 
-  * Form builder to create or edit presets.
 
-  */
 
- function cer_form(array $form, array &$form_state, CerPreset $preset, $do = 'edit', $entity_type = NULL) {
 
-   field_attach_form('cer', $preset, $form, $form_state);
 
-   $form['cer_right']['#id'] = 'edit-cer-right';
 
-   $form['cer_left'][LANGUAGE_NONE]['#ajax'] = array(
 
-     'callback' => 'cer_update_right',
 
-     'wrapper' => $form['cer_right']['#id'],
 
-   );
 
-   $form['actions'] = array(
 
-     'submit' => array(
 
-       '#type' => 'submit',
 
-       '#value' => t('Save'),
 
-     ),
 
-     '#weight' => 10,
 
-   );
 
-   return $form;
 
- }
 
- function cer_form_submit(array &$form, array &$form_state) {
 
-   $preset = entity_ui_form_submit_build_entity($form, $form_state)->save();
 
-   drupal_set_message(t('The preset has been saved.'));
 
-   $form_state['redirect'] = 'admin/config/content/cer';
 
- }
 
- function cer_update_right(array &$form, array &$form_state) {
 
-   $preset = $form_state['build_info']['args'][0];
 
-   field_attach_submit('cer', $preset, $form, $form_state, array('field_name' => 'cer_left'));
 
-   $left = $preset->wrapper->cer_left->chain->value();
 
-   $left_identifier = $left->__toString();
 
-   $left_re = $left->regex();
 
-   $hierarchy = new FieldHierarchy();
 
-   foreach (CerFieldChain::collectAll() as $chain) {
 
-     if (preg_match($left_re, $chain->__toString()) && preg_match($chain->regex(), $left_identifier)) {
 
-       $hierarchy->addChain($chain);
 
-     }
 
-   }
 
-   $options = $hierarchy->options();
 
-   if ($options) {
 
-     $form['cer_right'][LANGUAGE_NONE]['#options'] = $options;
 
-   }
 
-   else {
 
-     drupal_set_message(t('There are no fields which can correspond with your selection.'), 'warning');
 
-   }
 
-   return $form['cer_right'];
 
- }
 
- /**
 
-  * Enables or disables a preset, depending on its current status. This callback
 
-  * is defined by CerUIController::hook_menu().
 
-  */
 
- function cer_toggle_preset(CerPreset $preset) {
 
-   $preset->wrapper->cer_enabled->set(! $preset->wrapper->cer_enabled->value());
 
-   $preset->save();
 
-   drupal_goto(isset($_GET['destination']) ? $_GET['destination'] : 'admin/config/content/cer');
 
- }
 
- /**
 
-  * Permanently inverts a preset (i.e., deletes the original). This callback
 
-  * is defined by CerUIController::hook_menu().
 
-  */
 
- function cer_invert_preset(CerPreset $original) {
 
-   $original->invert()->save();
 
-   $original->delete();
 
-   drupal_goto(isset($_GET['destination']) ? $_GET['destination'] : 'admin/config/content/cer');
 
- }
 
- /**
 
-  * Allows batch updating of existing entities.
 
-  */
 
- function cer_bulk_update_form(array $form, array &$form_state) {
 
-   $form['type'] = array(
 
-     '#type' => 'select',
 
-     '#title' => t('Entity type'),
 
-     '#required' => TRUE,
 
-     '#options' => array(),
 
-     '#description' => t('Select the entity type that you want to update.'),
 
-   );
 
-   foreach (entity_get_info() as $type => $class) {
 
-     $form['type']['#options'][$type] = $class['label'];
 
-   }
 
-   $form['submit'] = array(
 
-     '#type' => 'submit',
 
-     '#value' => t('Submit'),
 
-   );
 
-   return $form;
 
- }
 
- /**
 
-  * The update form. Allows bulk updating of current entities.
 
-  */
 
- function cer_bulk_update_form_submit(array $form, array &$form_state) {
 
-   $batch = array(
 
-     'finished' => 'cer_batch_update_existing_finished',
 
-     'title' => t('Processing'),
 
-     'init_message' => t('Preparing to update corresponding entity references for existing entities...'),
 
-     'progress_message' => t('Processing entities...'),
 
-     'error_message' => t('Corresponding entity references - existing entity update has encountered an error.'),
 
-     'operations' => array(),
 
-   );
 
-   $entity_type = $form_state['values']['type'];
 
-   $query = new EntityFieldQuery();
 
-   $query->entityCondition('entity_type', $entity_type);
 
-   if ($entity_type == 'user') {
 
-     $query->entityCondition('entity_id', 0, '>');
 
-   }
 
-   $result = $query->execute();
 
-   if (isset($result[$entity_type])) {
 
-     foreach (array_keys($result[$entity_type]) as $entity_id) {
 
-       $batch['operations'][] = array('cer_processing_entity', array('update', $entity_id, $entity_type));
 
-     }
 
-   }
 
-   batch_set($batch);
 
- }
 
 
  |