Revision [11566]

This is an old revision of WikkaCore made by DarTar on 2005-10-25 08:51:26.

 

WikkaDocumentation Wikka Documentation

The Wikka Engine

Last edited by DarTar:
minor
Tue, 25 Oct 2005 08:51 UTC [diff]


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.


Based on the WikkaWiki version 1.1.5.3 package (unless indicated otherwise)

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)




SetMessage($message)

Set a message to be used for the Redirect function. No longer necessary in 1.1.6.0 - See Redirect() below


GetMessage()


Redirect($url = '', $message = '') 1.1.6.0


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.




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.




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) ownership 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 :
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 on the displayed WikiPage. If no $user is provided then it acts on the current UserName.



CategoryDocumentation
There are 6 comments on this page. [Show comments]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki