first commit
This commit is contained in:
75
class/smarty_plugins/function.get_html_page.php
Normal file
75
class/smarty_plugins/function.get_html_page.php
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Smarty plugin
|
||||
* -------------------------------------------------------------
|
||||
* Type: function
|
||||
* Name: get_html_page
|
||||
* Purpose: get HTML page of given: name, id or label
|
||||
* -------------------------------------------------------------
|
||||
*/
|
||||
|
||||
use KupShop\ContentBundle\Entity\Wrapper\PageWrapper;
|
||||
use KupShop\ContentBundle\Util\MenuLinksPage;
|
||||
use KupShop\KupShopBundle\Util\Compat\ServiceContainer;
|
||||
use Query\Operator;
|
||||
|
||||
/**
|
||||
* @param $smarty \Smarty
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function smarty_function_get_html_page($params, &$smarty)
|
||||
{
|
||||
if (empty($params['name']) && empty($params['id']) && empty($params['label'])) {
|
||||
return 'get_html_page: Have to specify one of parameters: id, name or label';
|
||||
}
|
||||
|
||||
$menuLinkId = null;
|
||||
if (isset($params['name']) && !$menuLinkId) {
|
||||
$menuLinkId = findMenuLinkBySpec(Operator::equals(['name' => $params['name']]));
|
||||
}
|
||||
|
||||
if (isset($params['id']) && is_numeric($params['id']) && !$menuLinkId) {
|
||||
$menuLinkId = findMenuLinkBySpec(Operator::equals(['old_id_page' => $params['id']]));
|
||||
}
|
||||
|
||||
if (isset($params['label']) && !$menuLinkId) {
|
||||
$menuLinkId = findMenuLinkBySpec(Operator::equals(['code' => $params['label']]));
|
||||
}
|
||||
|
||||
/** @var MenuLinksPage $menuLinksPage */
|
||||
$menuLinksPage = ServiceContainer::getService(MenuLinksPage::class);
|
||||
$pageWrapper = ServiceContainer::getService(PageWrapper::class);
|
||||
|
||||
if ($menuLinkId) {
|
||||
$page = [];
|
||||
if ($pageEntity = $menuLinksPage->getPage((int) $menuLinkId)) {
|
||||
$page = $pageWrapper->setObject($pageEntity);
|
||||
}
|
||||
} else {
|
||||
return 'Neexistuje stránka: '.print_r($params, true);
|
||||
}
|
||||
|
||||
if (empty($params['assign'])) {
|
||||
foreach ($page['blocks'] as $block) {
|
||||
$firstBlockContent = $block['content'];
|
||||
break;
|
||||
}
|
||||
|
||||
return isset($firstBlockContent) ? $firstBlockContent : '';
|
||||
}
|
||||
|
||||
$smarty->assign($params['assign'], $page);
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
function findMenuLinkBySpec($spec)
|
||||
{
|
||||
return sqlQueryBuilder()->select('id')
|
||||
->from('menu_links')
|
||||
->where($spec)
|
||||
->execute()
|
||||
->fetchColumn();
|
||||
}
|
||||
Reference in New Issue
Block a user