Интеграция
Интегрируйте возможности sCommerce в ваш код, используя приведенные ниже примеры.
Дерево подкатегорий
Для получения нужной категории вместе с подкатегориями используйте метод для рекурсивного
построения дерева категорий sCommerce::getTreeActiveCategories(evo()->documentIdentifier, 10).
Этот метод вернет искомую категорию вместе с рекурсивно построенными подкатегориями.
Глубина вложенности зависит от параметра $dept (по умолчанию 10). Если установлен пакет sLang,
текущая локаль применяется автоматически, а третьим аргументом можно передать список TV.
Seiger\sCommerce\Models\sCategory {#1902 ▼
#connection: "default"
#table: "site_content"
...
#attributes: array:37 [▼
"id" => "50"
"type" => "document"
...
"subcategories" => EvolutionCMS\Extensions\Collection {#1889 ▼
#items: array:4 [▼
0 => Seiger\sCommerce\Models\sCategory {#1888 ▼
#connection: "default"
#table: "site_content"
...
#attributes: array:37 [▶]
#original: array:36 [▶]
...
}
1 => Seiger\sCommerce\Models\sCategory {#1886 ▶}
2 => Seiger\sCommerce\Models\sCategory {#1884 ▶}
3 => Seiger\sCommerce\Models\sCategory {#1882 ▶}
]
#escapeWhenCastingToString: false
}
]
#original: array:36 [▶]
...
}
Вызов метода getTreeActiveCategories()
namespace EvolutionCMS\Main\Controllers;
use Seiger\sCommerce\Facades\sCommerce;
class CategoryController extends BaseController
{
public function render()
{
parent::render();
...
$this->data['category'] = sCommerce::getTreeActiveCategories(
evo()->documentIdentifier,
10,
['menu_main', 'menu_footer'] // опциональный список TV
);
...
}
}
Аргументы метода getTreeActiveCategories()
Из приведенного выше примера:
evo()->documentIdentifier - ID категории, для которой нужно получить данные. Тип number integer.
10 - Глубина вложенности для получения подкатегорий. Тип number integer. Типично 10.
['menu_main', 'menu_footer'] (опционально) – Массив названий TV, которые нужно добавить к каждой категории (работает, если установлен sLang). По умолчанию пустой массив.
Применение результата вызова getTreeActiveCategories()
Ниже приведен пример использования результата вызова метода getTreeActiveCategories() в Blade шаблоне.
...
<section>
<h1>{% raw %}{{$category->pagetitle}}{% endraw %}</h1>
{% raw %}{!!$category->content!!}{% endraw %}
</section>
@if($category->subcategories->count())
@foreach($category->subcategories as $subcategory)
<section>
<h2>{% raw %}{{$subcategory->pagetitle}}{% endraw %}</h2>
<p>{% raw %}{{$subcategory->introtext}}{% endraw %}</p>
</section>
@endforeach
@endif