ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ILIAS\Wiki\Page\PagesTableBuilder Class Reference
+ Inheritance diagram for ILIAS\Wiki\Page\PagesTableBuilder:
+ Collaboration diagram for ILIAS\Wiki\Page\PagesTableBuilder:

Public Member Functions

 __construct (protected InternalDomainService $domain, protected InternalGUIService $gui, protected int $ref_id, protected string $mode, protected int $page_id, protected string $lang, object $parent_gui, string $parent_cmd)
 
- Public Member Functions inherited from ILIAS\Repository\Table\CommonTableBuilder
 __construct (protected object $parent_gui, protected string $parent_cmd, bool $numeric_ids=true)
 
 getTable ()
 

Data Fields

const MODE_ALL_PAGES = "all"
 
const MODE_NEW_PAGES = "new"
 
const MODE_POPULAR_PAGES = "popular"
 
const MODE_WHAT_LINKS_HERE = "what_links"
 
const MODE_ORPHANED_PAGES = "orphaned"
 

Protected Member Functions

 getId ()
 
 getTitle ()
 
 getRetrieval ()
 
 transformRow (array $data_row)
 transform raw data array to table row data array More...
 
 build (TableAdapterGUI $table)
 
 getLanguageLabel (string $language)
 
 getTranslations (int $page_id)
 
- Protected Member Functions inherited from ILIAS\Repository\Table\CommonTableBuilder
 getId ()
 
 getTitle ()
 
 getRetrieval ()
 
 getNamespace ()
 
 getOrderingCommand ()
 
 activeAction (string $action, array $data_row)
 
 transformRow (array $data_row)
 transform raw data array to table row data array More...
 
 build (TableAdapterGUI $table)
 

Protected Attributes

Translations $translations
 
PageManager $page_manager
 
- Protected Attributes inherited from ILIAS\Repository\Table\CommonTableBuilder
TableAdapterGUI $table
 

Detailed Description

Definition at line 30 of file PagesTableBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Wiki\Page\PagesTableBuilder::__construct ( protected InternalDomainService  $domain,
protected InternalGUIService  $gui,
protected int  $ref_id,
protected string  $mode,
protected int  $page_id,
protected string  $lang,
object  $parent_gui,
string  $parent_cmd 
)

Definition at line 41 of file PagesTableBuilder.php.

50 {
51 $this->page_manager = $this->domain->page()->page($ref_id);
52 $this->translations = $this->domain->wiki()->translation($ref_id);
53 parent::__construct($parent_gui, $parent_cmd);
54 }
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc

References ILIAS\GlobalScreen\Provider\__construct().

+ Here is the call graph for this function:

Member Function Documentation

◆ build()

ILIAS\Wiki\Page\PagesTableBuilder::build ( TableAdapterGUI  $table)
protected

Reimplemented from ILIAS\Repository\Table\CommonTableBuilder.

Definition at line 129 of file PagesTableBuilder.php.

129 : TableAdapterGUI
130 {
131 $lng = $this->domain->lng();
132 $translation_active = $this->translations->getContentTranslationActivated();
133
134 switch ($this->mode) {
136 $table = $table
137 ->dateColumn("created", $lng->txt("created"), true)
138 ->linkColumn("title", $lng->txt("wiki_page"), true);
139 if ($translation_active) {
140 $table = $table->textColumn("lang", $lng->txt("language"));
141 }
142 return $table->textColumn("user_sort", $lng->txt("wiki_created_by"), true);
143
145 $table = $table
146 ->linkColumn("title", $lng->txt("wiki_page"), true);
147 if ($translation_active) {
148 $table = $table->textColumn("lang", $lng->txt("language"));
149 }
150 return $table->textColumn("cnt", $lng->txt("wiki_page_hits"), true);
151
153 $table = $table->linkColumn("title", $lng->txt("wiki_page"), true);
154 if ($translation_active) {
155 $table = $table->textColumn("lang", $lng->txt("language"));
156 }
157 return $table;
158
159 default:
160 $table = $table
161 ->linkColumn("title", $lng->txt("wiki_page"), true)
162 ->dateColumn("date", $lng->txt("wiki_last_changed"), true);
163 if ($translation_active && $this->mode !== self::MODE_WHAT_LINKS_HERE) {
164 $table = $table->textColumn("languages", $lng->txt("wiki_translations"));
165 }
166 return $table->textColumn("user_sort", $lng->txt("wiki_last_changed_by"), true);
167 }
168 }
textColumn(string $key, string $title, bool $sortable=false)
dateColumn(string $key, string $title, bool $sortable=false)
linkColumn(string $key, string $title, bool $sortable=false)
global $lng
Definition: privfeed.php:26

References $lng, ILIAS\Repository\Table\CommonTableBuilder\$table, ILIAS\Repository\Table\TableAdapterGUI\dateColumn(), ILIAS\Repository\Table\TableAdapterGUI\linkColumn(), ILIAS\Wiki\Page\PagesTableBuilder\MODE_NEW_PAGES, ILIAS\Wiki\Page\PagesTableBuilder\MODE_ORPHANED_PAGES, ILIAS\Wiki\Page\PagesTableBuilder\MODE_POPULAR_PAGES, and ILIAS\Repository\Table\TableAdapterGUI\textColumn().

+ Here is the call graph for this function:

◆ getId()

ILIAS\Wiki\Page\PagesTableBuilder::getId ( )
protected

Reimplemented from ILIAS\Repository\Table\CommonTableBuilder.

Definition at line 56 of file PagesTableBuilder.php.

56 : string
57 {
58 return "wiki_pages_" . $this->mode;
59 }

◆ getLanguageLabel()

ILIAS\Wiki\Page\PagesTableBuilder::getLanguageLabel ( string  $language)
protected

Definition at line 170 of file PagesTableBuilder.php.

170 : string
171 {
172 $language = $language === "-"
173 ? $this->translations->getBaseLanguage()
174 : $language;
175 return $this->domain->lng()->txt("meta_l_" . $language);
176 }

Referenced by ILIAS\Wiki\Page\PagesTableBuilder\transformRow().

+ Here is the caller graph for this function:

◆ getRetrieval()

ILIAS\Wiki\Page\PagesTableBuilder::getRetrieval ( )
protected

Reimplemented from ILIAS\Repository\Table\CommonTableBuilder.

Definition at line 73 of file PagesTableBuilder.php.

73 : RetrievalInterface
74 {
75 return $this->domain->page()->pagesRetrieval(
76 $this->ref_id,
77 $this->mode,
78 $this->page_id,
79 $this->lang
80 );
81 }

◆ getTitle()

ILIAS\Wiki\Page\PagesTableBuilder::getTitle ( )
protected

Reimplemented from ILIAS\Repository\Table\CommonTableBuilder.

Definition at line 61 of file PagesTableBuilder.php.

61 : string
62 {
63 if ($this->mode === self::MODE_WHAT_LINKS_HERE) {
64 return sprintf(
65 $this->domain->lng()->txt("wiki_what_links_to_page"),
66 \ilWikiPage::lookupTitle($this->page_id)
67 );
68 }
69
70 return $this->domain->lng()->txt("wiki_" . $this->mode . "_pages");
71 }
static lookupTitle(int $a_page_id, string $lang="-")

References ilWikiPage\lookupTitle().

+ Here is the call graph for this function:

◆ getTranslations()

ILIAS\Wiki\Page\PagesTableBuilder::getTranslations ( int  $page_id)
protected

Definition at line 178 of file PagesTableBuilder.php.

178 : string
179 {
180 $languages = array_filter(
181 $this->page_manager->getLanguages($page_id),
182 fn(string $language): bool => in_array(
183 $language,
184 array_map(
185 fn($language): string => $language->getLanguageCode(),
186 $this->translations->getLanguages()
187 ),
188 true
189 )
190 );
191
192 return implode(", ", $languages);
193 }

Referenced by ILIAS\Wiki\Page\PagesTableBuilder\transformRow().

+ Here is the caller graph for this function:

◆ transformRow()

ILIAS\Wiki\Page\PagesTableBuilder::transformRow ( array  $data_row)
protected

transform raw data array to table row data array

Reimplemented from ILIAS\Repository\Table\CommonTableBuilder.

Definition at line 83 of file PagesTableBuilder.php.

83 : array
84 {
85 $row = [
86 "id" => $data_row["id"],
87 "title" => $this->gui->ui()->factory()->link()->standard(
88 $data_row["title"],
89 $this->page_manager->getPermaLink($data_row["id"], $data_row["lang"] ?? "")
90 )
91 ];
92
93 if ($this->mode === self::MODE_NEW_PAGES) {
94 $row["created"] = new \DateTimeImmutable($data_row["created"]);
95 if ($this->translations->getContentTranslationActivated()) {
96 $row["lang"] = $this->getLanguageLabel($data_row["lang"]);
97 }
98 } elseif ($this->mode === self::MODE_POPULAR_PAGES) {
99 $row["cnt"] = $data_row["cnt"];
100 if ($this->translations->getContentTranslationActivated()) {
101 $row["lang"] = $this->getLanguageLabel($data_row["lang"]);
102 }
103 } elseif ($this->mode === self::MODE_ORPHANED_PAGES) {
104 $row["date"] = new \DateTimeImmutable($data_row["date"]);
105 if ($this->translations->getContentTranslationActivated()) {
106 $row["lang"] = $this->getLanguageLabel($data_row["lang"]);
107 }
108 } elseif ($this->mode !== self::MODE_WHAT_LINKS_HERE) {
109 $row["date"] = new \DateTimeImmutable($data_row["date"]);
110 if ($this->translations->getContentTranslationActivated()) {
111 $row["languages"] = $this->getTranslations($data_row["id"]);
112 }
113 } else {
114 $row["date"] = new \DateTimeImmutable($data_row["date"]);
115 }
116
117 if (isset($data_row["user"])) {
118 $row["user_sort"] = \ilUserUtil::getNamePresentation(
119 $data_row["user"],
120 true,
121 true,
122 $this->gui->ctrl()->getLinkTarget($this->parent_gui, $this->parent_cmd)
123 );
124 }
125
126 return $row;
127 }
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link='', bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path=null)
Default behaviour is:

References ILIAS\Wiki\Page\PagesTableBuilder\getLanguageLabel(), ilUserUtil\getNamePresentation(), and ILIAS\Wiki\Page\PagesTableBuilder\getTranslations().

+ Here is the call graph for this function:

Field Documentation

◆ $page_manager

PageManager ILIAS\Wiki\Page\PagesTableBuilder::$page_manager
protected

Definition at line 39 of file PagesTableBuilder.php.

◆ $translations

Translations ILIAS\Wiki\Page\PagesTableBuilder::$translations
protected

Definition at line 38 of file PagesTableBuilder.php.

◆ MODE_ALL_PAGES

const ILIAS\Wiki\Page\PagesTableBuilder::MODE_ALL_PAGES = "all"

Definition at line 32 of file PagesTableBuilder.php.

◆ MODE_NEW_PAGES

const ILIAS\Wiki\Page\PagesTableBuilder::MODE_NEW_PAGES = "new"

Definition at line 33 of file PagesTableBuilder.php.

Referenced by ILIAS\Wiki\Page\PagesTableBuilder\build().

◆ MODE_ORPHANED_PAGES

const ILIAS\Wiki\Page\PagesTableBuilder::MODE_ORPHANED_PAGES = "orphaned"

Definition at line 36 of file PagesTableBuilder.php.

Referenced by ILIAS\Wiki\Page\PagesTableBuilder\build().

◆ MODE_POPULAR_PAGES

const ILIAS\Wiki\Page\PagesTableBuilder::MODE_POPULAR_PAGES = "popular"

Definition at line 34 of file PagesTableBuilder.php.

Referenced by ILIAS\Wiki\Page\PagesTableBuilder\build().

◆ MODE_WHAT_LINKS_HERE

const ILIAS\Wiki\Page\PagesTableBuilder::MODE_WHAT_LINKS_HERE = "what_links"

Definition at line 35 of file PagesTableBuilder.php.


The documentation for this class was generated from the following file: