X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=application%2Fcore%2FArticle_Controller.php;h=480b8473e24c80fc4cfdf6155e87775741fa543c;hb=42b8f76ab32990f2668a4e3346374de7bad91be2;hp=f98bb1130381ccf58105bc79488b52d4ddb7e22a;hpb=ad7daf2de4288cff974e97ec9290533ba732df3b;p=living-lab-site.git
diff --git a/application/core/Article_Controller.php b/application/core/Article_Controller.php
index f98bb11..480b847 100644
--- a/application/core/Article_Controller.php
+++ b/application/core/Article_Controller.php
@@ -3,30 +3,85 @@
* Library Article_Controller can be extended by a controller to be used for
* content pages that depend on the language.
*
- * Several language specific parameters can be coded in language files.
- * Non language specific parameters can be putted in config files.
+ * The page views are usually located in
+ * "application/views/article/$language/$method".
+ * Parameters:
+ *
+ * - Article Title: in language file 'article_lang.php':
+ * an entry named "article_$method".
+ * If not present "$method" is used as a name.
+ * - Article Meta Description: in language file..:
+ * an entry "article_${method}_description"
+ * - Helpers, Libraries: in config file 'article.php':
+ * an entry named "article_${method}_helpers" or "article_${method}_libraries"
+ * respectively with an array of helpers or libraries to be loaded for the
+ * article.
+ * - CSSs, JSs: in config file 'article.php':
+ * an entry named "article_${method}_css" or "article_${method}_js"
+ * respectively with an array of .css or .js to be loaded into members $css
+ * and $js. It's up to the programmer to define how this members are going
+ * to be used.
+ *
*
- * @category Library
+ * @category Base Controller Library
* @author CÄlin-Andrei Burloiu
*/
class Article_Controller extends CI_Controller {
+ protected $title = NULL;
+ protected $metaDescription = NULL;
+ protected $helpers = array();
+ protected $libraries = array();
+ protected $css = array();
+ protected $js = array();
+
function __construct()
{
parent::__construct();
+
+ // Language, title and description
+ $this->lang->load('article');
+
+ // Helpers and libraries.
+ $this->config->load('article');
}
/**
- * Override this with site specific information (header, menus...) and call
+ * Extend this with site specific information (header, menus...) and call
* $this->_load which is a generic method that loads the article.
* Both parameters must be passed to $this->_load.
*/
public function _remap($method, $params = array())
{
- $this->load->view('echo',
- array('output' => $this->_load($method, $params),
- 'clear' => TRUE)
- );
+ // Title
+ $this->title = $this->lang->line("article_$method");
+ if ($this->title === FALSE)
+ $this->title = $method;
+
+ // Meta Description
+ $this->metaDescription = $this->lang->line("article_${method}_description");
+ if ($this->metaDescription === FALSE)
+ $this->metaDescription = '';
+
+ // Helpers
+ $this->helpers = $this->config->item("article_${method}_helpers");
+ if ($this->helpers !== FALSE)
+ $this->load->helper($this->helpers);
+
+ // Libraries
+ $this->libraries = $this->config->item("article_${method}_library");
+ if ($this->libraries !== FALSE)
+ $this->load->library($libraries);
+
+ // CSSs
+ $css =& $this->config->item("article_${method}_css");
+ if ($css !== FALSE)
+ $this->css = $css;
+
+ // JavaScripts
+ $js =& $this->config->item("article_${method}_js");
+ if ($js !== FALSE)
+ $this->js = $js;
}
/**