diff --git a/ext/index/theme.php b/ext/index/theme.php
index f948f1bb..4a65f4e6 100644
--- a/ext/index/theme.php
+++ b/ext/index/theme.php
@@ -37,6 +37,8 @@ and of course start organising your images :-)
*/
public function display_page(Page $page, array $images)
{
+ $this->display_shortwiki($page);
+
$this->display_page_header($page, $images);
$nav = $this->build_navigation($this->page_number, $this->total_pages, $this->search_terms);
@@ -102,6 +104,36 @@ and of course start organising your images :-)
return $table;
}
+ protected function display_shortwiki(Page $page)
+ {
+ global $config;
+
+ if (class_exists('Wiki') && $config->get_bool(WikiConfig::TAG_SHORTWIKIS)) {
+ if (count($this->search_terms) == 1) {
+ $st = Tag::implode($this->search_terms);
+
+ $wikiPage = Wiki::get_page($st);
+ $short_wiki_description = '';
+ if ($wikiPage->id != -1) {
+ // only show first line of wiki
+ $short_wiki_description = explode("\n", $wikiPage->body, 2)[0];
+
+ $tfe = new TextFormattingEvent($short_wiki_description);
+ send_event($tfe);
+ $short_wiki_description = $tfe->formatted;
+ }
+ $wikiLink = make_link("wiki/$st");
+ if (class_exists('TagCategories')) {
+ $this->tagcategories = new TagCategories;
+ $tag_category_dict = $this->tagcategories->getKeyedDict();
+ $st = $this->tagcategories->getTagHtml(html_escape($st), $tag_category_dict);
+ }
+ $short_wiki_description = '
'.$st.' ⓘ
'.$short_wiki_description;
+ $page->add_block(new Block(null, $short_wiki_description, "main", 0, "short-wiki-description"));
+ }
+ }
+ }
+
/**
* #param Image[] $images
*/
diff --git a/ext/wiki/main.php b/ext/wiki/main.php
index 49b9a7b7..5af306d4 100644
--- a/ext/wiki/main.php
+++ b/ext/wiki/main.php
@@ -96,11 +96,31 @@ class WikiPage
}
}
+abstract class WikiConfig
+{
+ const TAG_SHORTWIKIS = "shortwikis_on_tags";
+}
+
class Wiki extends Extension
{
/** @var WikiTheme */
protected $theme;
+ public function onInitExt(InitExtEvent $event)
+ {
+ global $config;
+ $config->set_default_bool(WikiConfig::TAG_SHORTWIKIS, false);
+ }
+
+ // Add a block to the Board Config / Setup
+ public function onSetupBuilding(SetupBuildingEvent $event)
+ {
+ $sb = new SetupBlock("Wiki");
+ $sb->add_bool_option(WikiConfig::TAG_SHORTWIKIS, "Show shortwiki entry when searching for a single tag: ");
+
+ $event->panel->add_block($sb);
+ }
+
public function onDatabaseUpgrade(DatabaseUpgradeEvent $event)
{
global $database;
diff --git a/themes/danbooru/index.theme.php b/themes/danbooru/index.theme.php
index 5aa2f90f..7b72857b 100644
--- a/themes/danbooru/index.theme.php
+++ b/themes/danbooru/index.theme.php
@@ -7,6 +7,8 @@ class CustomIndexTheme extends IndexTheme
*/
public function display_page(Page $page, array $images)
{
+ $this->display_shortwiki($page);
+
global $config;
if (count($this->search_terms) == 0) {
diff --git a/themes/danbooru/style.css b/themes/danbooru/style.css
index 59701969..598c05f9 100644
--- a/themes/danbooru/style.css
+++ b/themes/danbooru/style.css
@@ -87,6 +87,12 @@ margin:auto;
text-align:center;
width:256px;
}
+#short-wiki-description {
+padding:0 1.5em;
+}
+#short-wiki-description h2 {
+padding-bottom:0.2em;
+}
FOOTER {
clear:both;
color:#CCCCCC;
diff --git a/themes/danbooru2/index.theme.php b/themes/danbooru2/index.theme.php
index 796fb660..73a2da10 100644
--- a/themes/danbooru2/index.theme.php
+++ b/themes/danbooru2/index.theme.php
@@ -7,6 +7,8 @@ class CustomIndexTheme extends IndexTheme
*/
public function display_page(Page $page, array $images)
{
+ $this->display_shortwiki($page);
+
$this->display_page_header($page, $images);
$nav = $this->build_navigation($this->page_number, $this->total_pages, $this->search_terms);
diff --git a/themes/danbooru2/style.css b/themes/danbooru2/style.css
index a4b05818..ba42886f 100644
--- a/themes/danbooru2/style.css
+++ b/themes/danbooru2/style.css
@@ -99,6 +99,13 @@ border-top:medium none;
text-align:center;
font-size:0.75em;
}
+#short-wiki-description {
+padding:0 2em;
+font-size:1.2em;
+}
+#short-wiki-description h2 {
+padding-bottom:0.2em;
+}
FOOTER {
clear:both;
border-top:solid 1px #E7E7F7;
diff --git a/themes/default/style.css b/themes/default/style.css
index 4eefd609..7e963c99 100644
--- a/themes/default/style.css
+++ b/themes/default/style.css
@@ -148,6 +148,13 @@ ARTICLE TABLE {
* specific page types *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+#short-wiki-description > .blockbody {
+ padding-bottom: 15px;
+}
+#short-wiki-description h2 {
+ margin: 0 0 0.4em;
+}
+
#pagelist {
margin-top: 32px;
}
diff --git a/themes/futaba/style.css b/themes/futaba/style.css
index 4ea6a219..a9738444 100644
--- a/themes/futaba/style.css
+++ b/themes/futaba/style.css
@@ -84,6 +84,14 @@ TABLE.tag_list>TBODY>TR>TD:after {
* specific page types *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+#short-wiki-description > .blockbody {
+ padding-bottom: 15px;
+ font-size: 1.1em;
+}
+#short-wiki-description h2 {
+ margin: 0 0 0.4em;
+}
+
.doubledash {
color: #D9BFB7;
vertical-align: top;
diff --git a/themes/warm/style.css b/themes/warm/style.css
index 2d54532d..616010ee 100644
--- a/themes/warm/style.css
+++ b/themes/warm/style.css
@@ -170,6 +170,13 @@ ARTICLE TABLE {
* specific page types *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+#short-wiki-description > .blockbody {
+ padding-bottom: 15px;
+}
+#short-wiki-description h2 {
+ margin: 0 0 0.4em;
+}
+
#pagelist {
margin-top: 32px;
}