the function list search (so users won't get redirected to
google). Also provide the option to force the site to redirect
to do a documentation seach (on google currently) in case
a user is used to this
- introduce a new PHP friendly naming scheme,
like: manual_setup(), manual_header, etc.
- use PEAR coding standards (except naming)
- get rid of nasty globals, use one $PGI global for
all page related information storage
- get rid of unneded multiple function calls
(sendManualHeaders and manualHeader)
- reformat TOC information on pages, use modern CSS
styled divs, instead of tables and spacers
- get rid of email obfuscation code in user note handling,
it is done now on the rsync server (TODO: user note
text formatting should also be done there)
- getting rid of extra parameters, as info is always
available in $PGI
- XHTML friendly environment for printer friendly pages,
using CSS instead of nasty tables and other tricks
- Also provide BC functions, so the sites won't break
with the new code
Tested on a local mirror. This partically cleans the way
for livedocs, as it provides a much cleaner functional
interface of manual pages.
This commit is accompanied with the phpdoc modifications
to generate files with the new function calls in the future.
be used to print out the show source link properly on pages
accessed with shortcuts
Use the BASE_HREF on manual pages to provide a backlink
to the previous page after user note submissions, so thse
will work from shortcut accessed pages too
These two fixes hopefully close all the problems related to
manual URL shortcut page displays
generic _SERVER['BASE_HREF'], which we will use on all
pages
- Remove the old commented mirror switching part, which
was never used, and not going to be used
- Also employ BASE_HREF for the printed version, so the
right server name will be used, and XHTMLize the printed
page's header
parameter, to support the usage of webpage shortcuts
without redirections in the future
Also keep the two old base handling methods, until they
can be replaced by this general one
pages on the left side of the window
Add images according to php.net rules to these
two styles (toca, toci) depending on what mirror
they are used on
Also rewrite the TOC generator code a bit, so it
identifies items properly when their title and titleabbrev
differ [was a bug on many pages]
Also wrap too long function names, so we have the
same amount of content and nav area on pages with
long function names in the TOC [eg. xml functions]
The new div based approach means that we have *much*
less HTML to output, and the layout of the menu is better
than before, as the box images are aligned to the text.
Tested with Mozilla and Konqueror. Apart from pages with
long function names in the TOC, this should look very similar
to the display of the TOC before
layout functions. eg. the code for make_image() got optimized
Also employ coding style (comments, spaces, bracing)
Remove the popup link function which are not used for a very
long time...
Put the static root to $_SERVER['STATIC_ROOT'] so it can
easily go around the functions
The header and footer functions are still not rewritten, and
more work is needed on make_submit() to make it [X]HTML
compliant
These changes seem to work on my local mirror
the last search done by a user
Include this in the onload event handler of the index page,
and in all other pages, where an onload handler is not already
defined
Add name to form, so we can call it by it's name
JS tested with Mozilla. As the functions and objects used
are rather old, it should work with all browsers. In case someone
knows a better way, go and fix it ;)
from mnogosearch, so the indexing will be a bit faster,
and the results will be more accurate. Mnogo will still
find all the pages starting from the TOCs and indexes
Also use $MYSITE instead of $SERVER_NAME and
$SERVER_PORT, as we have the mirrors detected
name in $MYSITE
Also remove some unused code from the user note
handling functions
Also use this for loading the sqlite DB, instead of a
relative path value
Reformat the sqlite lookup function to be indented
with spaces instead of tabs
Add many comments to this part
Add prefix detection code, so /function.echo type of
lookups will work with the sqlite lookup method too. This
hopefully fixes#23652.
Remove ending ?> for consistency
Changes tested on my local mirror with sqlite and without it
an absolute path and not a relative (it can also be included
in a shortcut call)
Also comment it out the same time, as discussed with the
php-mirrors list, for performance reasons [other language
listings are also done without checks on docs.php for
example] This eliminates approx. 24 stat() calls per
manual page display
- the creation of $_.. vars
- global-ing them before usage
These are not needed anymore, we have all mirrors with
PHP > 4.1.0, and those having old versions are disabled
to be hidden in the db since I have added the speed
increase fix. The previous ranges were checked for IPs
instead of the actual range where the IP was [because ==
was true for the upper part of the region].
Now we search in one region up, and that makes this
whole code work again without any more resource needs.
Plus it also finds Rasmus' home IP finally ;))
The database has errors, so we need to wait for that to be
fixed...
Some speed fixes:
- do not search in the DB if we were unable to find any
helpful data in the index. A full DB search is something
we should not do because of performance reasons
- return a two element array in the index lookup specifying
a range where the IP should be in the DB (if it is correct).
If we pass that range, we were unable to find the IP.
This reduces the number of compared records significantly
Note that this is not a fix for Rasmus' and others'
lookup problems. That is caued by the DB containing
overlapping IP ranges, which are not OK for our indexer,
and would even not return valid results in an SQL
'BETWEEN' search [which is the recommended search
method on ip-to-country.com].
them disabled now, so autoglobal vars should work on
all mirrors without special preparation
Use $_SERVER['DOCUMENT_ROOT'] for includes
instead of a user defined constant, as the docroot
value is always available [even before prepend.inc]
This ensures consistency and causes no stat() calls
Add myphpnet_...() functions to load, get/set and save
the user preferences, and use them everywhere. This
enables us to easily add new preferences to the same
cookie. Every preference will last for a year this way,
and the cookie will only be set again, if someone
modifies his data on my.php
If this works nicely, then we can easily add a preferred
mirror site setting (and more)
[These changes seem to work on my local mirror]
the correct URI of a manual page which is currently served.
The code uses no external calls, it is based on config params
provided by sendmanualheaders() and manualheaders(), which
are always properly parameterized on all manpages and are
always called.
The <base> printout is added with a comment now,
so we can see if it works correcly. If yes, that the
comment signs can be removed, making that effective.
Then all the manual shortcuts can be changed to include()
manual pages instead of redirecting to them. Relative
links will work.
# As it now stands phpweb uses EXTREMELY inefficient way of including files
# by relying on the include_path parameter. Which causes at least 2 useless
# stat() calls for every include. By prefixing all includes & requires for
# files from include/ with the __PHPWEB_INC_PATH__ constants this is avoided.