Advertisement
Sadchenko

Скрипт для генерации порядковых номеров за 1 день

Apr 14th, 2016
671
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.02 KB | None | 0 0
  1. $order_number_today = render($content['field_number_today'][0]['#markup']); // Присваиваем текущее значение порядкового номера ноде
  2. $date_visit = render($content['field_date_visit']['#items'][0]['value']); // в формате 2016-04-16 00:00:00
  3.  
  4. if(empty($order_number_today)) { // если порядковый номер еще не присвоен
  5.         $order_number_today = render($content['field_number_today'][0]['#markup']);
  6.         $date_visit = render($content['field_date_visit']['#items'][0]['value']);
  7.        
  8.         if(empty($order_number_today)) {
  9.             $query = new EntityFieldQuery();
  10.             $query->entityCondition('entity_type', 'node');
  11.             $query->propertyCondition('type', 'order');
  12.             $query->propertyCondition('status', 1);
  13.             $query->fieldCondition('field_date_visit', 'value', $date_visit);
  14.             $query->fieldOrderBy('field_number_today', 'value', 'DESC');
  15.             $query->range(0, 1);
  16.             $result = $query->execute();
  17.             if (!empty($result['node'])) {
  18.                 $nodes = node_load_multiple(array_keys($result['node']));
  19.                 foreach ($nodes AS $node) {
  20.                     $last_number_today = $node->field_number_today['und'][0]['value']; //узнаем последний порядковый номер
  21.                 }
  22.                 $node = node_load($nid);
  23.                 $node->original = $node;
  24.                 $node->field_number_today['und'][0]['value'] = $last_number_today + 1;
  25.                 foreach (field_info_instances('node', 'order') as $field_name => $field_info) {
  26.                   if ($field_name != 'field_number_today') {
  27.                     unset($node->{$field_name});
  28.                   }
  29.                 }
  30.                 field_attach_presave('node', $node);
  31.                 field_attach_update('node', $node);
  32.             }
  33.             else {
  34.                 $node = node_load($nid);
  35.                 $node->original = $node;
  36.                 $node->field_number_today['und'][0]['value'] = 1;
  37.                 foreach (field_info_instances('node', 'order') as $field_name => $field_info) {
  38.                   if ($field_name != 'field_number_today') {
  39.                     unset($node->{$field_name});
  40.                   }
  41.                 }
  42.                 field_attach_presave('node', $node);
  43.                 field_attach_update('node', $node);
  44.             }
  45.         }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement