I had need of a system for distributing files in a controlled manner.
My distro machine does all this and more, it can function in stand-alone mode as a self-contained file distribution unit, as a download counter, as a backend download engine for your web site, a simple file download menu system, as a cool source code viewer, a backend source code highlighting service, an on-the-fly embedded download and/or source menu provider, or any, or all of these things. All you do is add files!
It really is a no-brainer to get this up and running (chuck it somewhere),
and once it is, all you'll ever need to do is drop in your files!
So far, everywhere the distro machine has been chucked into (and it's been tested on all the major serving platforms), it just worked, which is how I like to do things. But mileage
and I'll attempt to respond with a solution, which others might also find useful.
corz distro machine
file distribution for busy humans
(c) (or @ corz.org 2004-> ;o)
last updated MONDAY Feb 02, 2009
NOTE: using include() is now deprecated in favour of readfile()
+ Added ability to display modified times along with file sizes (in the
0.9.24 [current beta testing live version]
+ Improved titles - they now contain the full path of the object, as well
as which mode we are in, either download or source.
+ Added an option for the user to reset their downloading session in the
event of them having previously downloaded the same file. This is on
the same page as the message with the email link.
In the preferences section, you can set the limit for the number of
times a user is allowed to reset their downloading session. The default
is 10 resets.
If the reset count reaches *twice* this number, the page simply dies.
The user can still go back and access the distro machine just fine, so
long as they don't attempt any more funny business.
* Added a preference for "cookie-less" hot-linking for approved download
sites; basically a list of domains (or full URLs) which you allow to
bypass the hot-link and cookie protection.
This is handy if you promote your software via the big download sites,
most of which will simply link back to your (distro machine) download
* Fixed a bug in the non-php source viewing (I was in too much of a rush
last time I updated the distro machine, throwing features in) AutoIt
scripts, for instance, would throw up an empty page - the raw view
worked fine. This also fixed the php-viewed-as-other bug I'd
* Fixed the cookies issue which prevented downloads from embedded menus
and external links, if "insist_on_cookies" was set to true - which it
was in my corz.org test version - always the latest version running
live at the org!)
* Increased number of built-in supported source types.
* Fixed occasional root path quirks, where in the absence of
corresponding source/download folders, the switch-to link could throw
up spurious "./" and "." prependments. This in no way affected the
distro machine's functions, but did mean that you could potentially
create two identical menus, available via different URI's, which could
have possible SEO repercussions, as well as cause confusion.
There should also be no more "/." links in the section menu if you
have switched to a root directory menu.
* Fixed an issue where spaces in the file name would cause downloaded
file names to be truncated to the first word, so "a sample file.zip"
would land up in your downloads folder as "a". I apologize for taking
so long to get around to this; I've known about it for ages, but for
some reason had gotten into the habit of not using spaces, and
believing that it would be tremendously difficult to fix. When I sat
down and looked at it, I coded the solution in around 1.4 seconds.
ho-hum ... :/
* Added a preference for "always attach", which is useful if you are
running the distro machine in multimedia mode - certain files can
*always* be sent as proper attachments (e.g. zip files), ensuring they
stupid browsers don't attempt to display then, or save them with weird
Be careful enabling multimedia downloading - if a user downloads an
audio file, or image to their browser, then views something else, then
comes back to the original file - they won't get to download it again.
If multimedia downloading is disabled, it will be in their downloads
folder. I may do a pref to allow multiple downloads of a file if
running in multimedia mode - let me know what you think.
* All preferences with file extensions are no longer arrays(), but simple
lists, separated by commas.
* Added a new preference, "insist on cookies", which, as well as ensuring
certain evil spidering entities don't go scooping all your files,
ensures that the overload protection works in all cases.
All web browsers can do cookies. If they want your resources, they can
easily enable them for your site. Most sane people have then enabled.
* Fixed a potential issue where the name of previously-downloaded files
wasn't being stored with the full path, just the name. This would have
made it impossible to download a second file with the exact same name
as a previously downloaded file. The full path is now stored, so this
is no longer possible.
* I've noticed for some time that folk occasionally download the same
file more than once. I guess this is because the distro machine,
unlike many web download facilities, sends the correct mime types and
attachment headers, and the download is most likely being dumped
straight into their download folder, automatically, as it should be.
So now we have Overload Protection..
The distro machine will now thoughfully inform users that they have
already downloaded that file, and ask them to check their downloads
This has been on my mind to do for a few weeks, but after some fool
decided to download three thousand copies of ffe the other day, I
figured it was about time to move it up the list. I guess my h4x0R
devblog pissed someone off! haha!
But I guess other distro machine users might not have a T3 and
unlimited bandwidth, so this will prevent any fools from eating up
your monthly allowance.
* greatly improved the search code. this now uses the same search
routine as corzoogle/404/links machine; it's robust and accurate.
It doesn't matter if you request download or source, the distro
machine will locate the file, wherever it is, and redirect the
browser to the new location. Yes, I mean a real 301 redirect, so
spiders and so-on will get automatically updated with your new
links, too. Pretty neat.
You can move whole sections around, and any links around your site,
and other folks' sites will continue to work fine.
* added separate styles for "clean" embedded source, which fixes the
regular style.. -->> style when embedded..
"textview-body" -->> "clean-textview-body"
"machine-sourceview" -->> "clean-machine-sourceview"
Fixed potential issue where a few instances of "array_key_exists" had
somehow been replaced with simply "key_exists". Everything was still
working fine (because of the way the conditions evaluated), though I'm
fairly sure there isn't a php function called "key_exists". ;o)
0.9.15b [current beta download version]
Minor internal code efficiency improvements in machine-functions.php
Added an automatic scores backup facility..
Every time a write operation is requested, the distro machine makes a
backup of the scores file. If your scores ever experience a zero-byte
situation (gets wiped, for some unknown reason), the distro machine will
automatically restore from this backup, and make a timed and dated copy
of the current restoration point for your reference.
This hasn't been needed, nor requested. I just got a kick to do it.
To facilitate this, the folder called "bax" (or whatever) will need to be
be writable by the server process, either chmod 777 (for php module), or
chmod 644 (for phpsuexec(cgi)) use.
First official XHTML release.
Fixed a couple of minor issues with the path title in the stats page
Made the "powered by" link open in a fresh window, so you don't lose
your visitors to corz.org!
NOTE: in the release, the source menu is disabled, as I figure that's
how most people will want to use it. If you need source menus, simply
enable that in the prefs.
Fixed embedded text highlighting (non-php) where extra frmatting was
being applied. this feature was a freebie after adding the text
highlighting code, I just fixed it up.
improved a couple of other features of the non-php highlighting, and
added specifics for a couple more types, autoit code and batch files.
the text highlighting services can handle any extensions, simply add
or remove them in the prefs.
Improved hot-link protection - added "strict" option for extra security.
Added a couple of example active hot-link messages you might like
Upgraded the distro machine web pages to XHTML, at last!
Added Hot-Link Protection.
Fixed the embedding features functionality (which I'd disabled during the
recent updating). Works great. I'm using the (new) download page as a demo
of the various available embedding combinations..
I think it's almost ready for its next release.
added pajamas login capability. this is only for admin functions (by design)
the "secure area" uses a different authentication mechanism.
Note: you can use an existing pajamas installation, if you have one.
Only the comments script to go, and I have a site-wide login! w00t!
distro machine can now automatically re-route to moved source files
it performs a scan of its folders, and returns the frst matching target.
So long as the file name hasn't changed, the user won't even realize
it was moved.
0.9.1 - 0.9.7
Where to begin on how much better this is? Forget it!
Simply put, it's clean, it's clear, and you can do funky stuff like switch the
panes around by doin no more than switching "left" for right, and vica-versa,
in your css. MY machine is all transparent and cool orange, because it's here,
but YOUR distro machine could be anything you want.
It's now trivial to create pages that have wee boxes with download menus in
them, scattered anywhere on your page. Joy of CSS!
0.9b1 - no releases for a while until I get the other features in.
added depth infinity..
you can now put folders inside folders inside folders and so on, and the
distro machine will keep on doing its thing. if you are using a custom css
file, please note the additional URL styles for .menu_title because the title
is now a series of links along the path you have travelled, which is nifty.
also the changes to the .sub_sections_title style, which is now a link to the
corresponding "other" section; if you have a downloads section called "foo",
and a source section called "foo", the powerbar title will become a link
enabling users to toggle between the corresponding sections, so long as they
occupy the same locations, relative to their own "root" folder be it "download"
Fixed a couple of small but fairly important security holes.
All users are urged to upgrade immediately.
Thanks to PCheese for the vulnarability warning.
Further improvements to the file-locking code. plugged both ends now, hopefully that's
the last blank score file, ever!
Added preferences for page background image. Thanks to Sad :( for noticing this!
improved the titles. these are important. the title now describes the current
content of the distro machine, be it menus or files.
add "switch" capability. if a user is inside a download menu, they can switch to
the source menu by simply clicking the section title. they can switch back and
forth like this. saves having to go *back* to the main menu, then *jump* to the
other (source/download) section, then *enter* the sub-section. cool.
this functionality only activates if the target folder exists. otherwise the
section title is normal text, not a link.
the distro machine now prevents users from attempting "multi-part" downloads.
why some folks would want to download a 50k zip file in five parts is beyond me,
anyway, the first part will work fine, any subsequent attempts will get a wee
message instead. in this event, the user also has an opportunity to reset their
download session maunually (just in case) by pressing a button.
added "show all files" option. this bypasses your extensions prefs and shows
*everything*. i needed this for something.
added an admin logout button for menu pages. as it stood, you could be logged
onto a secure machine as admin, and so automatically cleared for access to the
secure area, there was no indicator that this was because you were logged in as
an admin, which could potentially lead to confusion ;o)
added direct link to the admin/stats page from the secure area login page. this
saves you having to login twice, and prevents a double logout too! the link
operates like, and is controlled by the same settings as, the "stats link".
fixed a bug in the source view page where the download link was mixing up the
seperators (I forgot to add a "thingie" section when I reordered those)
v0.8rc1(release candidate one)
Improved the overall logic of the html structures, they were confusing even
to me. the embedded output, as ever, is a self-contained table which will
take up 90% (you can change this) of whatever width you give it. the powerbar's
squishing is now greatly improved, and it will appear even if nothing is available.
some css improvements, removed background white in the jump bar (oops),
underlining in the links, etc. for both in-built & external green.css
improved some error/user-error handling. attempting to embed from a distro
machine running in secure mode produces an embedded user message, for instance.
the name of the subsection you are in is now displayed if you get a "nothing
available" page. also works when embedded.
added various options for embedded custom text, menus and titles. you can
even embed top-level menus; the machine will deliver the sub-sections in a
pop-up window. you can set a few options from the embedding URL now, see the
install page for more information.
added prefs for a few things, machine widths among them.
made it easy for you to syndicate your downloads to other sites, they can embed
your machines on their pages!
some internal restructuring; with all the new features, things were starting
to get a bit inneficient. the table generation is becoming modularised, which
should hopefully make things simpler for me, and folks who want to hack the php,
editing one place instead of three or four.
fixed a bug where the downloading link on the source page gave an incorrect URL
greatly expanded the machine's list of mime-types. whatever you need to share
is probably covered now.
added "multimedia" downloading switch. useful if you use the distro machine
to distribute images/media files/etc, the user gets the file in their
browser as opposed to their download manager, in theory. you'd probably be
better off with something like QDig for image files, though.
squished a bug I introduced in the last beta - php error when no custom
text file was present.
finally moved the source highlighting colours out of the .htaccess and into
the script itself. Apache throws up errors of level warning at the .htaccess
versions and advises that we use quotes around the values, even though we
already effin did! it was starting to annoy me, not least all that pointless
server-side error logging. clearly this makes them easier to change, too.
I think I wanted folks to "discover" them, which is just plain silly.
cleaned up the counter code, removed some duplication, that sort of thing.
improved the safety of the scores file, again. there was a (very very slim)
possibility that one machine process could attempt to read the scores at the
exact moment a parallel machine process had the file locked for reading. no
custom text can now be displayed in the "nothing available" page. not on
"clean" embedded pages, though.
fixed bug where stats link was appearing on embedded pages (see, you should
hide that baby!)
Fixed a minor bug where "special links" for source files weren't being
correctly parsed, instead the generic link was showing.
Cleaned up the formatting of the embedded menu when nothing was available,
it shouldn't mess with your page too much now.
Fixed a browser-dependant issue where editing scores directly wouldn't work,
I just removed it. so much for standards.
v0.7b7 (latest release version)
Fixed a serious security flaw allowing users to potentially view system
files running on the server. all users are recommended to upgrade to
this version IMMEDIATELY!
made the $_SERVER['DOCUMENT_ROOT'] statements into a variable ($root)
so you can hack that manually if need be (someone needed this).
fixed up the stats page for more browsers, and moved the messages to the
top. they won't overlap the stats now.
encoded all the &'s I'd missed. At least, I think I've got them all now.
fixed the urlencoding of the sections part of the request. this should
prevent certain browsers sending a "bad request".
re-arranged the order of the GET variables, hopefully the URL's will seem
more logical now, ie.. /machine?section=whatever&file=somefile.zip, as
opposed to being back-to-front, like they were before. If you have any
hard links in pages that use the old order, they will still work just
made the admin login form look the same as the cute area login form.
links are now rawurlencoded, so you can use "+" and "&" and stuff in your
filenames without "unexpected" results, in theory.
the name of the sub-section is now displayed in the title bar
some css improvements. by the way, you specify alternative css for embedded
menus by adding an argument to your URL, like this.. &css=green.css
more work on the internal download handling, specifically, we now disable
zlib compression right at the start, rather than just before the
in the distribution, this has also been set in the .htaccess file, as
some (at least my web host) server's still seem to mess with the output.
a few other output buffering tweaks, this and that.
expanded the editing functions in the stats page. as well as nudging
things up and down, you can just edit scores straight in. this will
assist while I track down why one of my onsite score file reset itself.
fortunately I had a backup from the previous day, but you might not!
.. either it was something nefarious, in which case I have a hole in the
security somewhere, or more likely; there was a real busy spell and the
server tried to do too many things with the one flat-file all-at-once.
by the way, if it was something nefarious, and it was *you* that did it,
could you please do it again, say, every day for a week, so I can get to
the bottom of it!
anyway, the machine now puts an exclusive lock on the file for the
duration of the write operation, all three microseconds of it, or
thereabouts. we'll see how it goes. if you get a wiped score file,
please report it to me!
completed the title customisation. if you specify "info" as the title
for your source area, for instance, that will be used throughout,
you can now specify an alternative css file for your "clean" embedded
menus. see the distro machine download page, which includes two embedded
menus from two separate distro machines, each using a different native
css file, yet on the page, both using the same, as specified by that
removed the "download which file?.." message from embedded menus. I
reckon your own titles are better for these.
improved the downloading still further, and almost by accident. it's all
snapped into focus. I figured it might be better to get all the
score-file stuff out of the way before sending the file to the user. I
switched the default colour scheme to blue. I use this more myself, and
this is purely to save me having to edit the three separate
distromachines onsite that use the blue scheme. I upgrade my machines
more than anyone, of course.
new: secure area. I wanted this for my "friends" folder. it's neater,
and a wee bit more secure than the old http authorisation methods, which
apparently, some browsers aren't doing any more; seems like a smart
idea. We are using POST variables to send our password, which is held as
a 32 byte md5, in a temporary session cookie. even the worst case
browser scenario should only have the md5 flying around the wires. In
other words, it's fairly secure.
users are presented with a simple (and quite cute) password dialog. once
logged in they can access all your menu systems, files, whatever.
don't use your password-protected machine to deliver back-end menu
services; it won't. (it's so easy to just chuck another one somewhere
new: the name of the sections is now displayed in the menu itself. you
can also now (optionally) have your custom text displayed inside the
menu, too, which fills that space on the right!
new: expanded list of downloadables. we now check for, and send
mime-types, so mp3's, ogg's, excel spreadsheets, and such things can be
delivered easily with the machine. I'll expand this list as I go along,
no doubt. so far..
doc, xls, htm, html, jpg, png, pdf, txt, ogg, mp3,m3u, zip, rar, sit,
sitx, tgz, gzip, bz2, arc, bzip, pict, mpg, mov, and others.
if you use the machine to distribute, say, mp3's, this should cause
whatever the user's operating system is set to do with these filetypes,
i.e. open the mp3 player. they can still right-click and "save as", of
new: made a few more things customisable. stuff like the main titles.
you can have a "foo viewer" menu now, or whatever.
I also improved the overall download handling, there should be less
browser stalling, and associated weirdness. we DO send size headers now,
I dropped in the code for all this pretty quick, so it's into the beta
folder for a bit, until it's had some field testing, any feedback on the
new secure area features are especially welcome.
new: added "special link" capability to the source viewer page.
What this means is, instead of the "try out this script" link taking the
user to the script itself, it can send them to a different link. I
wanted this for my bbcode parser, instead of playing with the one in the
scripts folder, I wanted to send folks to the cbparser demo page, which
has user comments and stuff on it.
other scripts just won't work unless they are in a specific location,
I'm thinking right now that I'll send users to the real rdf newsfeeds
for my blog, for instance, instead of the blank page they'd get clicking
the "try out this script" link from the source page. neat!
Simply add a [links] ini section at the end of your readme.txt (or
whatever you call it) file, like this (from my "corz function library"
a growing collection of handy functions for php types
corzblog.bbcode.parser.php = /blog/inc/cbparser.php
email-hider.php = http://nospamdudes.org/hider.php
; you can leave comments, too, underneath, with semicolons.
I invented the second entry to show that full, valid URL's are okay too,
even linking to another site. I might link to a nuke installation that
uses my nuke-rss script, for instance.
you can enter special links for all, or any, or none of your source
files. if there's no entry, the "try out" link leads to the source file,
if you create a blank entry, the "try-out" link will lead to the
source-view page itself, effectively disabling the "try-out" mechanism
for that file, a good idea for files that will just gronk at you unless
they are living in some special location, or have no output to speak of.
if you need variables in your link, enclose it in quotes, like this..
important.txt = "/beta?download=menu&section=wire"
hmm: I used to use readme.html files for apache raw directories, which
override the readme.txt files (used by the distro machine), but now I
just leave the readme.txt file itself in the folder, and the raw
shows the preformatted distro machine message, along with the [links]
section underneath. cool. most users will figure out that these are
links that relate in some way to the scripts they "=" equal!
This also goes down in history as being the first time I conceived,
coded and tested a feature in one of my distros and *it just worked*. I
even remembered all my semicolons! heh
to need no debugging
is coding heaven
fix: following the "back to the source menu" link at the foot of the
source-viewer pages now takes you back to the section you were in, as
opposed to the main menu. that was poor gui.
fix: the slashes thing in the source viewer, maybe last time I broke,
rather than fixed this. I put it back, anyhow. If I find the file source
that originally led me to believe there was a bug in the first place, I
may delve more deeply into it.
in short, sometimes the php source highlighting function adds slashes
where there should be none, or else removes them where they should
remain. it's all my fault, of course, and another good reason why users
should click the download link rather than copy-and-paste the source
from the pages, which I'm fairly sure everyone does, so no harm done.
the reason this version info entry is so long is because I have decided
to start putting all my version.info entries into my blog, keep folks
up-to-date. or will do, when I'm finished this.
oh, I am!
minor improvements to interface, particularly for situations where you
have more sections than files in your download/source folders. now looks
Fixed a bug where a download link would show on the source page, even
though there wasn't a corresponding zip file available. Thanks to
cheshire for spotting that.
improved the print-friendly compatibility, should be no problems
printing source pages, and embedded source views won't interfere with
the print-friendly versions of the pages they are embedded inside. btw,
my print-friendly script uses <!--printstart-->
<!--printend--> tags to mark the printable areas.
added a "download" link to the *top* of the source view page. this
simply directs the user to the tool bar at the foot, where the *real*
download link is. some people are too impatient to scroll all the way
down to the foot, even on short pages!
fixed bug with slashes in source viewer
fixed a couple of minor style issues on the admin/stats page
removed the "logout" button from stats page when it is loaded without
admin login (if you have set the password to blank ('') so anyone can
note: the edit/delete links are absent when the page is viewed this way,
too though that was coded up for 0.6.3
added admin capabilities; you can now delete files from the stats list.
enabled in your browser to easily use this features.
to achieve this manually and *without* confirmation, simply add
"&del=file.zip" (no quotes), to your URL, replacing "file.zip" with the
name of the file you want to delete from the list.
note: this does not delete the file, only the counter score for that
file, removing it from the list. the moment someone downloads it, it
will appear again on the list. effectively, we are zero-ing the counter.
you can also edit the download counters themselves. a '-' and '+' sign
appear next to the scores. clicking '-' decreases the counter by one,
clicking '+' increases it by one. simple. this capability isn't so we
can rig our download stats, but so we can remove "test" downloads from
the list, making the figures accurate again.
ask yourself: which is the better program? one with five downloads and
five users? or one with a thousand downloads and five users?
fixed up the css, and especially the blue.css, stuff I'd been messing
with and left in place, a few other css things throughout the script,
missed styles, that sort of thing.
added rudimentary admin capabilities to the stats page. you can now
login and stay logged in with a session cookie. you can also logout!
more to come.
if you have multiple machines running onsite, logging into one logs you
into them all, if they all have the same admin password. handy.
added "stats" page.
there is now (optionally) a "stats" link at the foot of the page (it
can also be hidden), where you can go to a page of download
statistics. this is (optionally) password protected.
I wrote this initially for my (rudimentary) site admin page, works
added missing file handling
while the distro machine and its embedded menus won't ever display
links to missing files, it's possible that your static pages could
have direct links which are invalid. perhaps you took the file
rather than just send the user an empty file, the distro machine
will output a short message asking the user to inform the webmaster
that the file is missing.
added "bytes" into the pop-up titles
I decided to drop the do_nice_size() function into my onsite
function library, and then realised that while it did a neat job
with anything over 1024 bytes, returning whatever KB or MB, it
simply ignored anything under 1024 bytes. we care about the little
then I gave this functionality back to the distro machine's pop-up
after discovering php's error_reporting(E_ALL) I've cleaned up all the
undefined variables, that sort of thing. would have been good to know
about that sooner. while I was at it, I did a few minor tweaks, cleaned
up the pop-up titles, replaced an & with &amp;amp;, one I'd missed.
stuff like that.
something I thought I'd already done, but hadn't entirely finished; you
now can use a "short" path, a-la mod_rewrite, and the machine will use
this for all the links, this goes for back-end menus, too. previously it
always used the "real" link, no matter how it got called originally.
will keep the short link in the user's browser address bar, looks
I've included an example line in the script. I use '/engine' myself
if you want to know how to do short links, see the onsite FAQ..
the only time the user will see a "real" link using this method, is when
they choose the "try out this script" link from a source-view page.
with these internal changes, you do not now need a second line in your
.htaccess file to get the "try out this script" link to work fully. you
can still use that second line, allowing folks short url direct access
to source folders. your call.
when you hover the mouse over a link, the file size now pops-up in the
you can now split your download or source folder into subsections,
just make some folders inside! call the folders whatever you like,
they will instantly appear in a "sections" menu (you can configure
the name). sections cannot have more sub-sections, though you can
chuck machines all over the place, so this really isn't much of a
don't forget to pass &section=whatever if you are using backend
functions in a subfolder. also don't forget to put downloads inside
corresponding subfolders if you want the "download" link on the
source view page to appear. i.e. source/dev/du.php , I'm thinking
about a dynamic zipper for source files, but I do like being able to
have two *slightly* different versions of a file, one to see and
play with, and another to download. often, too, the download version
will be a package, or a folder, with extra stuff, readme's,
whatever.the one to see (and run onsite) often has debug lines, for
instance, or, like pda, might have some site-only mechanism, like a
we now check if there is a corresponding zip file for whatever source
the user is viewing. if there isn't one, we don't show the download
you can now disable the source menu, yet still use the same machine to
provide backend source-highlighting services. in other words, disabling
the menu, doesn't disable the services. they have a separate setting
the default mode in the distribution is now "download", and (if I
remember when I zip it) source menu disabled. this is what most people
need, and if you are skilled enough to have php source to view, you'll
surely figure out how to switch it on in the prefs.
added custom text capability. you can put a file called "readme.txt" (or
whatever you lke) inside any of the folders, and it will appear as a
caption at the foot of the page, just like those readme.txt files in
put all styling into css, easier for you to edit now.
fixed up the link URL encoding, and a few other wee markup fixes
simplified the layout a bit, and some other things, too, made more
added "clean" menu's to the mix. now you can have the distro machine
provide backend menu's too! again, pass "clean=true" onto the url and
pop wee download/ source menus into your pages. some css is loaded with
the menu to keep your style within the page. while it's unlikely that
any of my chosen style names will coincide with yours, if you get any
style weirdness, this will be the likely cause. just edit on of the
note: in this mode, the distro machine will show *only* downloads or
source items, no sections, custom text messages, or anything else which
could cause another page to load inside your own page.
get a menu into your page like this..
<span style="color:> <?php readfile('http://'. $_SERVER['HTTP_HOST']
.'/machine.php?download=menu&section=wire&clean=true'); ?> </span>
or like this..
<span style="color:> <iframe width="100%" height=260 border=0
the whole thing comes in its own table, so you can slap it in a
<td> or something. for a demo of this functionality, see..
note too, in this mode the menu fills 90% of area given to it. normally,
when by itself on a page, it fills 50% of the space.
added facility to use external stylesheets, and did a blue version as an
example. you can see it at the above link, and download it here..
added "" (double-quotes) around colour directives in .htaccess
file. although it didn't cause any problems, it did throw up warnings in
apache access logs.
added backend source-viewing capability. you can use the distro machine
to provide source highlighting facilities for your website. just add
"&clean=true" to the end of your source request, something like..
<span style="color:> <?php readfile('http://'. $_SERVER['HTTP_HOST']
.'/engine?source=sample.php&clean=true'); ?> </span>
will return the source page *without* your usual header and footer. see
the corz distro machine install page at corz.org for an example.
the distro machine will now specifically ask for "menu" in its
request, this should prevent problems on certain servers with safe_mode
and stuff like that enabled. it will still show its default menu just
fine if this is absent. i.e a request for index.php will show the same
page as.. index.php?download=menu (if you have download set as your
default menu system)
webmasters can choose which parts of the machine they need. the distro
machine has a "default" mode now, so that unspecific requests always
show whichever menu you set as default. you can also disable both menus
now and use the machine purely as a backend download handler
we now have source and download menus, and users can easily
switch between them. the download engine now takes a full filename in
the request and so can function as a general site download handler for
whatever files you throw at it (and throw into its "download" folder)
first there was the source viewer, and it was good.
then I needed to count downloads from corzoogle download page, so put
together a simple download handler which I tacked into the corzoogle
then I realised that I wanted all my downloads handled like this, and
counted too, and also that it would be cool to have a downloads menu
that was automatically created from whatever I happened to throw into
some folder, and when I had done that I thought..
what I got here is a nice distribution system, wouldn't it be cool to
make the whole thing self contained so folks could just drop it in a
folder as an automatic handling service with automagic menus and han- ..
so I merged the whole thing into a single file and corz distro machine
note: many changes just don't get noted in the early stages, all rapid