ewiki

how ewiki operates

ewiki_page()
  - decodes the $id and $action from the GET or POST parameters
  - tries to load the page from ewiki_database()
  - if this failed then it calls the database init function
  - calls some init plugins, calls the _auth() interface
  - chains to ["page"] plugins which activate for registered $id's
  - alternatively calls a plugin that was registered for $action
  - the default however is to render the current page via _page_view()
  - adds a page title
  - sends the generated output (view page or plugin output) back to
    caller (for output into yoursite.php)

ewiki_page_view()
  - feeds the current page $data's ["content"] into ewiki_format()
  - also decodes a few formatting parameters (e.g. if html allowed)
  - returns the gererated html back

ewiki_format()
  - beatifies the source code (unifies to plain UNIX newlines)
  - calls init plugins (wiki source mangling)
  - splits source into blocks, calls block plugins
  - then goes through each line of the wiki source to generate html
  - there is line-start, in-line and complete-markup
  - afterwards everything went from source into the $ooo-output var
  - first calls the link_pre_scan_regex (which searches for
    wikiwords and stores that information into $ewiki_links)
  - then calls the wiki-link transformation regex function
  - then calls post plugins and returns generated <html>

ewiki_render_wiki_links()
  - searches for all (pre-fetched) $ewiki_links via ewiki_db::FIND()
  - transforms the wikiwords into html-links
  - with the regex and callback func: returns output back to
  - ewiki_format()

ewiki_link_regex_callback()
  - transform the wiki source snippet returned from the
    preg_replace() call into a html link string
  - (complicated)

ewiki_$page_plugin_*()
  - page plugins return html output, which usually is hardcoded as
    strings into them
  - provide some interactivity

ewiki_$action_plugins_*()
  - activate on pages with special registered $action's
  - provide some interactivity (for page editing for example)
prev << "internal coding explained"
next >> "used variables"


You cannot modify the INTERNALS file, but anyhow any ideas or suggestion should as usually get filed on BugReports, UserSuggestions or even better the INTERNALS.Discussion.