CRM_Core_CodeGen_Util_Smarty - Allow generating templates without a special bootstrap
authorTim Otten <totten@civicrm.org>
Thu, 28 Jul 2016 00:15:50 +0000 (17:15 -0700)
committerTim Otten <totten@civicrm.org>
Thu, 28 Jul 2016 00:20:16 +0000 (17:20 -0700)
CRM/Core/CodeGen/Main.php
CRM/Core/CodeGen/Util/Smarty.php
CRM/Core/CodeGen/Util/Template.php
tests/phpunit/CRM/Core/CodeGen/FreshnessTest.php
xml/GenCode.php

index bb681dc2041da22564a7ced2764c5f9cbb5188e7..a9b83b3a4ed5e72b39c3f771b93105605d510120 100644 (file)
@@ -44,13 +44,13 @@ class CRM_Core_CodeGen_Main {
    * @param $sqlCodePath
    * @param $phpCodePath
    * @param $tplCodePath
-   * @param $smartyPluginDirs
+   * @param $IGNORE
    * @param $argCms
    * @param $argVersion
    * @param $schemaPath
    * @param $digestPath
    */
-  public function __construct($CoreDAOCodePath, $sqlCodePath, $phpCodePath, $tplCodePath, $smartyPluginDirs, $argCms, $argVersion, $schemaPath, $digestPath) {
+  public function __construct($CoreDAOCodePath, $sqlCodePath, $phpCodePath, $tplCodePath, $IGNORE, $argCms, $argVersion, $schemaPath, $digestPath) {
     $this->CoreDAOCodePath = $CoreDAOCodePath;
     $this->sqlCodePath = $sqlCodePath;
     $this->phpCodePath = $phpCodePath;
@@ -61,8 +61,6 @@ class CRM_Core_CodeGen_Main {
     // default cms is 'drupal', if not specified
     $this->cms = isset($argCms) ? strtolower($argCms) : 'drupal';
 
-    CRM_Core_CodeGen_Util_Smarty::singleton()->setPluginDirs($smartyPluginDirs);
-
     $versionFile = $this->phpCodePath . "/xml/version.xml";
     $versionXML = CRM_Core_CodeGen_Util_Xml::parse($versionFile);
     $this->db_version = $versionXML->version_no;
index 6044f3808ff014f0c16fa52c1dd37a97eaae5df5..7e22561d9ac3e19939f3ec3e96c51ca5fee8c316 100644 (file)
@@ -19,8 +19,6 @@ class CRM_Core_CodeGen_Util_Smarty {
     return self::$singleton;
   }
 
-  private $smartyPluginDirs = array();
-
   private $compileDir;
 
   public function __destruct() {
@@ -29,15 +27,6 @@ class CRM_Core_CodeGen_Util_Smarty {
     }
   }
 
-  /**
-   * Set plugin directories.
-   *
-   * @param array $pluginDirs
-   */
-  public function setPluginDirs($pluginDirs) {
-    $this->smartyPluginDirs = $pluginDirs;
-  }
-
   /**
    * Get templates_c directory.
    *
@@ -56,10 +45,12 @@ class CRM_Core_CodeGen_Util_Smarty {
    * @return \Smarty
    */
   public function createSmarty() {
+    $base = dirname(dirname(dirname(dirname(__DIR__))));
+
     require_once 'Smarty/Smarty.class.php';
     $smarty = new Smarty();
-    $smarty->template_dir = './templates';
-    $smarty->plugins_dir = $this->smartyPluginDirs;
+    $smarty->template_dir = "$base/xml/templates";
+    $smarty->plugins_dir = array("$base/packages/Smarty/plugins", "$base/CRM/Core/Smarty/plugins");
     $smarty->compile_dir = $this->getCompileDir();
     $smarty->clear_all_cache();
 
index 0c08aa91355e941df97b2119e957c1d1c636280b..36af880bf63ef050f93a6fdda83ab5622cd526c5 100644 (file)
@@ -68,6 +68,10 @@ class CRM_Core_CodeGen_Util_Template {
     }
   }
 
+  public function fetch($infile) {
+    return $this->smarty->fetch($infile);
+  }
+
   /**
    * @param $key
    * @param $value
index 0868747abcbb891ff19e27bf0cad45463277b912..bde3451d1e6f9f6ec4b59a329ade011ddbdbdeb4 100644 (file)
@@ -13,6 +13,7 @@ class CRM_Core_CodeGen_FreshnessTest extends CiviUnitTestCase {
     $tasks = $this->findTasks('CRM_Core_CodeGen_DAO');
     $names = array();
     foreach ($tasks as $task) {
+      /** @var CRM_Core_CodeGen_DAO $task */
       $names[] = $task->name;
       $this->assertFalse($task->needsUpdate(), "Expect DAO for {$task->name} is up-to-date");
     }
@@ -59,11 +60,7 @@ class CRM_Core_CodeGen_FreshnessTest extends CiviUnitTestCase {
       $path . '/sql/', // $sqlCodePath
       $path . '/', // $phpCodePath
       $path . '/templates/', // $tplCodePath
-      array(
-        // smarty plugin dirs
-        $path . '/packages/Smarty/plugins',
-        $path . '/CRM/Core/Smarty/plugins',
-      ),
+      NULL, // IGNORE,
       CIVICRM_UF, // cms
       NULL, // db version
       $path . '/xml/schema/Schema.xml', // schema file
index 76e6fa6c9d15730a8257b8d90534823c36cb6575..dc071c795aeb64cb2c9bf79c18cbbaafe5bd05f5 100644 (file)
@@ -31,7 +31,7 @@ $genCode = new CRM_Core_CodeGen_Main(
   '../sql/', // $sqlCodePath
   '../', // $phpCodePath
   '../templates/', // $tplCodePath
-  array('../packages/Smarty/plugins', '../CRM/Core/Smarty/plugins'), // smarty plugin dirs
+  NULL, // IGNORE
   @$argv[3], // cms
   empty($argv[2]) ? NULL : $argv[2], // db version
   empty($argv[1]) ? 'schema/Schema.xml' : $argv[1], // schema file