[ewiki] [.subpage]-Linking

Hi Ewikians!

I've gone back to fiddling w/ my ewiki-implementation again and implemented 
easier subpage-linking. This is how it works.

Status quo:
* ewiki is capable of handling subpage-structured pagenames/ids, e.g.  
  [readme.chapter1.section2]
* ewiki shows subpages of a page via include("plugins/aview/subpages.php");

easier linking [1]
---------------

My additions now allow to link from a page to one of its subpages more easily, 
e.g. you can link from [readme] to [readme.chapter1] by [.chapter1].

link only showing subpage-name? [2]
--------------------------------------

The following feature I implemented, too. I'd like to discuss, whether you 
think it to be good for default behaviour or option.

When linking as above from [readme] to [readme.chapter], I'd like the link to 
be <a href="readme.chapter">chapter</a>. What do you think?

Mario, if there is a better way of submitting changes, then let me know. 
Greetings to all of you, timm

the code
----------

## for [1] ##

[POSITION 1]

ADD  if ($str[0] == ".") { $str = $ewiki_id.$str;  }  IN function 
ewiki_link_regex_callback LAST LINE OF if ($str[0] == "[")-CONDITION

FOR FULL CODE SEE BELOW

[POSITION 2]

ADD 

  global $ewiki_id;
  if ($action=="FIND") {
   foreach ($args as $i=>$id) {
      if ($id[0] == ".") { $id = $ewiki_id.$id;  }
      $args[$i] = $id;
   }
  }

IN THE BEGINNING OF function ewiki_database


## for [2] ##

ADD
      $tymm_rest = strrchr($title,'.');
      if ($tymm_rest) {$title = substr($tymm_rest,1); }
IN  function ewiki_link_regex_callback BEFORE if ($uu = strtok("|"))

## SO THE BEGINNING OF ewiki_link_regex_callback IS NOW: ##

function ewiki_link_regex_callback($uu, $force_noimg=0) {

   global $ewiki_links, $ewiki_plugins, $ewiki_config, $ewiki_id;

   $str = trim($uu[0]);
   $type = array();
   $states = array();

   #-- link bracket '[' escaped with '!' or '~'
   if (($str[0] == "!") || ($str[0] == "~")) {
      return(substr($str, 1));
   }
   if ($str[0] == "#") {
      $states["define"] = 1;
      $str = substr($str, 1);
   }
   if ($str[0] == "[") {
      $states["brackets"] = 1;
      $str = substr($str, 1, -1);
      /* SUBPAGE-HACK: easy sublinking by [.subpage] */
      if ($str[0] == ".") { $str = $ewiki_id.$str;  } 
      /* END SUBPAGE-HACK */
   }
   #-- explicit title given via [ title | WikiLink ]
   $href = $title = strtok($str, "|");
   /* SUBPAGE-HACK: removing.everything.but.LAST for link-display */
      $tymm_rest = strrchr($title,'.');
      if ($tymm_rest) {$title = substr($tymm_rest,1); }
   /* END SUBPAGE-HACK */

   if ($uu = strtok("|")) { ...
 


Other related posts: