Revision history for IncludeAction
Revision [18711]
Last edited on 2008-01-28 00:12:33 by CyneBeald [Modified links pointing to docs server]No Differences
Revision [12367]
Edited on 2005-12-21 10:49:36 by CyneBeald [Fixed version that doesn't rely on the DB being case insensitive]Additions:
=====Include other pages=====
The following action includes another wikipage and takes care not to be trapped in a circular reference, i.e. included pages can include other pages without running into trouble.
<<actions/include.php<<::c::
%%(php)
<?php
if (!$page) $page = $wikka_vars;
$page = strtolower($page);
if (!$this->config["includes"]) $this->config["includes"][] = strtolower($this->tag);
if (!in_array($page, $this->config["includes"]) && $page != $this->tag) {
if ($this->HasAccess("read", $page)) {
$this->config["includes"][] = $page;
$page = $this->LoadPage($page);
print $this->Format($page["body"]);
}
} else print "<span class='error'>Circular reference detected</span>";
?>
%%
-----
Thanks, Sebastian. Seems this could be useful. Look for it in the next release, 1.1.4.0. And it's live right now. - JsnX
-----
----
===Fix for case sensitive/insensitive locales===
I modified the code so it doesn't break on case sensitive database locales. In cases where there really is a circular reference, this code does two DB queries more than the original to find out the correct case of the included page. Since this shouldn't really happen in the normal case, I don't think that it's an issue.
%%(php)
<?php
if (!$page) $page = $wikka_vars;
if (!$this->config["includes"]) $this->config["includes"][] = $this->tag;
if ($this->HasAccess("read", $page)) {
$page = $this->LoadPage($page);
if (!in_array($page["tag"], $this->config["includes"]) && $page["tag"] != $this->tag) {
$this->config["includes"][] = $page["tag"];
print $this->Format($page["body"]);
} else print "<span class='error'>Circular reference detected</span>";
}
?>
%%
--CyneBeald
The following action includes another wikipage and takes care not to be trapped in a circular reference, i.e. included pages can include other pages without running into trouble.
<<actions/include.php<<::c::
%%(php)
<?php
if (!$page) $page = $wikka_vars;
$page = strtolower($page);
if (!$this->config["includes"]) $this->config["includes"][] = strtolower($this->tag);
if (!in_array($page, $this->config["includes"]) && $page != $this->tag) {
if ($this->HasAccess("read", $page)) {
$this->config["includes"][] = $page;
$page = $this->LoadPage($page);
print $this->Format($page["body"]);
}
} else print "<span class='error'>Circular reference detected</span>";
?>
%%
-----
Thanks, Sebastian. Seems this could be useful. Look for it in the next release, 1.1.4.0. And it's live right now. - JsnX
-----
----
===Fix for case sensitive/insensitive locales===
I modified the code so it doesn't break on case sensitive database locales. In cases where there really is a circular reference, this code does two DB queries more than the original to find out the correct case of the included page. Since this shouldn't really happen in the normal case, I don't think that it's an issue.
%%(php)
<?php
if (!$page) $page = $wikka_vars;
if (!$this->config["includes"]) $this->config["includes"][] = $this->tag;
if ($this->HasAccess("read", $page)) {
$page = $this->LoadPage($page);
if (!in_array($page["tag"], $this->config["includes"]) && $page["tag"] != $this->tag) {
$this->config["includes"][] = $page["tag"];
print $this->Format($page["body"]);
} else print "<span class='error'>Circular reference detected</span>";
}
?>
%%
--CyneBeald
Deletions:
The following action includes another wikipage and takes care not to be trapped in a circular reference, i.e. included pages can include other pages without running into trouble.
<<actions/include.php<<::c::
%%(php)
<?php
if (!$page) $page = $wikka_vars;
$page = strtolower($page);
if (!$this->config["includes"]) $this->config["includes"][] = strtolower($this->tag);
if (!in_array($page, $this->config["includes"]) && $page != $this->tag) {
if ($this->HasAccess("read", $page)) {
$this->config["includes"][] = $page;
$page = $this->LoadPage($page);
print $this->Format($page["body"]);
}
} else print "<span class='error'>Circular reference detected</span>";
?>
%%
-----
Thanks, Sebastian. Seems this could be useful. Look for it in the next release, 1.1.4.0. And it's live right now. - JsnX
-----
Revision [4944]
Edited on 2005-01-22 13:44:46 by ChristianBarthelemy [Added ::c:: after floating box]Additions:
<<actions/include.php<<::c::
Deletions:
Additions:
To use: ""{{include page="PageName"}}"" or ""{{include PageName}}""
Deletions:
Revision [4938]
Edited on 2005-01-22 07:05:34 by JavaWoman [completed use code ;-) (but it will soon be elsewhere)]Additions:
To use: ""{{include page="PaneName"}}"" or ""{{include PageName}}""
Deletions:
Additions:
Thanks, Sebastian. Seems this could be useful. Look for it in the next release, 1.1.4.0. And it's live right now. - JsnX
To use: ""{{include PageName}}""
To use: ""{{include PageName}}""
Deletions:
Additions:
=====Include other pages=====
Deletions:
Additions:
=====Includ other pages=====
The following action includes another wikipage and takes care not to be trapped in a circular reference, i.e. included pages can include other pages without running into trouble.
<<actions/include.php<<
%%(php)
<?php
?>
%%
The following action includes another wikipage and takes care not to be trapped in a circular reference, i.e. included pages can include other pages without running into trouble.
<<actions/include.php<<
%%(php)
<?php
?>
%%
Deletions:
**actions/include.php**
%%(php)<?php
?>%%
Additions:
if (!$page) $page = $wikka_vars;
?>%%
-----
Thanks, Sebastian. Seems this could be useful. Look for it in the next release, 1.1.4.0. And it's live right now. - JsnX
?>%%
-----
Thanks, Sebastian. Seems this could be useful. Look for it in the next release, 1.1.4.0. And it's live right now. - JsnX
Deletions:
?>%%