Comparing revisions for WikkaCore

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
Deletions:
<<===This page has moved===

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
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki