implement module inclusion

This commit is contained in:
Manuel Raynaud
2013-10-29 15:56:03 +01:00
parent 7a2469cdc8
commit c74422f5dc
4 changed files with 45 additions and 11 deletions

View File

@@ -35,13 +35,14 @@ abstract class BaseModuleGenerate extends ContainerAwareCommand
protected $moduleDirectory;
protected $reservedKeyWords = array(
"thelia"
'thelia'
);
protected $neededDirectories = array(
"Config",
"Model",
"Loop"
'Config',
'Model',
'Loop',
'AdminModule'
);
protected function verifyExistingModule()

View File

@@ -25,6 +25,7 @@ namespace Thelia\Core\Template\Smarty\Plugins;
use Thelia\Core\Template\Smarty\SmartyPluginDescriptor;
use Thelia\Core\Template\Smarty\AbstractSmartyPlugin;
use Thelia\Model\ModuleQuery;
class Module extends AbstractSmartyPlugin
{
@@ -32,13 +33,27 @@ class Module extends AbstractSmartyPlugin
* Process theliaModule template inclusion function
*
* @param unknown $params
* @param unknown $smarty
* @param \Smarty_Internal_Template $template
* @internal param \Thelia\Core\Template\Smarty\Plugins\unknown $smarty
*
* @return string
*/
public function theliaModule($params, &$smarty)
public function theliaModule($params, \Smarty_Internal_Template $template)
{
// TODO
return "";
$content = null;
if (array_key_exists('location', $params)) {
$location = $params['location'];
$modules = ModuleQuery::getActivated();
foreach ($modules as $module) {
$file = THELIA_MODULE_DIR . "/". ucfirst($module->getCode()) . "/ModuleAdmin/".$location.".html";
if(file_exists($file)) {
$content .= file_get_contents($file);
}
}
}
return $template->fetch(sprintf("string:%s", $content));
}
/**

View File

@@ -2,8 +2,13 @@
namespace Thelia\Model;
use Propel\Runtime\Connection\ConnectionInterface;
use Thelia\Model\Base\Module as BaseModule;
class Module extends BaseModule {
public function postSave(ConnectionInterface $con = null)
{
ModuleQuery::resetActivated();
}
}

View File

@@ -16,13 +16,26 @@ use Thelia\Model\Base\ModuleQuery as BaseModuleQuery;
*
*/
class ModuleQuery extends BaseModuleQuery {
protected static $activated = null;
/**
* @return array|mixed|\PropelObjectCollection
*/
public static function getActivated()
{
return self::create()
->filterByActivate(1)
->find();
if(null === self::$activated) {
self::$activated = self::create()
->filterByActivate(1)
->find();
}
return self::$activated;
}
public static function resetActivated()
{
self::$activated = null;
}
} // ModuleQuery