Skip to content

Commit 29cf251

Browse files
kocsismateGirgias
authored andcommitted
Add support for displaying class/interface on class synopsis pages
1 parent bc10e61 commit 29cf251

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

phpdotnet/phd/Package/Generic/XHTML.php

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,13 @@ abstract class Package_Generic_XHTML extends Format_Abstract_XHTML {
163163
/* DEFAULT */ 'span',
164164
'classsynopsisinfo' => 'format_classsynopsisinfo_oointerface',
165165
),
166-
'interfacename' => 'span',
166+
'interfacename' => array(
167+
/* DEFAULT */ 'span',
168+
'oointerface' => array(
169+
/* DEFAULT */ 'span',
170+
'classsynopsisinfo' => 'format_classsynopsisinfo_oointerface_interfacename',
171+
),
172+
),
167173
'exceptionname' => 'span',
168174
'option' => 'format_option',
169175
'orderedlist' => 'format_orderedlist',
@@ -887,32 +893,57 @@ public function format_refsect($open, $name, $attrs) {
887893

888894
public function format_classsynopsisinfo_oointerface($open, $name, $attrs) {
889895
if ($open) {
896+
if ($this->cchunk["classsynopsisinfo"]["ooclass"] === false) {
897+
return '<span class="' . $name . '">';
898+
}
899+
890900
if ($this->cchunk["classsynopsisinfo"]["implements"] === false) {
891901
$this->cchunk["classsynopsisinfo"]["implements"] = true;
892902
return '<span class="'.$name.'"><span class="modifier">implements</span> ';
893903
}
904+
894905
return '<span class="'.$name.'">, ';
895906
}
896907

897908
return "</span>";
898909
}
910+
899911
public function format_classsynopsisinfo_ooclass_classname($open, $name, $attrs)
900912
{
901913
if ($open) {
902914
if ($this->cchunk["classsynopsisinfo"]["ooclass"] === false) {
903915
$this->cchunk["classsynopsisinfo"]["ooclass"] = true;
904-
return ' class <strong class="'.$name.'">';
916+
return '<span class="modifier">class</span> <strong class="'.$name.'">';
905917
}
918+
906919
return '<strong class="'.$name.'"> ';
907920
}
921+
922+
return "</strong>";
923+
}
924+
925+
public function format_classsynopsisinfo_oointerface_interfacename($open, $name, $attrs)
926+
{
927+
if ($open) {
928+
if ($this->cchunk["classsynopsisinfo"]["ooclass"] === false) {
929+
$this->cchunk["classsynopsisinfo"]["ooclass"] = true;
930+
return '<span class="modifier">interface</span> <strong class="classname">';
931+
}
932+
933+
return ' <strong class="'.$name.'">';
934+
}
935+
908936
return "</strong>";
909937
}
910-
public function format_classsynopsisinfo($open, $name, $attrs) {
938+
939+
public function format_classsynopsisinfo($open, $name, $attrs)
940+
{
911941
$this->cchunk["classsynopsisinfo"] = $this->dchunk["classsynopsisinfo"];
912942
if ($open) {
913943
if (isset($attrs[Reader::XMLNS_DOCBOOK]["role"]) && $attrs[Reader::XMLNS_DOCBOOK]["role"] == "comment") {
914944
return '<div class="'.$name.' classsynopsisinfo_comment">/* ';
915945
}
946+
916947
return '<div class="'.$name.'">';
917948
}
918949

phpdotnet/phd/Package/PHP/XHTML.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ abstract class Package_PHP_XHTML extends Package_Generic_XHTML {
77
'appendix' => 'format_container_chunk',
88
'article' => 'format_container_chunk',
99
'book' => 'format_root_chunk',
10-
'classname' => 'format_suppressed_tags',
10+
'classname' => array(
11+
/* DEFAULT */ 'span',
12+
'ooclass' => array(
13+
/* DEFAULT */ 'strong',
14+
'classsynopsisinfo' => 'format_classsynopsisinfo_ooclass_classname',
15+
),
16+
),
1117
'chapter' => 'format_container_chunk',
1218
'colophon' => 'format_chunk',
1319
'function' => 'format_function',

0 commit comments

Comments
 (0)