From 736c7c59cff370c349bd41cefc4e69f4550268b4 Mon Sep 17 00:00:00 2001 From: haszi Date: Mon, 29 Jan 2024 13:59:33 +0100 Subject: [PATCH 1/4] Add table formatting for constant lists --- phpdotnet/phd/Package/Generic/XHTML.php | 42 ++++++++++++++++++------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/phpdotnet/phd/Package/Generic/XHTML.php b/phpdotnet/phd/Package/Generic/XHTML.php index 5cf43504..04d4717c 100644 --- a/phpdotnet/phd/Package/Generic/XHTML.php +++ b/phpdotnet/phd/Package/Generic/XHTML.php @@ -333,7 +333,7 @@ abstract class Package_Generic_XHTML extends Format_Abstract_XHTML { 'sect4' => 'h5', 'segmentedlist' => 'format_table_title', 'table' => 'format_table_title', - 'variablelist' => 'strong', + 'variablelist' => 'format_variablelist_title', 'article' => 'format_container_chunk_top_title', 'appendix' => 'format_container_chunk_top_title', 'book' => 'format_container_chunk_top_title', @@ -1478,14 +1478,25 @@ public function format_step($open, $name, $attrs) { } public function format_variablelist($open, $name, $attrs) { if ($open) { + if (isset($attrs[Reader::XMLNS_DOCBOOK]["role"])) { + $this->role = $attrs[Reader::XMLNS_DOCBOOK]["role"]; + } + $classStr = $headerStr = $idStr = ''; if (isset($attrs[Reader::XMLNS_XML]["id"])) { - $id = $attrs[Reader::XMLNS_XML]["id"]; - return '
'; + $idStr = ' id="' . $attrs[Reader::XMLNS_XML]["id"] . '"'; + } + if ($this->role === 'constant_list') { + $tagName = 'table'; + $classStr = ' class="doctable table"'; + $headerStr = "\n\nConstants\nDescription\n"; } else { - return '
'; + $tagName = 'dl'; } + return '<' . $tagName . $idStr . $classStr . '>' . $headerStr; } - return "
\n"; + $tagName = ($this->role === 'constant_list') ? 'table' : 'dl'; + $this->role = false; + return "\n"; } public function format_varlistentry($open, $name, $attrs) { if ($open) { @@ -1494,26 +1505,29 @@ public function format_varlistentry($open, $name, $attrs) { } else { unset($this->cchunk['varlistentry']['id']); } + return ($this->role === 'constant_list') ? '' : ''; } - return ''; + return ($this->role === 'constant_list') ? '' : ''; } public function format_varlistentry_term($open, $name, $attrs, $props) { + $tagName = ($this->role === 'constant_list') ? 'td' : 'dt'; if ($open) { if (isset($this->cchunk['varlistentry']['id'])) { $id = $this->cchunk['varlistentry']['id']; unset($this->cchunk['varlistentry']['id']); - return '
'; + return '<' . $tagName . ' id="' . $id . '">'; } else { - return "
\n"; + return "<" . $tagName . ">\n"; } } - return "
\n"; + return "\n"; } public function format_varlistentry_listitem($open, $name, $attrs) { + $tagName = ($this->role === 'constant_list') ? 'td' : 'dd'; if ($open) { - return "
\n"; + return "<" . $tagName . ">\n"; } - return "
\n"; + return "\n"; } public function format_term($open, $name, $attrs, $props) { if ($open) { @@ -1653,6 +1667,12 @@ public function format_table_title($open, $name, $attrs, $props) } return ""; } + public function format_variablelist_title($open, $name, $attrs, $props) { + if ($open) { + return ($this->role === 'constant_list') ? "" : ""; + } + return ($this->role === 'constant_list') ? "" : ""; + } public function format_mediaobject($open, $name, $attrs) { $this->cchunk["mediaobject"] = $this->dchunk["mediaobject"]; From 593114b25821f5e82c767c454f6b282396d8b9ac Mon Sep 17 00:00:00 2001 From: haszi Date: Mon, 29 Jan 2024 21:28:21 +0100 Subject: [PATCH 2/4] Language .ini filename hack --- phpdotnet/phd/Format.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/phpdotnet/phd/Format.php b/phpdotnet/phd/Format.php index ae176cc2..44417322 100644 --- a/phpdotnet/phd/Format.php +++ b/phpdotnet/phd/Format.php @@ -395,6 +395,10 @@ final public static function autogen($text, $lang = null) { $filename = Config::lang_dir() . $lang . ".ini"; + if (!file_exists($filename) && strncmp(basename($filename), 'doc-', 4) === 0) { + $filename = dirname($filename) . DIRECTORY_SEPARATOR . substr(basename($filename), 4); + } + self::$autogen[$lang] = parse_ini_file($filename); return self::autogen($text, $lang); } From 79c27d5b389de6a951cb48d68bced46fba605ab7 Mon Sep 17 00:00:00 2001 From: haszi Date: Mon, 29 Jan 2024 21:29:31 +0100 Subject: [PATCH 3/4] Add description and constants autogen text to .ini files --- phpdotnet/phd/data/langs/de.ini | 2 ++ phpdotnet/phd/data/langs/en.ini | 1 + phpdotnet/phd/data/langs/es.ini | 2 ++ phpdotnet/phd/data/langs/fr.ini | 1 + phpdotnet/phd/data/langs/it.ini | 2 ++ phpdotnet/phd/data/langs/ja.ini | 2 ++ phpdotnet/phd/data/langs/pl.ini | 1 + phpdotnet/phd/data/langs/pt_BR.ini | 2 ++ phpdotnet/phd/data/langs/ro.ini | 2 ++ phpdotnet/phd/data/langs/ru.ini | 2 ++ phpdotnet/phd/data/langs/tr.ini | 2 +- phpdotnet/phd/data/langs/uk.ini | 2 ++ phpdotnet/phd/data/langs/zh.ini | 1 + 13 files changed, 21 insertions(+), 1 deletion(-) diff --git a/phpdotnet/phd/data/langs/de.ini b/phpdotnet/phd/data/langs/de.ini index 542b15e1..0df1b9d1 100644 --- a/phpdotnet/phd/data/langs/de.ini +++ b/phpdotnet/phd/data/langs/de.ini @@ -6,3 +6,5 @@ tip = "Tipp" by = "von" editedby = "Herausgegeben von" example = "Beispiel #" +Description = "Beschreibung" +Constants = "Konstanten" diff --git a/phpdotnet/phd/data/langs/en.ini b/phpdotnet/phd/data/langs/en.ini index 7687dfd5..572476f0 100644 --- a/phpdotnet/phd/data/langs/en.ini +++ b/phpdotnet/phd/data/langs/en.ini @@ -14,3 +14,4 @@ mediaobject = "[NOT DISPLAYABLE MEDIA]" Version = "Version" Function = "Function" Description = "Description" +Constants = "Constants" diff --git a/phpdotnet/phd/data/langs/es.ini b/phpdotnet/phd/data/langs/es.ini index 3cdb4aa0..81b759f4 100644 --- a/phpdotnet/phd/data/langs/es.ini +++ b/phpdotnet/phd/data/langs/es.ini @@ -11,3 +11,5 @@ unknownversion = "No hay información de versión disponible, podría estar úni refname = "NOMBRE" refsynopsis = "SINOPSIS" mediaobject = "[MULTIMEDIA NO DISPONIBLE]" +Description = "Descripción" +Constants = "Constantes" diff --git a/phpdotnet/phd/data/langs/fr.ini b/phpdotnet/phd/data/langs/fr.ini index 193506ab..0a7c0fb8 100644 --- a/phpdotnet/phd/data/langs/fr.ini +++ b/phpdotnet/phd/data/langs/fr.ini @@ -10,3 +10,4 @@ example = "Exemple #" Version = "Version" Function = "Fonction" Description = "Description" +Constants = "Constantes" diff --git a/phpdotnet/phd/data/langs/it.ini b/phpdotnet/phd/data/langs/it.ini index a04af5a8..309bc692 100644 --- a/phpdotnet/phd/data/langs/it.ini +++ b/phpdotnet/phd/data/langs/it.ini @@ -6,3 +6,5 @@ tip = "Suggerimento" by = "by" editedby = "Edited By" example = "Example #" +Description = "Descrizione" +Constants = "Costanti" diff --git a/phpdotnet/phd/data/langs/ja.ini b/phpdotnet/phd/data/langs/ja.ini index 5af67be3..b01ad7a3 100644 --- a/phpdotnet/phd/data/langs/ja.ini +++ b/phpdotnet/phd/data/langs/ja.ini @@ -11,3 +11,5 @@ unknownversion = "バージョン情報なし。おそらく Git 版にしか存 refname = "名前" refsynopsis = "書式" mediaobject = "[表示できません]" +Description = "説明" +Constants = "定数" diff --git a/phpdotnet/phd/data/langs/pl.ini b/phpdotnet/phd/data/langs/pl.ini index 34719e92..42199205 100644 --- a/phpdotnet/phd/data/langs/pl.ini +++ b/phpdotnet/phd/data/langs/pl.ini @@ -14,3 +14,4 @@ mediaobject = "[OBIEKT NIEMOŻLIWY DO WYŚWIETLENIA]" Version = "Wersja" Function = "Funkcja" Description = "Opis" +Constants = "Stałe" diff --git a/phpdotnet/phd/data/langs/pt_BR.ini b/phpdotnet/phd/data/langs/pt_BR.ini index 4603ecae..d3fd2a25 100644 --- a/phpdotnet/phd/data/langs/pt_BR.ini +++ b/phpdotnet/phd/data/langs/pt_BR.ini @@ -11,3 +11,5 @@ unknownversion = "Não há informação de versão disponível, talvez apenas no refname = "NOME" refsynopsis = "SINOPSE" mediaobject = "[MÍDIA NÃO DISPONÍVEL]" +Description = "Descrição" +Constants = "Constantes" diff --git a/phpdotnet/phd/data/langs/ro.ini b/phpdotnet/phd/data/langs/ro.ini index 7f64aa00..5134f7fc 100644 --- a/phpdotnet/phd/data/langs/ro.ini +++ b/phpdotnet/phd/data/langs/ro.ini @@ -6,3 +6,5 @@ tip = "Sfat" by = "by" editedby = "Edited By" example = "Example #" +Description = "Descriere" +Constants = "Constante" diff --git a/phpdotnet/phd/data/langs/ru.ini b/phpdotnet/phd/data/langs/ru.ini index 47b93616..c5e4170a 100644 --- a/phpdotnet/phd/data/langs/ru.ini +++ b/phpdotnet/phd/data/langs/ru.ini @@ -11,3 +11,5 @@ unknownversion = "Информация о версии неизвестна, в refname = "ИМЯ" refsynopsis = "СОДЕРЖАНИЕ" mediaobject = "[НЕОТОБРАЖАЕМЫЙ МЕДИА-ФАЙЛ]" +Description = "Описание" +Constants = "Константы" diff --git a/phpdotnet/phd/data/langs/tr.ini b/phpdotnet/phd/data/langs/tr.ini index 88be6b2b..8f1c716e 100644 --- a/phpdotnet/phd/data/langs/tr.ini +++ b/phpdotnet/phd/data/langs/tr.ini @@ -14,4 +14,4 @@ mediaobject = "[ORTAM GÖSTERİME UYGUN DEĞİL]" Version = "Sürüm" Function = "İşlev" Description = "Açıklama" - +Constants = "Sabitler" diff --git a/phpdotnet/phd/data/langs/uk.ini b/phpdotnet/phd/data/langs/uk.ini index 2dfaaeb6..3b6ed873 100644 --- a/phpdotnet/phd/data/langs/uk.ini +++ b/phpdotnet/phd/data/langs/uk.ini @@ -11,3 +11,5 @@ unknownversion = "Інформація про версію невідома, м refname = "ІМ’Я" refsynopsis = "ЗМІСТ" mediaobject = "[НЕВИДИМИЙ МЕДІА-ФАЙЛ]" +Description = "Опис" +Constants = "Константи" diff --git a/phpdotnet/phd/data/langs/zh.ini b/phpdotnet/phd/data/langs/zh.ini index 7db7dda1..618d55a9 100644 --- a/phpdotnet/phd/data/langs/zh.ini +++ b/phpdotnet/phd/data/langs/zh.ini @@ -14,3 +14,4 @@ mediaobject = "[NOT DISPLAYABLE MEDIA]" Version = "版本号" Function = "函数" Description = "描述" +Constants = "常量" From eef450b2f760d756e815a66d04a7ee8f12c727af Mon Sep 17 00:00:00 2001 From: haszi Date: Mon, 29 Jan 2024 21:30:06 +0100 Subject: [PATCH 4/4] Add language specific header to constant list table --- phpdotnet/phd/Package/Generic/XHTML.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phpdotnet/phd/Package/Generic/XHTML.php b/phpdotnet/phd/Package/Generic/XHTML.php index 04d4717c..fe409e87 100644 --- a/phpdotnet/phd/Package/Generic/XHTML.php +++ b/phpdotnet/phd/Package/Generic/XHTML.php @@ -1476,7 +1476,7 @@ public function format_step($open, $name, $attrs) { } return ''; } - public function format_variablelist($open, $name, $attrs) { + public function format_variablelist($open, $name, $attrs, $props) { if ($open) { if (isset($attrs[Reader::XMLNS_DOCBOOK]["role"])) { $this->role = $attrs[Reader::XMLNS_DOCBOOK]["role"]; @@ -1488,7 +1488,7 @@ public function format_variablelist($open, $name, $attrs) { if ($this->role === 'constant_list') { $tagName = 'table'; $classStr = ' class="doctable table"'; - $headerStr = "\n\nConstants\nDescription\n"; + $headerStr = "\n\n" . $this->autogen('Constants', $props['lang']) . "\n" . $this->autogen('Description', $props['lang']) . "\n"; } else { $tagName = 'dl'; }