cvs: phd /themes/php chmsource.php

From: Date: Fri, 24 Oct 2008 16:38:32 +0000
Subject: cvs: phd /themes/php chmsource.php
Groups: php.doc.cvs 
Request: Send a blank email to doc-cvs+get-2283@lists.php.net to get a copy of this message
loudi Fri Oct 24 16:38:32 2008 UTC Modified files: /phd/themes/php chmsource.php Log: * ws commit

http://cvs.php.net/viewvc.cgi/phd/themes/php/chmsource.php?r1=1.6&r2=1.7&diff_format=u Index: phd/themes/php/chmsource.php diff -u phd/themes/php/chmsource.php:1.6 phd/themes/php/chmsource.php:1.7 --- phd/themes/php/chmsource.php:1.6 Tue Oct 7 08:29:36 2008 +++ phd/themes/php/chmsource.php Fri Oct 24 16:38:32 2008 @@ -1,5 +1,5 @@ <?php -/* $Id: chmsource.php,v 1.6 2008/10/07 08:29:36 kalle Exp $ */ +/* $Id: chmsource.php,v 1.7 2008/10/24 16:38:32 loudi Exp $ */ require_once $ROOT . '/themes/php/chunkedhtml.php'; class chmsource extends chunkedhtml { @@ -7,169 +7,169 @@ const DEFAULT_TITLE = "PHP Manual"; // Array to manual code -> HTML Help Code conversion - // Code list: http://www.helpware.net/htmlhelp/hh_info.htm - // Charset list: http://www.microsoft.com/globaldev/nlsweb/default.asp - // Language code: http://www.unicode.org/unicode/onlinedat/languages.html - // MIME preferred charset list: http://www.iana.org/assignments/character-sets - // Font list: http://www.microsoft.com/office/ork/xp/three/inte03.htm - private $LANGUAGES = array( - "hk" => array( - "langcode" => "0xc04 Hong Kong Cantonese", - "preferred_charset" => "CP950", - "mime_charset_name" => "Big5", - "preferred_font" => "MingLiu,10,0" - ), - "tw" => array( - "langcode" => "0x404 Traditional Chinese", - "preferred_charset" => "CP950", - "mime_charset_name" => "Big5", - "preferred_font" => "MingLiu,10,0" - ), - "cs" => array( - "langcode" => "0x405 Czech", - "preferred_charset" => "Windows-1250", - "mime_charset_name" => "Windows-1250", - "preferred_font" => self::DEFAULT_FONT, - ), - "da" => array( - "langcode" => "0x406 Danish", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT, - "title" => "PHP Manualen" - ), - "de" => array( - "langcode" => "0x407 German (Germany)", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT, - "title" => "PHP Handbuch", - ), - "el" => array( - "langcode" => "0x408 Greek", - "preferred_charset" => "Windows-1253", - "mime_charset_name" => "Windows-1253", - "preferred_font" => self::DEFAULT_FONT - ), - "en" => array( - "langcode" => "0x809 English (United Kingdom)", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT, - "title" => "PHP Manual", - ), - "es" => array( - "langcode" => "0xc0a Spanish (International Sort)", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT - ), - "fr" => array( - "langcode" => "0x40c French (France)", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT, - "title" => "Manuel PHP" - ), - "fi" => array( - "langcode" => "0x40b Finnish", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT - ), - "he" => array( - "langcode" => "0x40d Hebrew", - "preferred_charset" => "Windows-1255", - "mime_charset_name" => "Windows-1255", - "preferred_font" => self::DEFAULT_FONT - ), - "hu" => array( - "langcode" => "0x40e Hungarian", - "preferred_charset" => "Windows-1250", - "mime_charset_name" => "Windows-1250", - "preferred_font" => self::DEFAULT_FONT - ), - "it" => array( - "langcode" => "0x410 Italian (Italy)", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT, - "title" => "Manuale PHP", - ), - "ja" => array( - "langcode" => "0x411 Japanese", - "preferred_charset" => "CP932", - "mime_charset_name" => "csWindows31J", - "preferred_font" => "MS PGothic,10,0" - ), - "kr" => array( - "langcode" => "0x412 Korean", - "preferred_charset" => "CP949", - "mime_charset_name" => "EUC-KR", - "preferred_font" => "Gulim,10,0" - ), - "nl" => array( - "langcode" => "0x413 Dutch (Netherlands)", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT - ), - "no" => array( - "langcode" => "0x414 Norwegian (Bokmal)", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT - ), - "pl" => array( - "langcode" => "0x415 Polish", - "preferred_charset" => "Windows-1250", - "mime_charset_name" => "Windows-1250", - "preferred_font" => self::DEFAULT_FONT - ), - "pt_BR" => array( - "langcode" => "0x416 Portuguese (Brazil)", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT, - "title" => "Manual do PHP", - ), - "ro" => array( - "langcode" => "0x418 Romanian", - "preferred_charset" => "Windows-1250", - "mime_charset_name" => "Windows-1250", - "preferred_font" => self::DEFAULT_FONT - ), - "ru" => array( - "langcode" => "0x419 Russian", - "preferred_charset" => "Windows-1251", - "mime_charset_name" => "Windows-1251", - "preferred_font" => self::DEFAULT_FONT - ), - "sk" => array( - "langcode" => "0x41b Slovak", - "preferred_charset" => "Windows-1250", - "mime_charset_name" => "Windows-1250", - "preferred_font" => self::DEFAULT_FONT - ), - "sl" => array( - "langcode" => "0x424 Slovenian", - "preferred_charset" => "Windows-1250", - "mime_charset_name" => "Windows-1250", - "preferred_font" => self::DEFAULT_FONT - ), - "sv" => array( - "langcode" => "0x41d Swedish", - "preferred_charset" => "Windows-1252", - "mime_charset_name" => "Windows-1252", - "preferred_font" => self::DEFAULT_FONT - ), - "zh" => array( - "langcode" => "0x804 Simplified Chinese", - "preferred_charset" => "CP936", - "mime_charset_name" => "gb2312", - "preferred_font" => "simsun,10,0" - ) - ); + // Code list: http://www.helpware.net/htmlhelp/hh_info.htm + // Charset list: http://www.microsoft.com/globaldev/nlsweb/default.asp + // Language code: http://www.unicode.org/unicode/onlinedat/languages.html + // MIME preferred charset list: http://www.iana.org/assignments/character-sets + // Font list: http://www.microsoft.com/office/ork/xp/three/inte03.htm + private $LANGUAGES = array( + "hk" => array( + "langcode" => "0xc04 Hong Kong Cantonese", + "preferred_charset" => "CP950", + "mime_charset_name" => "Big5", + "preferred_font" => "MingLiu,10,0" + ), + "tw" => array( + "langcode" => "0x404 Traditional Chinese", + "preferred_charset" => "CP950", + "mime_charset_name" => "Big5", + "preferred_font" => "MingLiu,10,0" + ), + "cs" => array( + "langcode" => "0x405 Czech", + "preferred_charset" => "Windows-1250", + "mime_charset_name" => "Windows-1250", + "preferred_font" => self::DEFAULT_FONT, + ), + "da" => array( + "langcode" => "0x406 Danish", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT, + "title" => "PHP Manualen" + ), + "de" => array( + "langcode" => "0x407 German (Germany)", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT, + "title" => "PHP Handbuch", + ), + "el" => array( + "langcode" => "0x408 Greek", + "preferred_charset" => "Windows-1253", + "mime_charset_name" => "Windows-1253", + "preferred_font" => self::DEFAULT_FONT + ), + "en" => array( + "langcode" => "0x809 English (United Kingdom)", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT, + "title" => "PHP Manual", + ), + "es" => array( + "langcode" => "0xc0a Spanish (International Sort)", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT + ), + "fr" => array( + "langcode" => "0x40c French (France)", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT, + "title" => "Manuel PHP" + ), + "fi" => array( + "langcode" => "0x40b Finnish", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT + ), + "he" => array( + "langcode" => "0x40d Hebrew", + "preferred_charset" => "Windows-1255", + "mime_charset_name" => "Windows-1255", + "preferred_font" => self::DEFAULT_FONT + ), + "hu" => array( + "langcode" => "0x40e Hungarian", + "preferred_charset" => "Windows-1250", + "mime_charset_name" => "Windows-1250", + "preferred_font" => self::DEFAULT_FONT + ), + "it" => array( + "langcode" => "0x410 Italian (Italy)", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT, + "title" => "Manuale PHP", + ), + "ja" => array( + "langcode" => "0x411 Japanese", + "preferred_charset" => "CP932", + "mime_charset_name" => "csWindows31J", + "preferred_font" => "MS PGothic,10,0" + ), + "kr" => array( + "langcode" => "0x412 Korean", + "preferred_charset" => "CP949", + "mime_charset_name" => "EUC-KR", + "preferred_font" => "Gulim,10,0" + ), + "nl" => array( + "langcode" => "0x413 Dutch (Netherlands)", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT + ), + "no" => array( + "langcode" => "0x414 Norwegian (Bokmal)", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT + ), + "pl" => array( + "langcode" => "0x415 Polish", + "preferred_charset" => "Windows-1250", + "mime_charset_name" => "Windows-1250", + "preferred_font" => self::DEFAULT_FONT + ), + "pt_BR" => array( + "langcode" => "0x416 Portuguese (Brazil)", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT, + "title" => "Manual do PHP", + ), + "ro" => array( + "langcode" => "0x418 Romanian", + "preferred_charset" => "Windows-1250", + "mime_charset_name" => "Windows-1250", + "preferred_font" => self::DEFAULT_FONT + ), + "ru" => array( + "langcode" => "0x419 Russian", + "preferred_charset" => "Windows-1251", + "mime_charset_name" => "Windows-1251", + "preferred_font" => self::DEFAULT_FONT + ), + "sk" => array( + "langcode" => "0x41b Slovak", + "preferred_charset" => "Windows-1250", + "mime_charset_name" => "Windows-1250", + "preferred_font" => self::DEFAULT_FONT + ), + "sl" => array( + "langcode" => "0x424 Slovenian", + "preferred_charset" => "Windows-1250", + "mime_charset_name" => "Windows-1250", + "preferred_font" => self::DEFAULT_FONT + ), + "sv" => array( + "langcode" => "0x41d Swedish", + "preferred_charset" => "Windows-1252", + "mime_charset_name" => "Windows-1252", + "preferred_font" => self::DEFAULT_FONT + ), + "zh" => array( + "langcode" => "0x804 Simplified Chinese", + "preferred_charset" => "CP936", + "mime_charset_name" => "gb2312", + "preferred_font" => "simsun,10,0" + ) + ); // HTML Help Workshop project file protected $hhpStream; @@ -180,26 +180,27 @@ protected $toc; // CHM Index Map protected $hhkStream; - // Project files Output directory - protected $chmdir; + // Project files Output directory + protected $chmdir; public function __construct(array $IDs, $filename, $ext = "html", $dir = "chm") { chunkedhtml::__construct($IDs, $filename, $ext); $this->chmdir = PhDConfig::output_dir() . $dir . DIRECTORY_SEPARATOR; - if(!file_exists($this->chmdir) || is_file($this->chmdir)) - mkdir($this->chmdir) or die("Can't create the CHM project directory"); + if(!file_exists($this->chmdir) || is_file($this->chmdir)) + mkdir($this->chmdir) or die("Can't create the CHM project directory"); $this->outputdir = PhDConfig::output_dir() . $dir . DIRECTORY_SEPARATOR . "res" . DIRECTORY_SEPARATOR; - if(!file_exists($this->outputdir) || is_file($this->outputdir)) - mkdir($this->outputdir) or die("Can't create the cache directory"); - - $lang = PhDConfig::language(); - $this->hhpStream = fopen($this->chmdir . "php_manual_{$lang}.hhp", "w"); - $this->hhcStream = fopen($this->chmdir . "php_manual_{$lang}.hhc", "w"); - $this->hhkStream = fopen($this->chmdir . "php_manual_{$lang}.hhk", "w"); - - file_put_contents($this->outputdir . "style.css", $this->fetchStylesheet() . PHP_EOL . 'body { padding : 3px;}'); - - self::headerChm(); + + if(!file_exists($this->outputdir) || is_file($this->outputdir)) + mkdir($this->outputdir) or die("Can't create the cache directory"); + + $lang = PhDConfig::language(); + $this->hhpStream = fopen($this->chmdir . "php_manual_{$lang}.hhp", "w"); + $this->hhcStream = fopen($this->chmdir . "php_manual_{$lang}.hhc", "w"); + $this->hhkStream = fopen($this->chmdir . "php_manual_{$lang}.hhk", "w"); + + file_put_contents($this->outputdir . "style.css", $this->fetchStylesheet() . PHP_EOL . 'body { padding : 3px;}'); + + self::headerChm(); } public function __destruct() { @@ -212,33 +213,33 @@ chunkedhtml::__destruct(); } - protected function appendChm($name, $ref, $isChunk, $hasChild) { - switch ($isChunk) { - case PhDReader::OPEN_CHUNK : - $this->currentTocDepth++; - fwrite($this->hhpStream, "{$ref}\n"); - fwrite($this->hhcStream, "{$this->offset(1)}<li><object type=\"text/sitemap\">\n" . - "{$this->offset(3)}<param name=\"Name\" value=\"" .htmlentities($name, ENT_QUOTES, 'UTF-8') . "\">\n" . - "{$this->offset(3)}<param name=\"Local\" value=\"{$ref}\">\n" . - "{$this->offset(2)}</object>\n"); - if ($hasChild) fwrite($this->hhcStream, "{$this->offset(2)}<ul>\n"); - fwrite($this->hhkStream, " <li><object type=\"text/sitemap\">\n" . - " <param name=\"Local\" value=\"{$ref}\">\n" . - " <param name=\"Name\" value=\"" . htmlentities($name, ENT_QUOTES, 'UTF-8') . "\">\n" . - " </object>\n </li>\n"); - break; - case PhDReader::CLOSE_CHUNK : - if ($hasChild) { - fwrite($this->hhcStream, "{$this->offset(2)}</ul>\n"); - } - $this->currentTocDepth--; - break; - } - } + protected function appendChm($name, $ref, $isChunk, $hasChild) { + switch ($isChunk) { + case PhDReader::OPEN_CHUNK : + $this->currentTocDepth++; + fwrite($this->hhpStream, "{$ref}\n"); + fwrite($this->hhcStream, "{$this->offset(1)}<li><object type=\"text/sitemap\">\n" . + "{$this->offset(3)}<param name=\"Name\" value=\"" .htmlentities($name, ENT_QUOTES, 'UTF-8') . "\">\n" . + "{$this->offset(3)}<param name=\"Local\" value=\"{$ref}\">\n" . + "{$this->offset(2)}</object>\n"); + if ($hasChild) fwrite($this->hhcStream, "{$this->offset(2)}<ul>\n"); + fwrite($this->hhkStream, " <li><object type=\"text/sitemap\">\n" . + " <param name=\"Local\" value=\"{$ref}\">\n" . + " <param name=\"Name\" value=\"" . htmlentities($name, ENT_QUOTES, 'UTF-8') . "\">\n" . + " </object>\n </li>\n"); + break; + case PhDReader::CLOSE_CHUNK : + if ($hasChild) { + fwrite($this->hhcStream, "{$this->offset(2)}</ul>\n"); + } + $this->currentTocDepth--; + break; + } + } protected function headerChm() { - $lang = PhDConfig::language(); - fwrite($this->hhpStream, '[OPTIONS] + $lang = PhDConfig::language(); + fwrite($this->hhpStream, '[OPTIONS] Compatibility=1.1 or later Compiled file=php_manual_' . $lang . '.chm Contents file=php_manual_' . $lang . '.hhc @@ -269,7 +270,7 @@ </object> <ul> '); - fwrite($this->hhkStream, '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> + fwrite($this->hhkStream, '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <meta name="generator" content="PhD"> @@ -282,75 +283,76 @@ <ul> '); } - + protected function footerChm() { fwrite($this->hhcStream, " </ul>\n" . - " </body>\n" . - "</html>\n"); - fwrite($this->hhkStream, " </ul>\n" . - " </body>\n" . - "</html>\n"); + " </body>\n" . + "</html>\n"); + fwrite($this->hhkStream, " </ul>\n" . + " </body>\n" . + "</html>\n"); } - + public function appendData($data, $isChunk) { if ($this->lastContent) - $this->appendChm($this->lastContent["name"], $this->lastContent["reference"], - $isChunk, $this->lastContent["hasChild"]); + $this->appendChm($this->lastContent["name"], $this->lastContent["reference"], + $isChunk, $this->lastContent["hasChild"]); $this->lastContent = null; return parent::appendData($data, $isChunk); } - + public function format_chunk($open, $name, $attrs, $props) { - $this->collectContent($attrs); - return parent::format_chunk($open, $name, $attrs, $props); + $this->collectContent($attrs); + return parent::format_chunk($open, $name, $attrs, $props); } - + public function format_container_chunk($open, $name, $attrs, $props) { - $this->collectContent($attrs); - return parent::format_container_chunk($open, $name, $attrs, $props); + $this->collectContent($attrs); + return parent::format_container_chunk($open, $name, $attrs, $props); } - + public function format_root_chunk($open, $name, $attrs) { - $this->collectContent($attrs); - return parent::format_root_chunk($open, $name, $attrs); + $this->collectContent($attrs); + return parent::format_root_chunk($open, $name, $attrs); } - + + public function header($id) { $header = parent::header($id); // Add CSS link to <head> $header = ereg_replace('( *)</head>','\\1 <link media="all" rel="stylesheet" type="text/css" href="style.css"/> -\\1</head>', $header); + \\1</head>', $header); return $header; } - + private function collectContent($attrs) { - if (isset($attrs[PhDReader::XMLNS_XML]["id"])) { - $id = $attrs[PhDReader::XMLNS_XML]["id"]; - $this->lastContent = array( - "name" => PhDHelper::getDescription($id), - "reference" => "res" . DIRECTORY_SEPARATOR . - (PhDHelper::getFilename($id) ? PhDHelper::getFilename($id) : $id) . "." . $this->ext, - "hasChild" => (count(PhDHelper::getChildren($id)) > 0) - ); - } + if (isset($attrs[PhDReader::XMLNS_XML]["id"])) { + $id = $attrs[PhDReader::XMLNS_XML]["id"]; + $this->lastContent = array( + "name" => PhDHelper::getDescription($id), + "reference" => "res" . DIRECTORY_SEPARATOR . + (PhDHelper::getFilename($id) ? PhDHelper::getFilename($id) : $id) . "." . $this->ext, + "hasChild" => (count(PhDHelper::getChildren($id)) > 0) + ); + } } - + private function fetchStylesheet() { - $stylesheet = file_get_contents("http://www.php.net/styles/site.css"); - if ($stylesheet) return $stylesheet; - else { - v("Stylesheet not fetched. Uses default rendering style.", E_USER_WARNING); - return ""; - } + $stylesheet = file_get_contents("http://www.php.net/styles/site.css"); + if ($stylesheet) return $stylesheet; + else { + v("Stylesheet not fetched. Uses default rendering style.", E_USER_WARNING); + return ""; + } } - + private function offset($offset) { - $spaces = ""; - for ($i = 0; $i < $offset + 2 * $this->currentTocDepth; $i++) - $spaces .= " "; - return $spaces; + $spaces = ""; + for ($i = 0; $i < $offset + 2 * $this->currentTocDepth; $i++) + $spaces .= " "; + return $spaces; } }
« previous php.doc.cvs (#2283) next »