This is a comment on Internal Links using PageID, posted by WikiAdmin at 10/20/2022 08:19
View source for Re: Internal Links using PageID
Improved action with template:
action/plink.php
%%(php)
<?php
if (!defined('IN_WACKO'))
{
exit;
}
// TODO:
// (internal) link: title, tag
// (external) hashid: page link, version link
// {{plink page_ids="1,2,3"}}
if (!isset($page_ids)) return;
if (!isset($inline)) $inline = 0;
$_page_ids = explode(',', $page_ids);
if ($pages = $this->db->load_all(
"SELECT tag, title " .
"FROM " . $this->prefix . "page " .
"WHERE page_id IN (" . $this->ids_string($_page_ids) . ") " .
"ORDER BY title", true)
)
{
$tpl->enter($inline ? 'i_' : 'u_');
$i = 0;
foreach ($pages as $_page)
{
$tpl->l_link = $this->link('/' . $_page['tag'], '', $_page['title']);
if ($inline && $i++ > 0)
{
$tpl->l_delim = ', ';
}
}
$tpl->leave(); // u_ / i_
}
%%
action/template/plink.tpl
%%
[ === main === ]
[ ' message ' ]
[= u _ =
[ ' // move to CSS file and asign class ' ]
<style scoped>
ul + br {display: none;}
ul, ol {margin-top: 10px; margin-bottom: 10px;}
</style>
<ul>
[= l _ =
<li>[ ' link ' ]</li>
=]
</ul>
=]
[= i _ =
[= l _ =
[ ' delim ' ][ ' link ' ]
=]
=]
%%
To the topic itself more later, I just improved your action. I renamed the action to plink to distinguage it from similar actions/functions.