apropo, I added some functions to common.php to help navigation. 
common.php is supposed to be standalone (no dependencies but for
config.php), and common.php needs to find it's bootstrap files. 
So, any navigation aids need to be in common.php itself.  Rather
than making them private (prepending underscore) since I thought they
might be more generally useful, I prepended "cmn" to their names so
they could be used outside of common.php without namespace collision.<br>
<br>
I replaced the require_once(xxx config.php) at the top of common.php with cmnRequireConfig(),
which goes up through the parent directories looking for config.php,
and when it finds it, it require_onces it.<br>
<br>
cmnHomeDir() - returns what used to be the BASEPATH.<br>
<br>
cmnSearchParentDirectories($dirname, $searchfor), as in<br>
cmnSearchParentDirectories(dirname(__FILE__), 'config.php')<br>
- finds config.php at or above the current running file.<br>
<br>
cmnSearchParentDirectories(dirname(__FILE__), 'include/common.php')<br>
- finds common.php<br>
<br>
cmnRequirePackage($rel_path, $private=false) - require_once on a file name.<br>
cmnIncludePackage($rel_path, $private=false) - include_once on a file name.<br>
Not sure how useful these are now that the base directory is prepended to the system path list (thanks max!).<br>
<br>
-rob<br>
<br><div><span class="gmail_quote">On 1/4/06, <b class="gmail_sendername">Max Horváth</b> &lt;<a href="mailto:max.horvath@maxspot.de">max.horvath@maxspot.de</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt;&gt; It's not broken,<br>&gt;&gt; See in config.php, SYSTEM_PATH is the new name.<br>&gt;&gt; Then in common.php there is a set_include_path() that adds the<br>&gt;&gt; SYSTEM_PATH<br>&gt;&gt;<br>&gt;&gt; thus, it does exactly the same as before, but without needing to
<br>&gt;&gt; prepend BASEPATH on the require lines ....<br><br>SYSTEM_PATH did always exist ...<br><br>&gt; Ok, I stand corrected, my apologies.&nbsp;&nbsp;I misunderstood what Max was<br>&gt; trying to<br>&gt; do.&nbsp;&nbsp;I tought he was trying to complete the removal of SYSTEM_PATH
<br>&gt; from the<br>&gt; config file.&nbsp;&nbsp;To prove that I am a good sport I checked in the<br>&gt; change to<br>&gt; complete autodetection of paths.&nbsp;&nbsp;There is now one less configuration<br>&gt; directive to worry about.<br>
<br>Nice feature.<br><br>But I hope that those new functions won't cost us much speed. When<br>profiling WiFiDog code I saw that including alll of our files costs a<br>quite huge amount of time. Now with all those array functions I hope
<br>we won't more speed (PHPs array functions are quite slow) ...<br><br>&gt; As the BASEPATH change itself, we now we have confusing pearls like:<br>&gt; require_once('../include/common.php');<br>&gt; require_once('include/common_interface.php');
<br>&gt; (Taken from portal/index.php).&nbsp;&nbsp;Yep, you were supposed to figure<br>&gt; out that<br>&gt; common.php and common_interface.php are actually in the SAME<br>&gt; directory.<br><br>Well - it makes sense ...<br><br>The first require_once is used to include 
common.php which defines<br>the base path of our WiFiDog installation.<br><br>After that no script has to think about where the rest of the files<br>are located ... so you don't have to use anything like '../include/<br>common_interface.php' anymore.
<br><br>Take a look at the source. You'll see that only /include/common.php<br>and admin/admin_common.php get included like this.<br><br>And it's just the way that one file has to be called like this - and<br>it shouldn't be confusing, because no other files have to be called
<br>like this.<br><br>Cheers, Max!<br><br><br><br>_______________________________________________<br>WiFiDog mailing list<br><a href="mailto:WiFiDog@listes.ilesansfil.org">WiFiDog@listes.ilesansfil.org</a><br><a href="http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog">
http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog</a><br><br></blockquote></div><br>