Я думаю, вы можете использовать Plugin component
здесь вы можете add component to page
и use its partial
.
Вам необходимо определить частичный [ you can add as many as you like ]
в компоненте.
И просто используйте это partial
, как показано ниже на странице, теперь this same thing you can do in other themes as well.
Когда вы change partial
будете affect in all other themes
похожи на shared across multiple themes.
Down side
будет, что вы can not change its content from backend
, вам нужно вручную изменить этот файл с FTP или другим способом.
Частично из другой темы
Хм
Вы можете добавить пользовательскую функцию ветки для этого может быть
В любой ваш плагин вы можете добавить этот код
public function registerMarkupTags()
{
return [
'functions' => [
'theme_partial' => [$this, 'themePartial'],
]
];
}
public function themePartial($partialName, $themeName = null, $vars = [])
{
$theme = Theme::getActiveTheme();
if($themeName) {
$theme = Theme::load($themeName);
}
$template = call_user_func([Partial::class, 'load'], $theme, $partialName);
$partialContent = $template->getTwigContent();
$html = Twig::parse($partialContent, $vars);
return $html;
}
Теперь внутри вашей темы, когда вы хотите использовать частичное, вы можете использовать
{{ theme_partial('call_from_other_theme', 'stemalo' ,{'name':'hardik'}) }}
^ Your theme name here.
themes/stemalo/partials/call_from_other_theme.htm
содержание
description = "Shared Partial."
[viewBag]
==
<div id="shared_partial">
<h1>Another Theme Partial : {{name}}</h1>
</div>
таким образом, вы можете использовать частичное из других тем.
you aksed for access to theme directory
здесь может быть, вам просто нужно передать имя темы, и `ее динамически вы можете передать переменную в качестве имени темы, чтобы она могла выбрать любую вещь, которую вам нравится.
Если есть сомнения, прокомментируйте.