Ejemplo n.º 1
0
 public function build()
 {
     foreach ($this->classes as $class) {
         // class files (class/ns1/n2/class.html)
         $cfile = new File\ClassFile($this->config, $class);
         $this->theme->drawFile($cfile);
         // class source file (source/ns1/n2/class.html)
         $sfile = new File\SourceFile($this->config, $class);
         $this->theme->drawFile($sfile);
     }
     // classes file (classes.html)
     $file = new File\ClassesFile($this->config, $this->classes);
     $this->theme->drawFile($file);
     $namespaceAccessor = new NamespaceAccessor($this->classes);
     $namespaceAccessor->build();
     $byNamespace = $namespaceAccessor->getByNamespace();
     foreach ($byNamespace as $namespaceName => $nh) {
         // namespace files (namespace/ns1/n2/namespace.html)
         $nfile = new File\NamespaceFile($this->config, $nh);
         $this->theme->drawFile($nfile);
     }
     if ($this->baseUrl) {
         $sitemapFile = new File\Sitemap($this->baseUrl, $this->classes, $byNamespace);
         $this->theme->drawFile($sitemapFile);
     }
     // namespaces files (namespaces.html)
     $nsfile = new File\NamespacesFile($this->config, $namespaceAccessor);
     $this->theme->drawFile($nsfile);
     // index (index.html)
     $indexfile = new File\IndexFile($this->config, $namespaceAccessor);
     $this->theme->drawFile($indexfile);
     $this->theme->buildStaticDirectory();
     $JsonClassDef = $this->theme->buildJsonClassDefinition($this->classes, $namespaceAccessor);
     $this->theme->createFile("asset/api_definition.js", "var ZephirApi = {$JsonClassDef};");
 }
Ejemplo n.º 2
0
 /**
  * copy the static directory of the theme into the output directory
  */
 public function buildStaticDirectory()
 {
     $outputStt = $this->getOutputPath("asset");
     if (!file_exists($outputStt)) {
         mkdir($outputStt, 0777, true);
     }
     if ($this->extendedTheme) {
         $this->extendedTheme->buildStaticDirectory();
     }
     $themeStt = $this->getThemePath("static");
     if ($themeStt) {
         $files = array();
         $this->__copyDir($themeStt, $outputStt . "/static", $files);
         foreach ($files as $f) {
             foreach ($this->options as $optName => $opt) {
                 $fcontent = file_get_contents($f);
                 $fcontent = str_replace("%_" . $optName . "_%", $opt, $fcontent);
                 file_put_contents($f, $fcontent);
             }
         }
     }
 }