Здравствуйте! Подскажите пожалуйста, как поместить в массив тело типа “tpl”?
Давайте больше деталей
Создал свой сортинг на подобие product.tpl sorting.tpl. Моя цель на отобразить собственные шаблоны при нажатии кнопок.
У продуктов такая сортировка:
$dir_params = array(
'dir' => 'templates/blocks/product_templates',
'get_dirs' => false,
'get_files' => true,
'extension' => '.tpl'
);
$view_templates[$dir_params['dir']] = $theme->getDirContents($dir_params, Themes::STR_MERGE);
foreach ((array) Registry::get('addons') as $addon_name => $data) {
if ($data['status'] == 'A') {
$dir_params['dir'] = "templates/addons/{$addon_name}/blocks/product_templates";
$view_templates[$dir_params['dir']] = $theme->getDirContents($dir_params, Themes::STR_MERGE, Themes::PATH_ABSOLUTE, Themes::USE_BASE);
}
}
// Scan received directories and fill the "views" array
foreach ($view_templates as $dir => $templates) {
foreach ($templates as $file_name => $file_info) {
$template_description = fn_get_file_description($file_info[Themes::PATH_ABSOLUTE], 'template-description', true);
$_title = fn_basename($file_name, '.tpl');
$product_details_views[$_title] = empty($template_description) ? __($_title) : $template_description;
}
}
$selected_view = Registry::get('settings.Appearance.default_product_details_view');
if (!empty($category_id)) {
$selected_view = db_get_field('SELECT details_layout FROM ?:products WHERE product_id = ?i', $product_id);
$selected_view = fn_normalize_product_overridable_field_value('details_layout', $selected_view);
if (empty($selected_view) || $selected_view === 'default') {
$category_id = fn_get_product_main_category_id($product_id);
$selected_view = fn_get_product_details_view_by_category($category_id);
}
if (empty($selected_view) || $selected_view === 'default') {
$selected_view = Registry::get('settings.Appearance.default_product_details_view');
}
}
$theme = Themes::areaFactory('C');
if ($theme->getContentPath("templates/blocks/product_templates/{$selected_view}.tpl")) {
$result = "blocks/product_templates/{$selected_view}.tpl";
} else {
foreach ((array) Registry::get('addons') as $addon_name => $data) {
if ($data['status'] == 'A') {
if ($theme->getContentPath(
"templates/addons/{$addon_name}/blocks/product_templates/{$selected_view}.tpl",
Themes::CONTENT_FILE, Themes::PATH_ABSOLUTE, Themes::USE_BASE
)) {
$result = "addons/{$addon_name}/blocks/product_templates/{$selected_view}.tpl";
break;
}
}
}
}
Вот думаю как свои шаблоны вставить правильно и коротко. У меня есть папка в design где хранятся шаблоны tpl. Есть 3 кнопки которые нажимает и она меняет отображение