%audience% admins (advanced) <<|[[PmWiki.Variables]]|>> This page describes some of the internal workings of PmWiki by explaining how some of the functions in pmwiki.php work. For a more brief list/overview on functions useful to for instance cookbook writers, see Cookbook:Functions. !![[#FmtPageName]] [@FmtPageName@]($fmt, $pagename) [[#FmtPageName-desc]]Returns [@$fmt@], with $variable and [=$[internationalisation]=] substitutions performed, under the assumption that the current page is [@pagename@]. See [[PmWiki.Variables]] for an (incomplete) list of available variables, [[PmWiki.Internationalizations]] for internationalisation. This is one of the major functions in PmWiki, see [[PmWiki.FmtPageName]] for lots of details. !![[#Markup]] [@Markup@]($name, $when, $pattern, $replace) [[#Markup-desc]]Adds a new markup to the conversion table. Described in greater detail at PmWiki.CustomMarkup. This function is used to insert translation rules into the PmWiki's translation engine. The arguments to [@Markup()@] are all strings, where: :[@$name@]: The string names the rule that is inserted. If a rule of the same name already exists, then this rule is ignored. :[@$when@]: This string is used to control ''when'' a rule is to be applied relative to other rules. A specification of "[@xyz@]" says to apply this rule after the rule "xyz". See [[(PmWiki:)CustomMarkup]] for more details on the order of rules. :[@$pattern@]: This string is a [[regular expression -> http://www.php.net/preg_replace]] that is used by the translation engine to look for occurences of this rule in the markup source. :[@$replace@]: This string will replace the matched text when a match occurs. Also see: [[PmWiki.CustomMarkup]] and [[Cookbook:Functions#Markup]] !![[#MarkupToHTML]] [@MarkupToHTML@]($pagename, $str) [[#MarkupToHTML-desc]] Converts the string [@$str@] containing PmWiki markup into the corresponding HTML code, assuming the current page is [@$pagename@]. Also see: [[Cookbook:Functions#MarkupToHTML]] !![[#mkdirp]] [@mkdirp@]($dir) The function [@mkdirp@]($dir) creates a directory, [@$dir@], if it doesn't already exist, including any parent directories that might be needed. For each directory created, it checks that the permissions on the directory are sufficient to allow PmWiki scripts to read and write files in that directory. This includes checking for restrictions imposed by PHP's safe_mode setting. If [@mkdirp@]() is unable to successfully create a read/write directory, [@mkdirp@]() aborts with an error message telling the administrator the steps to take to either create $dir manually or give PmWiki sufficient permissions to be able to do it. !![[#MakeLink]] [@MakeLink@]($pagename, $target, $txt, $suffix, $fmt) The function [@MakeLink@]($pagename, $target, $txt, $suffix, $fmt) returns a ???. It's arguments are as follows: $pagename is the source page $target is where the link should go $txt is the value to use for '$LinkText' in the output $suffix is any suffix string to be added to $txt $fmt is a format string to use If $txt is NULL or not specified, then it is automatically computed from $target. If $fmt is NULL or not specified, then MakeLink uses the default format as specified by the type of link. For page links this means the $LinkPageExistsFmt and $LinkPageCreateFmt variables, for intermap-style links it comes from either the $IMapLinkFmt array or from $UrlLinkFmt. Inside of the formatting strings, $LinkUrl is replaced by the resolved url for the link, $LinkText is replaced with the appropriate text, and $LinkAlt is replaced by any "title" (alternate text) information associated with the link. Also see: [[PmWiki:MakeLink]] and [[Cookbook:Functions#MakeLink]] !![[#MakeUploadName]] [@MakeUploadName@]($pagename, $x) @@MakeUploadName()@@ simply takes a string @@$x@@ (representing an attachment's name) and converts it to a valid name by removing any unwanted characters. It also requires the name to begin and end with an alphanumeric character, and as of 2.0.beta28 it forces any file extensions to lowercase. This function is defined in @@scripts/upload.php@@ and only used when uploads are enabled. %trail%<<|[[Documentation Index]]|>>