{ return MW_VERSION; } function get_description() { return "Upload page."; } function initialize() { register_page_handler(new MW_SpecialUploadPageHandler()); $dataspace_def = new MW_DataSpaceDefinition(MW_DS_UPLOADS, true, MW_RESOURCE_CONTENT_TYPE_BINARY); register_dataspace($dataspace_def); return true; } } register_extension(new MW_CoreSpecialUploadExtension()); class MW_SpecialUploadPageHandler extends MW_PageHandler { function get_page($tag, $name, $revision) { if ($tag === null) { if (strpos($name, MW_PAGE_NAME_PREFIX_UPLOAD) === 0) { return new MW_SpecialUploadPage($name, $revision); } elseif (strpos($name, MW_PAGE_NAME_PREFIX_DATA) === 0) { return new MW_SpecialUploadPage($name, $revision); } } elseif ($tag == MW_PAGE_TAG_UPLOAD) { return new MW_SpecialUploadPage(MW_PAGE_NAME_PREFIX_UPLOAD . $name, $revision); } elseif ($tag == MW_PAGE_TAG_DATA) { return new MW_SpecialUploadPage(MW_PAGE_NAME_PREFIX_DATA . $name, $revision); }
function get_version() { return MW_VERSION; } function get_description() { return "Filesystem storage."; } function initialize() { register_storage(new MW_FilesystemStorage()); register_datetime_class("MW_FilesystemDateTime"); return true; } } register_extension(new MW_CoreFilesystemStorageExtension()); class MW_FilesystemDateTime extends MW_DateTime { var $unix_timestamp; function MW_FilesystemDateTime($unix_timestamp) { $this->unix_timestamp = $unix_timestamp; } function as_unix_timestamp() { return $this->unix_timestamp; } /** [static] */ function &from_unix_timestamp($ts) { $datetime = new MW_FilesystemDateTime($ts);
return "Wiki function user_info."; } function initialize() { register_wiki_function('user_info', array($this, 'wiki_fn_user_info')); return true; } /** returns user information */ function wiki_fn_user_info() { $auth =& get_auth(); if ($auth->is_logged) { $cb = config('user_info_file_callback'); if ($cb === null) { trigger_error(_t("Config value user_info_file_callback not set"), E_USER_ERROR); } $f = call_user_func($cb, $auth->user); if (!file_exists($f)) { return null; } $user_info = file_get_contents($f); if ($user_info === false) { return null; } return $user_info; } return null; } } register_extension(new MW_UserInfoExtension());
return "[http://www.mysql.com MySQL]: {$version}"; } function initialize() { register_storage(new MW_MySQLStorage()); register_datetime_class("MW_MySQLDateTime"); set_default_config('db_host', 'localhost'); set_default_config('db_user', 'miniwiki'); set_default_config('db_pass', 'miniwiki'); set_default_config('db_name', 'miniwiki'); set_default_config('db_use_server_collation', true); set_default_config('db_encoding', 'utf8'); return true; } } register_extension(new MW_CoreMySQLStorageExtension()); define("MW_RESOURCE_KEY_AUTHOR_0_2", "user"); class MW_MySQLDateTime extends MW_DateTime { /** MySQL formatted timestamp (all formats supported) in GMT */ var $mysql_timestamp; function MW_MySQLDateTime($mysql_timestamp) { $this->mysql_timestamp = $mysql_timestamp; } function as_unix_timestamp() { # detect whether we have MySQL's "INTERNAL" or "ISO" (or similar) timestamp format - default changed in MySQL 4.1.x if (strlen($this->mysql_timestamp) == 14) { $year = substr($this->mysql_timestamp, 0, 4); $month = substr($this->mysql_timestamp, 4, 2);
return MW_VERSION; } function get_description() { return "Users manager operating on top of storage."; } function initialize() { $dataspace_def = new MW_DataSpaceDefinition(MW_DS_USERS, false, MW_RESOURCE_CONTENT_TYPE_NONE); $dataspace_def->add_custom_key(MW_RESOURCE_KEY_PASSWORD, MW_RESOURCE_CUSTOM_KEY_TYPE_TEXT . "32"); register_dataspace($dataspace_def); register_users_manager(new MW_CoreUsersManager()); return true; } } register_extension(new MW_CoreUsersManagerExtension()); class MW_CoreUsersManager extends MW_UsersManager { function get_all_usernames() { $storage =& get_storage(); return $storage->get_resource_names(MW_DS_USERS); } function create_user($user) { $storage =& get_storage(); $res = new MW_Resource(MW_DS_USERS); $res->set(MW_RESOURCE_KEY_NAME, $user); $storage->create_resource(MW_DS_USERS, $res); } function delete_user($user)
function get_version() { return MW_VERSION; } function get_description() { return "Redirects Special/* to MW/Special/* if no specific page is found."; } function initialize() { register_page_handler(new MW_SpecialPageRedirectorPageHandler()); register_page_handler(new MW_SpecialPageTagPageHandler()); return true; } } register_extension(new MW_CoreSpecialPageRedirectorExtension()); class MW_SpecialPageRedirectorPageHandler extends MW_PageHandler { function get_priority() { return 50; } function get_page($tag, $name, $revision) { $wrap = false; if ($tag === null && strpos($name, MW_PAGE_NAME_PREFIX_SPECIAL) === 0) { $wrap_name = $name; $name = MW_PAGE_NAME_PREFIX_MINIWIKI . $name; $wrap = true; } $page = $this->next->get_page($tag, $name, $revision);
return $name; } function wiki_fn_page_attr($args, $renderer_state) { $page_name = array_shift($args); $attr_name = array_shift($args); $page = new_page($page_name, MW_REVISION_HEAD); $page->load(); return $page->get_attr($attr_name); } function wiki_fn_list_extensions($args, $renderer_state) { $ret = array(); $exts = get_extensions(); foreach ($exts as $ext) { $ret[] = "====" . $ext->get_name() . ' ' . $ext->get_version() . "====\n\n" . $ext->get_description() . "\n\n"; } sort($ret); return $ret; } function wiki_fn_mw_version($args, $renderer_state) { return MW_VERSION; } function wiki_fn_php_version($args, $renderer_state) { return phpversion(); } } register_extension(new MW_CoreFunctionsExtension());
return "Core Layout"; } function get_version() { return MW_VERSION; } function get_description() { return "Customizable layout."; } function initialize() { register_page_handler(new MW_LayoutPageHandler()); return true; } } register_extension(new MW_CoreLayoutExtension()); class MW_LayoutPageHandler extends MW_PageHandler { function get_page($tag, $name, $revision) { if ($tag == MW_PAGE_TAG_LAYOUT) { $name = MW_PAGE_NAME_PREFIX_LAYOUT . $name; $tag = null; } elseif ($tag == MW_PAGE_TAG_LAYOUT_DATA) { $name = MW_PAGE_NAME_PREFIX_DATA . MW_PAGE_NAME_PREFIX_LAYOUT . $name; $tag = null; } return $this->next->get_page($tag, $name, $revision); } }
} function get_version() { return MW_VERSION; } function get_description() { return "Default Wiki renderer implementation."; } function initialize() { register_renderer(new MW_CoreRenderer()); return true; } } register_extension(new MW_CoreRendererExtension()); /** internal Wiki renderer state */ class MW_CoreRendererState extends MW_RendererState { # [read-only] attributes var $headings; /** headings counter (current number) */ var $headings_counter; /** @protected * constructor (do not call) * @param renderer MW_Renderer * @param page MW_Page or null * @param raw raw text to render * @param super_wiki_variables super MW_Variables to use * @param curpage MW_Page or null for the same value as page */
function get_version() { return MW_VERSION; } function get_description() { return "XML import/export."; } function initialize() { register_importer(new MW_XMLImporter()); register_exporter(new MW_XMLExporter()); return true; } } register_extension(new MW_CoreXMLImportExportExtension()); define('MW_XML_FORMAT', 'XML'); define('MW_XML_TYPE_TEXT', 'text'); define('MW_XML_TYPE_BINARY', 'binary'); define('MW_XML_TYPE_DATETIME', 'datetime'); define('MW_XML_EXTENSION', 'xml'); /* XML format (if miniWiki's encoding is not UTF-8 and iconv() is not available, internal encoding is used): <?xml version="1.0" encoding="utf-8"?> <resources> <resource dataspace="DATASPACE_NAME" name="RESOURCE_NAME"> <key name="RESOURCE_KEY_NAME" type="RESOURCE_KEY_TYPE">RESOURCE_KEY_VALUE</key> ... </resource> ...
} function get_version() { return MW_VERSION; } function get_description() { return "User page."; } function initialize() { register_page_handler(new MW_SpecialUserPageHandler()); return true; } } register_extension(new MW_CoreSpecialUserExtension()); class MW_SpecialUserPageHandler extends MW_PageHandler { function get_page($tag, $name, $revision) { $overlay = false; if ($tag === null && strpos($name, MW_PAGE_NAME_PREFIX_USER) === 0) { $overlay = true; } if ($tag == MW_PAGE_TAG_USER) { $overlay = true; $name = MW_PAGE_NAME_PREFIX_USER . $name; $tag = null; } $page = $this->next->get_page($tag, $name, $revision); if ($overlay && $page !== null) {
} elseif (isset($resp['header']['server'])) { $server = $resp['header']['server']; } } return "WebDAV: {$server}"; } function initialize() { register_storage(new MW_WebDAVStorage()); register_datetime_class("MW_WebDAVDateTime"); register_users_manager(new MW_WebDAVUsersManager()); return true; } } require_once "class_webdav_client.php"; register_extension(new MW_WebDAVStorageExtension()); class MW_WebDAVDateTime extends MW_DateTime { var $rfc1123_time; function MW_WebDAVDateTime($rfc1123_time) { $this->rfc1123_time = $rfc1123_time; } function as_unix_timestamp() { return strtotime($this->rfc1123_time); } /** [static] */ function &from_unix_timestamp($ts) { $datetime = new MW_WebDAVDateTime(gmdate('D, d M Y H:i:s O', $ts));
{ return MW_VERSION; } function get_description() { return "Wiki page."; } function initialize() { register_page_handler(new MW_CorePagePageHandler()); $dataspace_def = new MW_DataSpaceDefinition(MW_DS_PAGES, true, MW_RESOURCE_CONTENT_TYPE_TEXT); register_dataspace($dataspace_def); return true; } } register_extension(new MW_CorePageExtension()); class MW_CorePagePageHandler extends MW_PageHandler { function get_priority() { return 100; } function get_page($tag, $name, $revision) { if ($tag === null) { return new MW_DBPage($name, $revision); } return $this->next->get_page($tag, $name, $revision); } } define("MW_PAGE_ATTR_REDIRECT", "redirect");
} function get_version() { return MW_VERSION; } function get_description() { return "Obsolete functionality."; } function initialize() { register_page_handler(new MW_ObsoletePageHandler()); return true; } } register_extension(new MW_CoreObsoleteExtension()); class MW_ObsoletePageHandler extends MW_PageHandler { function get_priority() { return -100; } function get_page($tag, $name, $revision) { if ($tag === null && strpos($name, MW_PAGE_NAME_PREFIX_DATA_0_2) === 0) { $name = str_replace(MW_PAGE_NAME_PREFIX_DATA_0_2, MW_PAGE_NAME_PREFIX_DATA, $name); } if ($tag === null && strpos($name, MW_PAGE_NAME_PREFIX_USER_0_2) === 0) { $name = str_replace(MW_PAGE_NAME_PREFIX_USER_0_2, MW_PAGE_NAME_PREFIX_USER, $name); } if ($tag === null && strpos($name, MW_PAGE_NAME_UPLOADS_0_2) === 0) {