Comparing revisions for WikkaCore
- [3405] 2004-12-18 10:25:39 by DarTar (unregistered user) [preg_replace("Wakka","Wikka",$WikkaCore) :)]
- [18088] 2008-01-27 02:34:53 by BrianKoontz (unregistered user) [Migrated to doc server]
Additions:
[[WikkaDocumentation Wikka Documentation]]
----
===The API of Wikka for writing Actions===
{{lastedit}}
**[[UsingActions Actions]]** in WikkaWiki constitute a very flexible way to extend the functionality of your Wiki. They are also known as **plugins**. Instead of re-inventing the wheel when scripting those Actions/Plugins you are encouraged to use the functions that the Wikka core is using for accomodating its needs. By this not only you will save time but also help keeping a solid and coherent software package.
Below I try to descibe the functions of the Wikka core that Action writers may find useful. I would be pleased to see people filling the gaps in this page. Please help :). The description in most cases should mention received arguments, what the function does and what it returns. __This is an unofficial documentation.__
----**//Based on the WikkaWiki version 1.1.5.3 package//**----
Here we go then! ...
===Functions relating to the Database===
Query($query)
----
Generic function that receives an SQL Query as an argument and executes it on the database.
It returns the result.
""LoadSingle""($query)
----
Receives an SQL Query as an argument and executes it on the database.
It returns the first row of the result array.
""LoadAll""($query)
----
Receives an SQL Query as an argument and executes it on the database.
It returns the result of the SQL operation in the form of an array.
""CheckMySQLVersion""($major, $minor, $subminor)
----
As the function's name betrays it checks the string "$major.$minor.$subminor" against the MySQL version hosted on the particular machine PHP is running on. It returns :
**1** //if the version is newer or equal to the provided arguments.//
**0** //if the version is older than the provided arguments.//
===Miscellaneous Utility Functions===
""GetMicroTime""()
----
A utility function that is usefull to retrieve operation timing. It returns a number (float).
""IncludeBuffered""($filename, $notfoundText = "", $vars = "", $path = "")
----
The main Actions loading function. It may come in handy in bigger modding projects on Wakka but for basic to novice Actions I can hardly thing of how it can be used. It executes the contents of a given filename ($filename) in a given path ($path) allowing for customising the error message in case of an error. Variables ($vars) are passed to the loaded file.
""ReturnSafeHTML""($html)
----
Receives any string (preferably HTML, hehe) and returns it filtered and comformed to the XHTML standards.
===Functions relating to Wakka Variables===
""GetPageTag""()
----
Returns the tag (""WikiPageName"") of the current page, a string.
""GetPageTime""()
----
Returns the creation date and time of the current page as a string in the form of : "2004-12-16 20:36:17".
""GetMethod""()
----
Returns the method (for example: WikiPage/edit) with which this page was called, as a string.
""GetConfigValue""($name)
----
Returns the value from a configuration field ($name). Configuration is defined inside the wakka.conf.php file inside the wakka installation folder. It reruns a string when $name mathces any field of the configuration file or //null// if the configuration file doesnt have a $name field.
""GetWakkaName""()
----
Is the same as doing : //$this->""GetConfigValue""("wakka_name")// (see above function).
""GetWakkaVersion""()
----
Returns the Wakka version (not from a configuration field.
===Functions relating to ""WikiPages""===
""LoadPage""($tag, $time = "", $cache = 1)
----
""IsLatestPage""()
----
""GetCachedPage""($tag)
----
""CachePage""($page)
----
""SetPage""($page)
----
""LoadPageById""($id)
----
""LoadRevisions""($page)
----
""LoadPagesLinkingTo""($tag)
----
""LoadRecentlyChanged""()
----
""LoadWantedPages""()
----
""IsWantedPage""($tag)
----
""LoadOrphanedPages""()
----
""LoadPageTitles""()
----
""LoadAllPages""()
----
""FullTextSearch""($phrase)
----
""FullCategoryTextSearch""($phrase)
----
""SavePage""($tag, $body, $note)
----
""PageTitle""()
----
===COOKIES===
""SetSessionCookie""($name, $value)
----
""SetPersistentCookie""($name, $value)
----
""DeleteCookie""($name)
----
""GetCookie""($name)
----
===HTTP/REQUEST/LINK RELATED===
""SetMessage""($message)
----
""GetMessage""()
----
Redirect($url)
----
""MiniHref""($method = "", $tag = "")
----
Href($method = "", $tag = "", $params = "")
----
Link($tag, $method = "", $text = "", $track = 1, $escapeText = 1, $title="")
----
""IsWikiName""($text)
----
""TrackLinkTo""($tag)
----
""GetLinkTable""()
----
""ClearLinkTable""()
----
""StartLinkTracking""()
----
""StopLinkTracking""()
----
""WriteLinkTable""()
----
Header()
----
Footer()
----
===FORMS===
""FormOpen""($method = "", $tag = "", $formMethod = "post")
----
""FormClose""()
----
===INTERWIKI STUFF===
""ReadInterWikiConfig""()
----
""AddInterWiki""($name, $url)
----
""GetInterWikiUrl""($name, $tag)
----
===REFERRERS===
""LogReferrer""($tag = "", $referrer = "")
----
""LoadReferrers""($tag = "")
----
===PLUGINS===
Action($action, $forceLinkTracking = 0)
----
Responsible for executing the Actions /Plugins that are found in the /wikka/actions/ directory. It receives a string ($action) that specifies which file to execute. It also is responsible for passing the $vars array to the executed php script. The file has to have a //.php// extension in order to be executed by this function.
Method($method)
----
Returns the method that the current page was called by. Known methods are /edit /create /delete ...
Format($text, $formatter = "wakka")
----
Returns the parsed string ($text) after it has been parsed from the specified formatter ($formatter). If no $formatter is supplied then it assumes the default "wakka" formatter that is responsible for converting the wiki syntax to displayable HTML. The availble formatters are found under the /wikka/formatters/ directory.
===Functions relating to **Users**===
""LoadUser""($name, $password = 0)
----
""LoadUsers""()
----
Returns an, alphabetically sorted by name, array of the users table. This array contains numerical indexes that hold a associative array of all the fields the wakka_users table has, in the form of ["field_name"] = > "field_value" .
""GetUserName""()
----
Returns the result of ""GetUser""() (see below) or the hostname of the visitor's host.
""GetUser""()
----
Retreives the ""UserName"" of the visitor from the global php $_SESSION['user'] field. It is highly reccomended to use the ""GetUserName""() function instead of this one unless you have a special reason.
""SetUser""($user)
----
Used in the Run() function of the ""WakkaCore"". It fetches and sets the ""UserName"" (if found) from a cookie.
""LogoutUser""()
----
Removes any cookie send to the user using the ""DeleteCookie""() function, effectively forgetting the login of the particular user.
""UserWantsComments""()
----
Returns true if the user is logged in and has set his preferences to show any page's comments by default. It returns false in any other case.
===Functions related to Comments===
""LoadComments""($tag)
----
Returns an array of the comments on the received tag (""WikiPage""), sorted by time each comment record was made.
""LoadRecentComments""($limit = 50)
----
Returns an array of the most recent ( depenting on the limit ($limit) ) number of comments to the current ""WikiPage"". The default value for the array size is 50.
""LoadRecentlyCommented""($limit = 50)
----
Returns an array of the most recently commented ""WikiPages"" in an array. The size of the array maybe be specified ($limit). The default value for $limit is 50.
""SaveComment""($page_tag, $comment)
----
Saves a comment($comment) on a ""WikiPage""($page_tag) to the database.
===Functions related to controling Access===
""UserIsOwner""($tag = "")
----
Returns true if logged in user is owner of the provided page ($tag). If no $tag is provided then it acts on the current page.
""IsAdmin""()
----
Returns //true// if user is listed in configuration list as admin, //false// if any other case.
""GetPageOwner""($tag = "", $time = "")
----
Returns the ""UserName"" of the page's ($tag) owner. If no $tag is provided when calling the function then it acts on the current page.
""SetPageOwner""($tag, $user)
----
Sets the page's ($tag) owneship to the specified ""UserName"" ($user). Both arguments need to be provided.
""LoadACL""($tag, $privilege, $useDefaults = 1)
----
Returns an array. The form of the array is as follows :
%%(php)array = {
["page_tag"] => $tag,
[$privilege."_acl"] => the_default_configuration_acl_for_this_privilege
}%%
""LoadAllACLs""($tag, $useDefaults = 1)
----
""SaveACL""($tag, $privilege, $list)
----
""TrimACLs""($list)
----
""HasAccess""($privilege, $tag = "", $user = "")
----
This returns true or 1 if the user ($user) can complete the requested action ($priviledge) on the page ($tag). If no $tag is provided then it acts the displayed ""WikiPage"". If no $user is provided then it acts on the current ""UserName"".
----
CategoryDocumentation
----
===The API of Wikka for writing Actions===
{{lastedit}}
**[[UsingActions Actions]]** in WikkaWiki constitute a very flexible way to extend the functionality of your Wiki. They are also known as **plugins**. Instead of re-inventing the wheel when scripting those Actions/Plugins you are encouraged to use the functions that the Wikka core is using for accomodating its needs. By this not only you will save time but also help keeping a solid and coherent software package.
Below I try to descibe the functions of the Wikka core that Action writers may find useful. I would be pleased to see people filling the gaps in this page. Please help :). The description in most cases should mention received arguments, what the function does and what it returns. __This is an unofficial documentation.__
----**//Based on the WikkaWiki version 1.1.5.3 package//**----
Here we go then! ...
===Functions relating to the Database===
Query($query)
----
Generic function that receives an SQL Query as an argument and executes it on the database.
It returns the result.
""LoadSingle""($query)
----
Receives an SQL Query as an argument and executes it on the database.
It returns the first row of the result array.
""LoadAll""($query)
----
Receives an SQL Query as an argument and executes it on the database.
It returns the result of the SQL operation in the form of an array.
""CheckMySQLVersion""($major, $minor, $subminor)
----
As the function's name betrays it checks the string "$major.$minor.$subminor" against the MySQL version hosted on the particular machine PHP is running on. It returns :
**1** //if the version is newer or equal to the provided arguments.//
**0** //if the version is older than the provided arguments.//
===Miscellaneous Utility Functions===
""GetMicroTime""()
----
A utility function that is usefull to retrieve operation timing. It returns a number (float).
""IncludeBuffered""($filename, $notfoundText = "", $vars = "", $path = "")
----
The main Actions loading function. It may come in handy in bigger modding projects on Wakka but for basic to novice Actions I can hardly thing of how it can be used. It executes the contents of a given filename ($filename) in a given path ($path) allowing for customising the error message in case of an error. Variables ($vars) are passed to the loaded file.
""ReturnSafeHTML""($html)
----
Receives any string (preferably HTML, hehe) and returns it filtered and comformed to the XHTML standards.
===Functions relating to Wakka Variables===
""GetPageTag""()
----
Returns the tag (""WikiPageName"") of the current page, a string.
""GetPageTime""()
----
Returns the creation date and time of the current page as a string in the form of : "2004-12-16 20:36:17".
""GetMethod""()
----
Returns the method (for example: WikiPage/edit) with which this page was called, as a string.
""GetConfigValue""($name)
----
Returns the value from a configuration field ($name). Configuration is defined inside the wakka.conf.php file inside the wakka installation folder. It reruns a string when $name mathces any field of the configuration file or //null// if the configuration file doesnt have a $name field.
""GetWakkaName""()
----
Is the same as doing : //$this->""GetConfigValue""("wakka_name")// (see above function).
""GetWakkaVersion""()
----
Returns the Wakka version (not from a configuration field.
===Functions relating to ""WikiPages""===
""LoadPage""($tag, $time = "", $cache = 1)
----
""IsLatestPage""()
----
""GetCachedPage""($tag)
----
""CachePage""($page)
----
""SetPage""($page)
----
""LoadPageById""($id)
----
""LoadRevisions""($page)
----
""LoadPagesLinkingTo""($tag)
----
""LoadRecentlyChanged""()
----
""LoadWantedPages""()
----
""IsWantedPage""($tag)
----
""LoadOrphanedPages""()
----
""LoadPageTitles""()
----
""LoadAllPages""()
----
""FullTextSearch""($phrase)
----
""FullCategoryTextSearch""($phrase)
----
""SavePage""($tag, $body, $note)
----
""PageTitle""()
----
===COOKIES===
""SetSessionCookie""($name, $value)
----
""SetPersistentCookie""($name, $value)
----
""DeleteCookie""($name)
----
""GetCookie""($name)
----
===HTTP/REQUEST/LINK RELATED===
""SetMessage""($message)
----
""GetMessage""()
----
Redirect($url)
----
""MiniHref""($method = "", $tag = "")
----
Href($method = "", $tag = "", $params = "")
----
Link($tag, $method = "", $text = "", $track = 1, $escapeText = 1, $title="")
----
""IsWikiName""($text)
----
""TrackLinkTo""($tag)
----
""GetLinkTable""()
----
""ClearLinkTable""()
----
""StartLinkTracking""()
----
""StopLinkTracking""()
----
""WriteLinkTable""()
----
Header()
----
Footer()
----
===FORMS===
""FormOpen""($method = "", $tag = "", $formMethod = "post")
----
""FormClose""()
----
===INTERWIKI STUFF===
""ReadInterWikiConfig""()
----
""AddInterWiki""($name, $url)
----
""GetInterWikiUrl""($name, $tag)
----
===REFERRERS===
""LogReferrer""($tag = "", $referrer = "")
----
""LoadReferrers""($tag = "")
----
===PLUGINS===
Action($action, $forceLinkTracking = 0)
----
Responsible for executing the Actions /Plugins that are found in the /wikka/actions/ directory. It receives a string ($action) that specifies which file to execute. It also is responsible for passing the $vars array to the executed php script. The file has to have a //.php// extension in order to be executed by this function.
Method($method)
----
Returns the method that the current page was called by. Known methods are /edit /create /delete ...
Format($text, $formatter = "wakka")
----
Returns the parsed string ($text) after it has been parsed from the specified formatter ($formatter). If no $formatter is supplied then it assumes the default "wakka" formatter that is responsible for converting the wiki syntax to displayable HTML. The availble formatters are found under the /wikka/formatters/ directory.
===Functions relating to **Users**===
""LoadUser""($name, $password = 0)
----
""LoadUsers""()
----
Returns an, alphabetically sorted by name, array of the users table. This array contains numerical indexes that hold a associative array of all the fields the wakka_users table has, in the form of ["field_name"] = > "field_value" .
""GetUserName""()
----
Returns the result of ""GetUser""() (see below) or the hostname of the visitor's host.
""GetUser""()
----
Retreives the ""UserName"" of the visitor from the global php $_SESSION['user'] field. It is highly reccomended to use the ""GetUserName""() function instead of this one unless you have a special reason.
""SetUser""($user)
----
Used in the Run() function of the ""WakkaCore"". It fetches and sets the ""UserName"" (if found) from a cookie.
""LogoutUser""()
----
Removes any cookie send to the user using the ""DeleteCookie""() function, effectively forgetting the login of the particular user.
""UserWantsComments""()
----
Returns true if the user is logged in and has set his preferences to show any page's comments by default. It returns false in any other case.
===Functions related to Comments===
""LoadComments""($tag)
----
Returns an array of the comments on the received tag (""WikiPage""), sorted by time each comment record was made.
""LoadRecentComments""($limit = 50)
----
Returns an array of the most recent ( depenting on the limit ($limit) ) number of comments to the current ""WikiPage"". The default value for the array size is 50.
""LoadRecentlyCommented""($limit = 50)
----
Returns an array of the most recently commented ""WikiPages"" in an array. The size of the array maybe be specified ($limit). The default value for $limit is 50.
""SaveComment""($page_tag, $comment)
----
Saves a comment($comment) on a ""WikiPage""($page_tag) to the database.
===Functions related to controling Access===
""UserIsOwner""($tag = "")
----
Returns true if logged in user is owner of the provided page ($tag). If no $tag is provided then it acts on the current page.
""IsAdmin""()
----
Returns //true// if user is listed in configuration list as admin, //false// if any other case.
""GetPageOwner""($tag = "", $time = "")
----
Returns the ""UserName"" of the page's ($tag) owner. If no $tag is provided when calling the function then it acts on the current page.
""SetPageOwner""($tag, $user)
----
Sets the page's ($tag) owneship to the specified ""UserName"" ($user). Both arguments need to be provided.
""LoadACL""($tag, $privilege, $useDefaults = 1)
----
Returns an array. The form of the array is as follows :
%%(php)array = {
["page_tag"] => $tag,
[$privilege."_acl"] => the_default_configuration_acl_for_this_privilege
}%%
""LoadAllACLs""($tag, $useDefaults = 1)
----
""SaveACL""($tag, $privilege, $list)
----
""TrimACLs""($list)
----
""HasAccess""($privilege, $tag = "", $user = "")
----
This returns true or 1 if the user ($user) can complete the requested action ($priviledge) on the page ($tag). If no $tag is provided then it acts the displayed ""WikiPage"". If no $user is provided then it acts on the current ""UserName"".
----
CategoryDocumentation
Deletions:
This page can now be found on the [[Docs:WikkaCore Wikka Documentation Server]].
Thanks for updating your bookmarks!
----
An archive of [[http://wikkawiki.org/WikkaCore/revisions
old revisions of this page]] is still available for reference.<<
::c::
----
CategoryMigratedDocs