Сортировка контента в типе поля "родитель" (Связи)

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 25 февраля 2021 в 13:02
Доброго времени суток, Столкнулся с проблемкой возможности сортировки контента в типе поля "родитель" (Связи) при вставке его в тело записи
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст

В самой категории сортировка выводиться как и настроена, т.е.как надо, допустим по алфавиту, а вот в теле контента она выводится как я понял по ID по убыванию. Где и как настроить чтобы записи выводились в таком же порядке что и в списке основной категории? Если не встраивать в тело то выводится как надо, а в теле уже нет.
#2 25 февраля 2021 в 14:15
Мне бы хотя бы поменять просто DESC на ASC по тому же ID и то будет правильно выводится а так наоборот выводит (( Тольке где бы это изменить. Не могу найти файл формирования этого поля вывода
#3 25 февраля 2021 в 20:36
Я так понимаю никто не подскажет как это сделать, хоть CSS стилями делай, ну это же не дело
.column-reverse { display: flex; flex-direction: column-reverse; }
#4 25 февраля 2021 в 23:09
Для сортировки родительского поля по заголовку.
в файле: ./system/fields/parent.php
втавьте в предпоследнюю строку в функции parse($value): $controller->model->orderBy('title'); // Сортировка по заголовку (в записи item)

  1.  
  2. // показывает поле в записи ::
  3. public function parse($value){
  4.  
  5. if (!$value){
  6. return '';
  7. }
  8.  
  9. if ($this->getOption('item_style', 'ctype_list') == 'links_list') {
  10. return $this->parseTeaser($value);
  11. }
  12.  
  13. if (!$this->parent_ctype_name) { return false; }
  14.  
  15. if (empty($this->item['id'])) { return false; }
  16.  
  17. $controller = cmsCore::getController('content', $this->request);
  18.  
  19. $content_model = cmsCore::getModel('content');
  20.  
  21. $ctypes = $controller->model->getContentTypes();
  22.  
  23. $parent_ctype = $child_ctype = false;
  24.  
  25. foreach($ctypes as $ctype){
  26. if ($ctype['name'] == $this->parent_ctype_name){
  27. $parent_ctype = $ctype;
  28. }
  29. if ($ctype['name'] == $this->item['ctype_name']){
  30. $child_ctype = $ctype;
  31. }
  32. }
  33.  
  34. if (!$parent_ctype) { return false; }
  35.  
  36. if (!$child_ctype) {
  37. if (cmsController::enabled($this->item['ctype_name'])){
  38. $child_ctype = array(
  39. 'name' => $this->item['ctype_name'],
  40. 'controller' => $this->item['ctype_name'],
  41. 'id' => null
  42. );
  43. } else {
  44. return false;
  45. }
  46. } else {
  47. $child_ctype['controller'] = 'content';
  48. }
  49.  
  50. $filter = "r.parent_ctype_id = {$parent_ctype['id']} AND ".
  51. "r.child_item_id = {$this->item['id']} AND ".
  52. 'r.child_ctype_id '.($child_ctype['id'] ? '='.$child_ctype['id'] : 'IS NULL' ).' AND '.
  53. "r.parent_item_id = i.id AND r.target_controller = '{$child_ctype['controller']}'";
  54.  
  55. $controller->model->join('content_relations_bind', 'r', $filter);
  56. $controller->model->limit(false);
  57.  
  58. $controller->setListContext('form_field');
  59.  
  60. $parent_ctype['options']['limit'] = 0;
  61. $controller->model->orderBy('title'); // Сортировка по заголовку (в записи item)
  62.  
  63. return $controller->renderItemsList($parent_ctype, '', true);
  64. }
  65.  
#5 26 февраля 2021 в 06:03


Для сортировки родительского поля по заголовку.
в файле: ./system/fields/parent.php
втавьте в предпоследнюю строку в функции parse($value): $controller->model->orderBy('title'); // Сортировка по заголовку (в записи item)

Alex

Да огромное спасибо это работает. Просто в админке это никак не настраивается, хотя надо бы это поправить.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.