Как изменить порядок/вес элементов внутри коллекции полей программно, когда узел сохранен? Любая помощь приветствуется. Спасибо.Сортировка коллекции полей программно в Drupal 7
0
A
ответ
0
Уже нашли ответ. Я использую hook_node_presave
, а затем переупорядочу массив массивов полей. Раньше я использовал hook_node_update
, и это не сработало.
0
Это фрагмент кода для сортировки коллекции полей любым из его полей перед сохранением узла:
function your_module_node_presave($node){
if ($node->type == 'foo') {
// We must sort by this field collection field
if (!empty($node->field_to_sort_by)) {
// Get the values of the sorting field. We must load the fc items for this.
$items = field_get_items('node', $node, 'field_to_sort_by');
foreach ($items as $item) {
$fc[] = field_collection_field_get_entity($item);
}
// field collection fields on nodes only contains 'value' and 'revision_id'.
// We temporarily add the field to sort by,
// for using the convenient uasort() function over the array.
$tmp_array = $node->field_to_sort_by[LANGUAGE_NONE];
foreach ($tmp_array as $key => $item) {
$tmp_array[$key]['sortfield'] = $fc[$key]->field_to_sort_by[LANGUAGE_NONE][0]['value'];
}
// Now we sort the node's field array using uasort().
usort($tmp_array, 'my_module_sortByField_asc');
// unset the sorting field before updating node's field collection
foreach ($tmp_array as $key => $item) {
unset($tmp_array[$key]['sortfield']);
}
$node->field_to_sort_by[LANGUAGE_NONE] = $tmp_array;
}
}
}
function my_module_sortByField_asc($a, $b) {
return $a['sortfield'] - $b['sortfield'];
}
Смежные вопросы
- 1. Drupal 7 Вычисленное поле в коллекции полей
- 2. Создание Drupal 7 групп полей программно
- 3. Как получить доступ к элементам в коллекции полей (Drupal 7)
- 4. Программно получить значения полей для ссылки на термины (Drupal 7)
- 5. Drupal 7 полей/CCK конкатенации
- 6. Страница импорта Drupal 7 программно
- 7. Drupal 7 load profile2 программно
- 8. drupal 7 - программно отключить блок
- 9. Drupal 7, программно добавить field_image к объекту
- 10. Сортировка контента в Drupal 7 модуля
- 11. Создать узел программно с вложенным элементом fieldcollection Drupal 7
- 12. Drupal 7: Узел полей в webform
- 13. Поиск в Drupal 7 настраиваемых полей содержимого
- 14. Drupal: Программно сохраняя изображения полей изображений
- 15. Группа полей по годам Просмотров Drupal 7
- 16. Drupal 7 EntityFieldQuery с использованием двух полей
- 17. Drupal 7 save software picture программно
- 18. Drupal 7 Новый пользователь Создание программно?
- 19. Как создать иерархическую таксономию программно drupal 7
- 20. Drupal 7: Программно получить список тегов (таксономия)
- 21. Как программно отображать поле содержимого Drupal 7
- 22. Программно заданное пользователем поле даты Drupal 7?
- 23. drupal 7 создание панелей 3 программно
- 24. Drupal 7 программно создает компоненты веб-формы
- 25. Drupal 7 - Тип содержимого внутри типа контента - Как и в коллекции полей
- 26. Как создать условную группу полей в полевой коллекции с использованием drupal 7
- 27. Drupal - Как использовать вычисляемое поле в коллекции поле полей элементов
- 28. Добавление элемента коллекции полей Drupal в пользовательскую форму
- 29. Как хранятся коллекции полей drupal в базе данных?
- 30. Drupal 7, получить значения референс Entity в полевой коллекции
хорошо для вас. Пожалуйста, поделитесь кодом –