Сортирайте BC WebApp в предния край, като използвате персонализирано поле

Създадох BC WebApp, използвайки API на BC Open Platform за задния край и всичко изглежда работи добре, включително рендиране на списъка с елементи в ред на сортиране на едно от персонализираните ми полета.

Ето пример за това какво работи на задния край.

var items = new BCAPI.Models.WebApp.ItemCollection(WEBAPP_NAME);
items.fetch({
    order: "MyCustomField",
    skip: 0,
    limit: 1000,
    success: onWebpAppListFetch,
    error: onAPIError
});

Как да изобразя този списък в предния край, сортиран по едно от персонализираните ми полета? Ето пример за това, което се опитвам да използвам в предния край, но той не подрежда или сортира по този начин.

{module_webapps order="MyCustomField" render="collection" template="/_System/apps/cms-sports-club-manager/club-rooms/layouts/club_rooms_collection.tpl" id="cms-club-roomsx" filter="all"}

Има ли нещо, което пренебрегвам, или трябва да подходя към това по свой ръчен начин? Може би бих могъл да изобразя списъка в масив, да сортирам масива и след това да премина през него, за да изобразя списъка от предния край? Файлът на шаблона използва Liquid, за да премине през колекцията и да изобрази HTML. Мога ли да дефинирам променлива на масив, да попълня масива, да сортирам масива и да го превъртя отново в същия този шаблонен файл?

Друга възможност може би е да извеждате всички елементи на webapp в JSON файл всеки път, когато потребител създава/редактира елемент (от задния край), и след това да използвате функцията {module_json} в предния край< /strong>, за да прочета този JSON файл, който "трябва" да ми позволи да го сортирам.

Всякакви съвети какво да правите (както и какво да НЕ правите) ще бъдат оценени.


person David    schedule 09.09.2015    source източник
comment
Няма order=" " в module_webapps, така че трябва да се премахне. Най-добрият ви вариант е да използвате Liquid за сортиране на полето на уеб приложението, но не съм сигурен в кода за това.   -  person L84    schedule 13.09.2015


Отговори (1)


Намерих един възможен отговор, но не съм сигурен, че това е най-добрият начин да направя това.

Внедрих скрипт, който изпълнява следните стъпки:

  1. Създайте масив, съдържащ всички елементи (несортирани в този момент)
  2. Сортирайте масива, като използвате произволно потребителско поле
  3. Итерация през сортирания масив и document.write() всеки един

Тествах това доста добре и изглежда, че прави точно това, което искам, но все още не съм маркирал това като правилния отговор, тъй като все пак бих искал да намеря „по-добър“ начин от необходимостта да прибягвам до горната ръчна работа .

person David    schedule 10.09.2015