Files
2025-03-12 17:06:23 +01:00

155 lines
5.1 KiB
PHP

<?php
/**
* SOTESHOP/stWebpagePlugin
*
* Ten plik należy do aplikacji stWebpagePlugin opartej na licencji (Open License SOTE) Otwarta Licencja SOTE.
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
*
* @package stWebpagePlugin
* @subpackage actions
* @copyright SOTE (www.sote.pl)
* @license http://www.sote.pl/license/open (Open License SOTE) Otwarta Licencja SOTE
* @version $Id: components.class.php 14301 2011-07-26 10:59:10Z michal $
* @author Krzysztof Bebło <krzysztof.beblo@sote.pl>
*/
/**
* Akcje komponentu webpage
*
* @author Krzysztof Bebło <krzysztof.beblo@sote.pl>
*
* @package stWebpagePlugin
* @subpackage actions
*/
class stWebpageFrontendComponents extends sfComponents
{
protected static $firstCall = true;
protected static $linkIncludeOnce = true;
/**
* Wyświetlenie grup stron www
*/
public function executeGroupWebpage()
{
$this->smarty = new stSmarty('stWebpageFrontend');
if ($this->id || $this->group_page)
{
if ($this->group_page=='HEADER' && $this->getController()->getTheme()->getVersion() <= 2)
{
return sfView::NONE;
}
if($this->group_page=='HEADER' || isset($this->in_line))
{
if (!self::$firstCall)
{
return sfView::NONE;
}
self::$firstCall = false;
}
$c = new Criteria();
if($this->id)
{
$c->add(WebpageGroupPeer::ID,$this->id);
}
else
{
$c1 = $c->getNewCriterion(WebpageGroupPeer::GROUP_PAGE,$this->group_page);
if($this->group_page=='HEADER')
{
$c2 = $c->getNewCriterion(WebpageGroupPeer::SHOW_HEADER,1);
$c1->addOr($c2);
}
elseif($this->group_page=='FOOTER')
{
$c2 = $c->getNewCriterion(WebpageGroupPeer::SHOW_FOOTER,1);
$c1->addOr($c2);
}
$c->add($c1);
}
$c->addJoin(WebpageGroupHasWebpagePeer::WEBPAGE_ID, WebpagePeer::ID);
$c->addJoin(WebpageGroupHasWebpagePeer::WEBPAGE_GROUP_ID, WebpageGroupPeer::ID);
$c->add(WebpagePeer::ACTIVE,1);
$c->addAscendingOrderByColumn(WebpageGroupHasWebpagePeer::RANK);
stEventDispatcher::getInstance()->notify(new sfEvent($this, 'stWebpageFrontendComponents.preWebpageQuery',array('criteria'=>$c)));
$this->webpages = WebpagePeer::doSelect($c);
if (!empty($this->webpages))
{
$this->webpage_group_relations=WebpageGroupHasWebpagePeer::doSelectJoinAll($c);
$this->webpage_group=$this->webpage_group_relations[0]->getWebpageGroup()->getName();
$this->id = $this->id;
}
}
}
/**
* Wyświetlenie stopki
*/
public function executeFooterWebpage()
{
$this->smarty = new stSmarty('stWebpageFrontend');
$c = new Criteria();
$c ->add(WebpageGroupPeer::SHOW_FOOTER, 1);
stEventDispatcher::getInstance()->notify(new sfEvent($this, 'stWebpageFrontendComponents.preFooterQuery',array('criteria'=>$c)));
$this->webpages_groups = WebpageGroupPeer::doSelect($c);
}
/**
* Wyświetlenie nagłówka
*/
public function executeHeaderWebpage()
{
$this->smarty = new stSmarty('stWebpageFrontend');
$c = new Criteria();
$c ->add(WebpageGroupPeer::SHOW_HEADER, 1);
stEventDispatcher::getInstance()->notify(new sfEvent($this, 'stWebpageFrontendComponents.preHeaderQuery',array('criteria'=>$c)));
$this->webpages_group = WebpageGroupPeer::doSelectOne($c);
}
public function executeLink()
{
$smarty = new stSmarty('stWebpageFrontend');
$smarty->assign('url', $this->getController()->genUrl([
'module' => 'stWebpageFrontend',
'action' => 'ajax',
'state' => $this->state,
'create' => !isset($this->create) || $this->create
]));
$smarty->assign('label', __($this->label));
$smarty->assign('id', strtolower(str_replace('_', '-', $this->state)));
$smarty->assign('include_once', self::$linkIncludeOnce);
self::$linkIncludeOnce = false;
return $smarty;
}
public function executeLinkterms()
{
$smarty = new stSmarty('stWebpageFrontend');
$smarty->assign('url', $this->getController()->genUrl('@webpage?action=ajax&state='.$this->state));
$smarty->assign('label', __($this->label));
$smarty->assign('id', strtolower(str_replace('_', '-', $this->state)));
$smarty->assign('include_once', self::$linkIncludeOnce);
self::$linkIncludeOnce = false;
return $smarty;
}
}