19declare(strict_types=1);
44 protected int $ref_id,
45 protected string $mode,
46 protected int $page_id,
47 protected string $lang,
51 $this->page_manager = $this->domain->page()->page($ref_id);
52 $this->translations = $this->domain->wiki()->translation($ref_id);
56 protected function getId(): string
58 return "wiki_pages_" . $this->mode;
63 if ($this->mode === self::MODE_WHAT_LINKS_HERE) {
65 $this->domain->lng()->txt(
"wiki_what_links_to_page"),
70 return $this->domain->lng()->txt(
"wiki_" . $this->mode .
"_pages");
75 return $this->domain->page()->pagesRetrieval(
86 "id" => $data_row[
"id"],
87 "title" => $this->gui->ui()->factory()->link()->standard(
89 $this->page_manager->getPermaLink($data_row[
"id"], $data_row[
"lang"] ??
"")
93 if ($this->mode === self::MODE_NEW_PAGES) {
94 $row[
"created"] = new \DateTimeImmutable($data_row[
"created"]);
95 if ($this->translations->getContentTranslationActivated()) {
98 } elseif ($this->mode === self::MODE_POPULAR_PAGES) {
99 $row[
"cnt"] = $data_row[
"cnt"];
100 if ($this->translations->getContentTranslationActivated()) {
103 } elseif ($this->mode === self::MODE_ORPHANED_PAGES) {
104 $row[
"date"] = new \DateTimeImmutable($data_row[
"date"]);
105 if ($this->translations->getContentTranslationActivated()) {
108 } elseif ($this->mode !== self::MODE_WHAT_LINKS_HERE) {
109 $row[
"date"] = new \DateTimeImmutable($data_row[
"date"]);
110 if ($this->translations->getContentTranslationActivated()) {
114 $row[
"date"] = new \DateTimeImmutable($data_row[
"date"]);
117 if (isset($data_row[
"user"])) {
122 $this->gui->ctrl()->getLinkTarget($this->parent_gui, $this->parent_cmd)
131 $lng = $this->domain->lng();
132 $translation_active = $this->translations->getContentTranslationActivated();
134 switch ($this->mode) {
138 ->linkColumn(
"title",
$lng->txt(
"wiki_page"),
true);
139 if ($translation_active) {
147 if ($translation_active) {
154 if ($translation_active) {
162 ->dateColumn(
"date",
$lng->txt(
"wiki_last_changed"),
true);
163 if ($translation_active && $this->mode !== self::MODE_WHAT_LINKS_HERE) {
172 $language = $language ===
"-"
173 ? $this->translations->getBaseLanguage()
175 return $this->domain->lng()->txt(
"meta_l_" . $language);
180 $languages = array_filter(
181 $this->page_manager->getLanguages($page_id),
182 fn(
string $language):
bool => in_array(
185 fn($language):
string => $language->getLanguageCode(),
186 $this->translations->getLanguages()
192 return implode(
", ", $languages);
Class handles translation mode for an object.
textColumn(string $key, string $title, bool $sortable=false)
dateColumn(string $key, string $title, bool $sortable=false)
linkColumn(string $key, string $title, bool $sortable=false)
transformRow(array $data_row)
transform raw data array to table row data array
build(TableAdapterGUI $table)
PageManager $page_manager
getTranslations(int $page_id)
__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)
getLanguageLabel(string $language)
Translations $translations
const MODE_WHAT_LINKS_HERE
const MODE_ORPHANED_PAGES
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:
static lookupTitle(int $a_page_id, string $lang="-")
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc