function ewiki_mpi_backlinks($action, &$args, &$iii, &$s) { $id = $args["page"] or $id = $GLOBALS["ewiki_id"]; if ($pages = ewiki_get_backlinks($id)) { return ewiki_list_pages($pages); } }
function ewiki_view_append_backlinks($id, $data, $action) { $pages = ewiki_get_backlinks($id); $o = ""; foreach ($pages as $id) { $o .= ' <a href="' . ewiki_script("", $id) . '">' . $id . '</a>'; } $o && ($o = "<div class=\"wiki_backlinks\"><small>" . get_string('backlinks', 'wiki') . ":</small><br />{$o}</div>\n"); return $o; }
function mpi2_backtree_revbl($id, $li, $depth) { $src = ""; $li .= "*"; if ($depth--) { if ($refs = ewiki_get_backlinks($id)) { foreach ($refs as $id) { $src .= "{$li} [{$id}]\n"; $src .= mpi2_backtree_revbl($id, $li, $depth); } } } return $src; }
function ewiki_mpi_bugreportstate($action, $args, &$iii, &$s) { global $ewiki_id; #-- possible states $values = array("open", "closed", "done", "frozen", "answered"); foreach ($args as $i => $name) { if (is_int($i)) { if (preg_match("/^\\w+\$/", $name) && !in_array($name, $values)) { $values[] = $name; } } } $rxvals = implode("|", $values); #-- if button pressed if (($new = $_REQUEST["brs_change"]) && in_array($new, $values)) { $pages = ewiki_get_backlinks($ewiki_id); $pages[] = $ewiki_id; #-- change assoc pages foreach ($pages as $id) { $data = ewiki_db::GET($id); if (preg_match("/\n\\|.*stat(e|us).*\\|.*({$rxvals})/", $data["content"]) or preg_match("/\n\\|.*({$rxvals}).*\\|.*{$ewiki_id}/", $data["content"])) { $data["content"] = preg_replace("/(\n\\|.*stat(?:e|us).*\\|.*?)[_*]*(?:{$rxvals})[_*]*/", "\$1{$new}", $data["content"]); $data["content"] = preg_replace("/(\n\\|.*?)[_*]*(?:{$rxvals})[_*]*(.*?\\|.*{$ewiki_id})/", "\$1{$new}\$2", $data["content"]); ewiki_db::UPDATE($data); $data["version"]++; ewiki_db::WRITE($data); } } $o = "<p>(status changed)</p>"; $iii[0][0] = preg_replace("/({$rxvals})/", "{$new}", $iii[0][0]); } else { $url = ewiki_script("", $ewiki_id); $o .= <<<EOT <form action="{$url}#added" method="POST" enctype="multipart/form-data"> <input type="submit" name="brs_change" value="open"> <input type="submit" name="brs_change" value="closed"> <input type="submit" name="brs_change" value="frozen"> </form> EOT; } return $o; }
function ewiki_tour($id, &$data, $action) { $o = "\n"; $page_lists = array(array($id), explode("\n", trim($data["refs"])), ewiki_get_backlinks($id)); foreach ($page_lists as $pages) { foreach ($pages as $page) { $row = ewiki_db::GET($page); if (EWIKI_DB_F_TEXT == $row["flags"] & EWIKI_DB_F_TYPE) { $add = substr($row["content"], 0, 333); $add = substr($add, 0, strrpos($add, " ")); $add = preg_replace("/^[!*#-:;>]+/m", "", $add); $add = strtr($add, "\n\t", " "); $o .= "!!! [tour:{$row[id]}]\n" . "@@tour-page-fragment {$add} ...\n\n"; } } } $o = ewiki_format($o); $o .= ewiki_control_links($id, $data, $action); return $o; }
function ewiki_page_links($id, &$data, $action) { $o = ewiki_make_title($id, ewiki_t("PAGESLINKINGTO", array("title" => $id)), 1, $action, "", "_MAY_SPLIT=1"); if ($pages = ewiki_get_backlinks($id)) { $o .= ewiki_list_pages($pages); } else { $o .= ewiki_t("This page isn't linked from anywhere else."); } return $o; }