Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
%total% для %data doSelection()%

Автор albionРаздел Макросы UMI.CMS

Ответов: 5
Просмотров: 6080
Последний ответ 24 Июля 2011, 10:29:40
от albion
autothumbs.php версии 2,8,4

Автор albionРаздел Настройка системы и модулей

Ответов: 6
Просмотров: 6982
Последний ответ 21 Июля 2011, 18:00:19
от admin
Яндекс.Карта на сайте

Автор thecoderРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 5050
Последний ответ 22 Июля 2013, 16:14:40
от thecoder
Индексация лишних страниц

Автор ArmorРаздел Предложения и пожелания

Ответов: 8
Просмотров: 7692
Последний ответ 28 Октября 2011, 12:30:39
от Vladimir
Зависимые фильтры

Автор mihdanРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 3599
Последний ответ 28 Сентября 2013, 16:44:23
от Aisamiery

0 Пользователей и 1 Гость просматривают эту тему.

*

31rus

  • *
  • 46
  • +2/-0
    • Просмотр профиля
Имеем такую структуру:
Раздел 1
   Раздел 1.1
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 2 Дополнительное поле в шаблонах данных выпадающий список=3
      Объект 3 Дополнительное поле в шаблонах данных выпадающий список=1
   Раздел 1.2
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 2 Дополнительное поле в шаблонах данных выпадающий список=2
      Объект 3 Дополнительное поле в шаблонах данных выпадающий список=3
   Раздел 1.3
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 2 Дополнительное поле в шаблонах данных выпадающий список=1


Так как же вывести что бы было так:
Раздел 1
   Раздел 1.1
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 3 Дополнительное поле в шаблонах данных выпадающий список=1
   Раздел 1.2
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
   Раздел 1.3
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 2 Дополнительное поле в шаблонах данных выпадающий список=1

Делаю на TPL шаблонах.
Написал кастомный макрос который вставляю в
$FORMS['objects_block_line'] = <<<END
%custom myselect()%
END;

$pages = new selector('pages');
      $pages->types('hierarchy-type')->name('catalog', 'object');
      $pages->where('hierarchy')->page($id)->childs(1); //передаю сюда category_id
      $pages->where('sp')->equals('vip'); //условие по которому отбираю
      foreach($pages as $page) {
      echo $page->link;
      }
Так выводит все отобранные объекты.

Тут первая засада, echo нас не устраивает, так как требуется return, но он выводит только 1 объект.

Попробовал так же USEL но результаты схожие примерно.

Во всех вариантах как правило происходит следующее, или выводится во всех подразделах одини и теже варианты, равные количеству найденных объектов, или выводит все в первом разделе.

Где я косячу? Уже неделю сижу с этим вопросом:(
« Последнее редактирование: 25 Апреля 2012, 11:55:58 от 31rus »

*

Vladimir

  • ****
  • 279
  • +48/-0
    • Просмотр профиля
Re:Вывод объектов каталога по условию
« Ответ #1 : 25 Апреля 2012, 12:03:58 »
так ничего и не понял. у вас есть структура сайта, показанная на схеме 1. Так?
Дальше уже непонятно. "Так как же вывести что бы было так:" - куда вывести, смысл этого? Из-за чего все это?

*

31rus

  • *
  • 46
  • +2/-0
    • Просмотр профиля
Re:Вывод объектов каталога по условию
« Ответ #2 : 25 Апреля 2012, 13:52:40 »
так ничего и не понял. у вас есть структура сайта, показанная на схеме 1. Так?
Дальше уже непонятно. "Так как же вывести что бы было так:" - куда вывести, смысл этого? Из-за чего все это?
Попробую так:
Сделать выборку всех разделов и подразделов каталога, в которую включит только те объекты у которых поле выпадающий список содержит Спецразмещение.

*

Vladimir

  • ****
  • 279
  • +48/-0
    • Просмотр профиля
Re:Вывод объектов каталога по условию
« Ответ #3 : 25 Апреля 2012, 17:10:37 »
мммм....  и при этом сохранить структуру подкатологов? Так?

А фильтр по полю "Спецразмещение" не проходит? Надо только придумать как в адресной строке передавать строку запроса: ?fields_filter[имя_поля]=[id_значения]  (не ручаюсь за точность, но в таком стиле; точнее посмотите на демосайте, где фильтрация по хомячкам). Таким образом и вопрос с постраничным выводом решится.
Передавать можно кастомным макросом, в котором дописывать $_REQUEST['fields_filter']...........  а затем вызывать стандартный макрос вывода каталога.

*

31rus

  • *
  • 46
  • +2/-0
    • Просмотр профиля
Re:Вывод объектов каталога по условию
« Ответ #4 : 25 Апреля 2012, 19:41:48 »
решил так, но при этом выводит только 1 объект
Кастом
public function distric ($category_id, $districs) {
      $pages = new selector('pages');
      $pages->types('hierarchy-type')->name('catalog', 'object');
      $pages->where('hierarchy')->page($category_id)->childs(1); //передаю сюда category_id
      $pages->where('date_to')->more(date("Y-m-d h:m:s"));//сравниваем дату ограничения размещения с текущей датой в формате Год-месяц-день часы:минуты:секунды
      $pages->where('distric')->equals($districs); //условие Дистрик по которому отбираю
      $pages->where('sp')->equals('vip'); //условие Спецразмещение по которому отбираю
      foreach($pages as $page) {
      return "%catalog viewObject($page->link, select-all-vip)%";
      }
            }
а вот и TPL

<?php

$FORMS = Array();

$FORMS['category'] = <<<END
%catalog getCategoryList('select-all-vip', '%category_id%')%
%catalog getObjectsList('select-all-vip', '%category_id%')%
END;


$FORMS['category_block'] = <<<END
<ul>
   %lines%
</ul>


END;


$FORMS['category_block_empty'] = <<<END

END;


$FORMS['category_block_line'] = <<<END
<li>
   <a href="%link%">%text%</a>
</li>
%catalog getCategoryList('select-all-vip', '%id%', 5)%
%catalog getObjectsList('select-all-vip', '%id%', 3)%

END;



$FORMS['objects_block'] = <<<END
%custom distric(%category_id%, %content menu('cut',1)%)% /выбираем виртуальный каталог от которого сортируем регион
END;


$FORMS['objects_block_search_empty'] = <<<END
%catalog search('%category_id%')%

<p>По Вашему запросу ничего не найдено.</p>

END;


$FORMS['objects_block_line'] = <<<END

%custom distric(%category_id%, %content menu('cut',1)%)%
END;



$FORMS['view_block'] = <<<END
<p class="%data getProperty(%id%, sp, clear)%"><a href="%link%">%h1_eng%</a>

</p>

END;

$FORMS['search_block'] = <<<END

<form method="get" action="%content get_page_url(%category_id%)%">
<h3>Фильтр по товарам</h3>
%lines%
<p>
   <input type="submit" value="Подобрать" /><br />
   <input type="button" onclick="javascript: window.location = '%content get_page_url(%category_id%)%';" value="Сбросить" />
</p>
</form>


END;


$FORMS['search_block_line'] = <<<END
   <p>
      %selector%
   </p>
END;



$FORMS['search_block_line_relation'] = <<<END
%title% <select name="fields_filter[%name%]"><option />%items%</select>

END;

$FORMS['template_block_line_symlink'] = <<<END
%title% <select name="fields_filter[%name%]"><option />%items%</select>

END;

$FORMS['search_block_line_text'] = <<<END
%title% <input type="text" name="fields_filter[%name%]" class="textinputs" value="%value%" />

END;

$FORMS['search_block_line_price'] = <<<END
%title% от &nbsp;до
<input type="text" name="fields_filter[%name%][0]" value="%value_from%" />
<input type="text" name="fields_filter[%name%][1]" value="%value_to%" />

END;

$FORMS['search_block_line_boolean'] = <<<END
%title% <input type="checkbox" name="fields_filter[%name%]" %checked% value="1" />

END;

?>
« Последнее редактирование: 25 Апреля 2012, 19:59:02 от 31rus »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод объектов каталога по условию
« Ответ #5 : 26 Апреля 2012, 02:15:07 »
я чесно говоря так и не понял задачу и кажеткак эся мнету задачу не крути а usel помог бы куда лучше, но если рассматривать ваш кастои и TPL то скорее всего ошибка с тем что выводит только один объект, связанна с блоком
$FORMS['objects_block'] = <<<END
%custom distric(%category_id%, %content menu('cut',1)%)% /выбираем виртуальный каталог от которого сортируем регион
END;

его бы надо писать так
$FORMS['objects_block'] = <<<END
%lines%
END;

*

31rus

  • *
  • 46
  • +2/-0
    • Просмотр профиля
Re:Вывод объектов каталога по условию
« Ответ #6 : 26 Апреля 2012, 08:17:30 »
я чесно говоря так и не понял задачу и кажеткак эся мнету задачу не крути а usel помог бы куда лучше, но если рассматривать ваш кастои и TPL то скорее всего ошибка с тем что выводит только один объект, связанна с блоком
$FORMS['objects_block'] = <<<END
%custom distric(%category_id%, %content menu('cut',1)%)% /выбираем виртуальный каталог от которого сортируем регион
END;

его бы надо писать так
$FORMS['objects_block'] = <<<END
%lines%
END;

Есть каталог http://go2cyp.com/directory/
Требуется на главной каталога построить структуру каталога всех уровней вложенности до объектов каталога и вывести 3-5 объектов в каждом подразделе отвечающим условиям:
Поле 1 = значение
Поле 2 = значение

если нет объектов то ничего не выводить.

Данил, так как ты написал у меня не работает, поэтому только таким костылями.
Видимо баг какой то:( или у меня с руками:)
Не работает так, в чем и дело.

Но USEL мне кажется не пойдет, у меня до 5000 объектов каталогов и 8 виртуальных копий с них, как бы сервак не подох
« Последнее редактирование: 26 Апреля 2012, 10:03:04 от 31rus »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод объектов каталога по условию
« Ответ #7 : 26 Апреля 2012, 08:29:25 »
а расскажите на примере вашу задачу, чтобы четче понять почему при каталоге вида

Раздел 1
   Раздел 1.1
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 2 Дополнительное поле в шаблонах данных выпадающий список=3
      Объект 3 Дополнительное поле в шаблонах данных выпадающий список=1
   Раздел 1.2
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 2 Дополнительное поле в шаблонах данных выпадающий список=2
      Объект 3 Дополнительное поле в шаблонах данных выпадающий список=3
   Раздел 1.3
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 2 Дополнительное поле в шаблонах данных выпадающий список=1


Вам надо выводить товары так что бы:
Раздел 1
   Раздел 1.1
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 3 Дополнительное поле в шаблонах данных выпадающий список=1
   Раздел 1.2
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
   Раздел 1.3
      Объект 1 Дополнительное поле в шаблонах данных выпадающий список=1
      Объект 2 Дополнительное поле в шаблонах данных выпадающий список=1

*

31rus

  • *
  • 46
  • +2/-0
    • Просмотр профиля
Re:Вывод объектов каталога по условию
« Ответ #8 : 26 Апреля 2012, 11:58:57 »
1 уровень (Раздел) directory
 2 уровень (Раздел) recreation_entertainment (Родитель 1 уровень)
  3 уровень (Раздел) food_service_night_life (Родитель 2 уровень)
   4 уровень (Раздел) restaurants_taverns_cafes_fast_foods (Родитель 3 уровень)
     Объект каталога 1 "Сlassic" имеет дополнительные поля по которым осуществляется сортировка и фильтрация (Спецразмещение- SP выпадающий список(vip) и Регион - Distric выпадающий список (paphos))
     Объект каталога 2 "Imperial" имеет дополнительные поля по которым осуществляется сортировка и фильтрация (Спецразмещение- SP выпадающий список () и Регион - Distric выпадающий список (Nicosia))
     Объект каталога 3 "ANY" имеет дополнительные поля по которым осуществляется сортировка и фильтрация (Спецразмещение- SP выпадающий список (vip) и Регион - Distric выпадающий список (paphos))
   4 уровень (Раздел) night_clubs_bars_pubs (Родитель 4 уровень)
     Объект каталога 1 "Mare Mare" имеет дополнительные поля по которым осуществляется сортировка и фильтрация (Спецразмещение- SP выпадающий список(vip) и Регион - Distric выпадающий список (paphos))
    Объект каталога 2 "Zapoy" имеет дополнительные поля по которым осуществляется сортировка и фильтрация (Спецразмещение- SP выпадающий список() и Регион - Distric выпадающий список (limassol))
Так же присутствуют другие разделы с похожей структурой.

Требуется на странице контента вывести Разделы и Подразделы и объекты в них отвечающим условиям фильтрации (Где поле SP=vip & Distric = Paphos)

В итоге должно получится нечто такое
1 уровень (Раздел) directory Ссылка на страницу
 2 уровень (Раздел) recreation_entertainment (Родитель 1 уровень) Ссылка на страницу
  3 уровень (Раздел) food_service_night_life (Родитель 2 уровень) Ссылка на страницу
   4 уровень (Раздел) restaurants_taverns_cafes_fast_foods (Родитель 3 уровень) Ссылка на страницу
     Объект каталога 1 "Сlassic" имеет дополнительные поля по которым осуществляется сортировка и фильтрация (Спецразмещение- SP выпадающий список(vip) и Регион - Distric выпадающий список (paphos))
         Объект каталога 3 "ANY" имеет дополнительные поля по которым осуществляется сортировка и фильтрация (Спецразмещение- SP выпадающий список (vip) и Регион - Distric выпадающий список (paphos))
   4 уровень (Раздел) night_clubs_bars_pubs (Родитель 3 уровень) Ссылка на страницу
     Объект каталога 1 "Mare Mare" имеет дополнительные поля по которым осуществляется сортировка и фильтрация (Спецразмещение- SP выпадающий список(vip) и Регион - Distric выпадающий список (paphos))
 
« Последнее редактирование: 26 Апреля 2012, 12:00:46 от 31rus »