Skip to content

Commit

Permalink
impl session container service
Browse files Browse the repository at this point in the history
  • Loading branch information
alnv committed Mar 9, 2021
1 parent e9c0c2e commit 6efea8f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
20 changes: 14 additions & 6 deletions WishlistInserttag.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@

class WishlistInserttag extends \Frontend {

protected function getSession() {

if (version_compare('4.4', VERSION, '<=')) {
return \System::getContainer()->get('session');
}
return \Session::getInstance();
}

public function getInsertTagValue($strTag) {

$arrTables = [];
Expand Down Expand Up @@ -53,13 +61,13 @@ public function getInsertTagValue($strTag) {

if ( isset( $arrTags[0] ) && $arrTags[0] == 'WISHLIST_AMOUNT' && $arrTags[1] ) {
$numReturn = 0;
$objSession = \Session::getInstance();
$arrTables = $objSession->get( 'wishlist_tables' );
$objSession = $this->getSession();
$arrTables = $objSession->get('wishlist_tables');

if ( !is_array( $arrTables ) ) $arrTables = [];
if ( in_array( $arrTags[1], $arrTables ) ) {
$arrValue = $objSession->get( 'wishlist_' . $arrTags[1] );
if ( isset($arrValue['ids'])) {
if (!is_array($arrTables)) $arrTables = [];
if (in_array($arrTags[1], $arrTables)) {
$arrValue = $objSession->get( 'wishlist_' . $arrTags[1]);
if (isset($arrValue['ids'])) {
$numReturn = count($arrValue['ids']);
}
}
Expand Down
2 changes: 1 addition & 1 deletion WishlistView.php
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<?phpnamespace CMWishlist;use CatalogManager\I18nCatalogTranslator;use CatalogManager\CatalogFieldBuilder;use CatalogManager\CatalogController;use CatalogManager\Toolkit;use CatalogManager\Entity;class WishlistView extends CatalogController { protected $arrWishlist = []; protected $blnExplicit = false; protected $arrExplicitTables = []; protected $arrWishlistTables = []; protected $objI18nCatalogTranslator = null; protected function getSession() { if (version_compare('4.4', VERSION, '<=')) { return \System::getContainer()->get('session'); } return \Session::getInstance(); } public function __construct() { parent::__construct(); $this->import('SQLQueryBuilder'); $objSession = $this->getSession(); $this->objI18nCatalogTranslator = new I18nCatalogTranslator(); $this->objI18nCatalogTranslator->initialize(); if ( is_array( $objSession->get( 'wishlist_tables' ) ) && !empty( $objSession->get( 'wishlist_tables' ) ) ) { $this->arrWishlistTables = $objSession->get( 'wishlist_tables' ); } $this->getWishlistData(); } public function setExplicit( $arrTables ) { $arrExplicitTables = []; $this->blnExplicit = true; foreach ( $arrTables as $strTable ) { if ( in_array( $strTable, $this->arrWishlistTables ) ) { $arrExplicitTables[] = $strTable; } } $this->arrExplicitTables = $arrExplicitTables; } public function render($arrSettings=[]) { $arrData = []; $arrTables = $this->arrWishlistTables; $objTemplate = new \FrontendTemplate( 'wishlist_view' ); if ( !empty( $this->arrExplicitTables ) ) $arrTables = $this->arrExplicitTables; foreach ( $arrTables as $strTable ) { $objFieldBuilder = new CatalogFieldBuilder(); $objFieldBuilder->initialize( $strTable ); $arrCatalog = $objFieldBuilder->getCatalog(); $arrRow = $this->getRow($strTable, $arrCatalog, $arrSettings); if ( is_bool( $arrRow ) && $arrRow === false ) continue; $arrData[$strTable] = []; $arrData[$strTable]['rows'] = $arrRow; $arrData[$strTable]['table'] = $this->getTable($strTable, $arrCatalog); } $objTemplate->setData(['data' => $arrData, 'wishlist' => $this->arrWishlist]); return $objTemplate->parse(); } protected function getTable( $strTable, $arrCatalog ) { $arrModuleLabels = $this->objI18nCatalogTranslator->get( 'module', $arrCatalog['tablename'] ); $strTitleLabel = $this->objI18nCatalogTranslator->get( 'field', 'title', [ 'titleOnly' => true ] ); return [ 'table' => $strTable, 'titleLabel' => $strTitleLabel, 'headline' => $arrModuleLabels[0], 'description' => $arrModuleLabels[1], 'amountLabel' => $GLOBALS['TL_LANG']['MSC']['CATALOG_MANAGER']['wishlistAmount'] ]; } protected function getRow($strTable, $arrCatalog, $arrSettings=[]) { $arrWishlist = $this->arrWishlist[ $strTable ]; $arrIds = $arrWishlist['ids']; $arrCatalogs = []; if (empty($arrIds)) { $arrIds = ['0']; } foreach ($arrIds as $strId) { $objEntity = new Entity($strId, $strTable, $arrSettings); $arrEntity = $objEntity->getEntity(); $arrEntity['wishlistTable'] = $strTable; $arrEntity['wishlistAmountValue'] = $arrWishlist['amounts'][$strId] ? $arrWishlist['amounts'][$strId] : '1'; $arrCatalogs[] = $arrEntity; } return $arrCatalogs; } protected function getWishlistData() { if ( empty( $this->arrWishlistTables ) ) return null; $objSession = $this->getSession(); foreach ( $this->arrWishlistTables as $strTable ) { $arrWishlist = $objSession->get( 'wishlist_' . $strTable ); if ( Toolkit::isEmpty( $arrWishlist ) ) continue; if ( is_array( $arrWishlist ) && !isset( $arrWishlist['ids'] ) ) continue; $this->arrWishlist[ $strTable ] = $arrWishlist; } }}
<?phpnamespace CMWishlist;use CatalogManager\I18nCatalogTranslator;use CatalogManager\CatalogFieldBuilder;use CatalogManager\CatalogController;use CatalogManager\Toolkit;use CatalogManager\Entity;class WishlistView extends CatalogController { protected $arrWishlist = []; protected $blnExplicit = false; protected $arrExplicitTables = []; protected $arrWishlistTables = []; protected $objI18nCatalogTranslator = null; protected function getSession() { if (version_compare('4.4', VERSION, '<=')) { return \System::getContainer()->get('session'); } return \Session::getInstance(); } public function __construct() { parent::__construct(); $this->import('SQLQueryBuilder'); $objSession = $this->getSession(); $this->objI18nCatalogTranslator = new I18nCatalogTranslator(); $this->objI18nCatalogTranslator->initialize(); if (is_array($objSession->get('wishlist_tables')) && !empty($objSession->get('wishlist_tables'))) { $this->arrWishlistTables = $objSession->get('wishlist_tables'); } $this->getWishlistData(); } public function setExplicit( $arrTables ) { $arrExplicitTables = []; $this->blnExplicit = true; foreach ( $arrTables as $strTable ) { if ( in_array( $strTable, $this->arrWishlistTables ) ) { $arrExplicitTables[] = $strTable; } } $this->arrExplicitTables = $arrExplicitTables; } public function render($arrSettings=[]) { $arrData = []; $arrTables = $this->arrWishlistTables; $objTemplate = new \FrontendTemplate( 'wishlist_view' ); if ( !empty( $this->arrExplicitTables ) ) $arrTables = $this->arrExplicitTables; foreach ( $arrTables as $strTable ) { $objFieldBuilder = new CatalogFieldBuilder(); $objFieldBuilder->initialize( $strTable ); $arrCatalog = $objFieldBuilder->getCatalog(); $arrRow = $this->getRow($strTable, $arrCatalog, $arrSettings); if ( is_bool( $arrRow ) && $arrRow === false ) continue; $arrData[$strTable] = []; $arrData[$strTable]['rows'] = $arrRow; $arrData[$strTable]['table'] = $this->getTable($strTable, $arrCatalog); } $objTemplate->setData(['data' => $arrData, 'wishlist' => $this->arrWishlist]); return $objTemplate->parse(); } protected function getTable( $strTable, $arrCatalog ) { $arrModuleLabels = $this->objI18nCatalogTranslator->get( 'module', $arrCatalog['tablename'] ); $strTitleLabel = $this->objI18nCatalogTranslator->get( 'field', 'title', [ 'titleOnly' => true ] ); return [ 'table' => $strTable, 'titleLabel' => $strTitleLabel, 'headline' => $arrModuleLabels[0], 'description' => $arrModuleLabels[1], 'amountLabel' => $GLOBALS['TL_LANG']['MSC']['CATALOG_MANAGER']['wishlistAmount'] ]; } protected function getRow($strTable, $arrCatalog, $arrSettings=[]) { $arrWishlist = $this->arrWishlist[ $strTable ]; $arrIds = $arrWishlist['ids']; $arrCatalogs = []; if (empty($arrIds)) { $arrIds = ['0']; } foreach ($arrIds as $strId) { $objEntity = new Entity($strId, $strTable, $arrSettings); $arrEntity = $objEntity->getEntity(); $arrEntity['wishlistTable'] = $strTable; $arrEntity['wishlistAmountValue'] = $arrWishlist['amounts'][$strId] ? $arrWishlist['amounts'][$strId] : '1'; $arrCatalogs[] = $arrEntity; } return $arrCatalogs; } protected function getWishlistData() { if ( empty( $this->arrWishlistTables ) ) return null; $objSession = $this->getSession(); foreach ( $this->arrWishlistTables as $strTable ) { $arrWishlist = $objSession->get( 'wishlist_' . $strTable ); if ( Toolkit::isEmpty( $arrWishlist ) ) continue; if ( is_array( $arrWishlist ) && !isset( $arrWishlist['ids'] ) ) continue; $this->arrWishlist[ $strTable ] = $arrWishlist; } }}
Expand Down

0 comments on commit 6efea8f

Please sign in to comment.