| 2 | 
           ddelon | 
           1 | 
           ezmlm-php 2.0
  | 
        
        
            | 
            | 
           2 | 
           Nov 13, 2002
  | 
        
        
            | 
            | 
           3 | 
           http://www.unixpimps.org/software/ezmlm-php
  | 
        
        
            | 
            | 
           4 | 
              | 
        
        
            | 
            | 
           5 | 
           ezmlm-php is a group of files written in php that allow you to fetch messages
  | 
        
        
            | 
            | 
           6 | 
           from a ezmlm mailing list archive via a web page. It is fully customizable so
  | 
        
        
            | 
            | 
           7 | 
           it can fit into an existing layout design very well, it is also self contained
  | 
        
        
            | 
            | 
           8 | 
           so that you can run it with no existing site setup.
  | 
        
        
            | 
            | 
           9 | 
              | 
        
        
            | 
            | 
           10 | 
           The new version has been rewritten from the ground up to exclude all external
  | 
        
        
            | 
            | 
           11 | 
           dependancies (except one which comes with the source, see makehash later on)
  | 
        
        
            | 
            | 
           12 | 
           and now implements RFC2045 MIME parsing in pure PHP.
  | 
        
        
            | 
            | 
           13 | 
           The system is now also object based to allow greater flexibility within the
  | 
        
        
            | 
            | 
           14 | 
           code itself, it also makes the code much more managable and readable.
  | 
        
        
            | 
            | 
           15 | 
              | 
        
        
            | 
            | 
           16 | 
              | 
        
        
            | 
            | 
           17 | 
           INSTALLATION
  | 
        
        
            | 
            | 
           18 | 
           ~~~~~~~~~~~~
  | 
        
        
            | 
            | 
           19 | 
           *NOTE*
  | 
        
        
            | 
            | 
           20 | 
           The installation of ezmlm-php now requires access to a compiler to build the
  | 
        
        
            | 
            | 
           21 | 
           included makehash program. See the MAKEHASH section at the end.
  | 
        
        
            | 
            | 
           22 | 
              | 
        
        
            | 
            | 
           23 | 
           1. Unpack the tarball and copy the files to your webroot in the directory you
  | 
        
        
            | 
            | 
           24 | 
              want the list to be accessed from. For example using /home/www/mailinglist
  | 
        
        
            | 
            | 
           25 | 
              | 
        
        
            | 
            | 
           26 | 
              gzip -d ezmlm-php-2.0.tar.gz
  | 
        
        
            | 
            | 
           27 | 
              tar xvf ezmlm-php.2.0.tar
  | 
        
        
            | 
            | 
           28 | 
              cd /home/www/mailinglist
  | 
        
        
            | 
            | 
           29 | 
              cp ~/ezmlm-php-2.0/*.php .
  | 
        
        
            | 
            | 
           30 | 
              cp ~/ezmlm-php-2.0/*.def .
  | 
        
        
            | 
            | 
           31 | 
              | 
        
        
            | 
            | 
           32 | 
           2. Build the included makehash program.
  | 
        
        
            | 
            | 
           33 | 
              | 
        
        
            | 
            | 
           34 | 
              cd ~/ezmlm-php-2.0
  | 
        
        
            | 
            | 
           35 | 
              gzip -d makehash.tar.gz
  | 
        
        
            | 
            | 
           36 | 
              tar xvf makehash.tar
  | 
        
        
            | 
            | 
           37 | 
              cd makehash
  | 
        
        
            | 
            | 
           38 | 
              make
  | 
        
        
            | 
            | 
           39 | 
              | 
        
        
            | 
            | 
           40 | 
              If you do not have compiler access check the binaries directory in the
  | 
        
        
            | 
            | 
           41 | 
              makehash.tar file as there are some common binaries there. If you build
  | 
        
        
            | 
            | 
           42 | 
              makehash on a new platform please feel free to submit the binary for
  | 
        
        
            | 
            | 
           43 | 
              inclusion.
  | 
        
        
            | 
            | 
           44 | 
              | 
        
        
            | 
            | 
           45 | 
           3. Move the resulting binary to your webroot.
  | 
        
        
            | 
            | 
           46 | 
              | 
        
        
            | 
            | 
           47 | 
           4. Edit ezmlm.php and change the user configurable options. Search for
  | 
        
        
            | 
            | 
           48 | 
              USER-CONFIG to find where to edit. See CONFIGURATION below.
  | 
        
        
            | 
            | 
           49 | 
              | 
        
        
            | 
            | 
           50 | 
           5. Access www.yoursite.com/mailinglist to test the installation.
  | 
        
        
            | 
            | 
           51 | 
              | 
        
        
            | 
            | 
           52 | 
              | 
        
        
            | 
            | 
           53 | 
           CONFIGURATION
  | 
        
        
            | 
            | 
           54 | 
           ~~~~~~~~~~~~~
  | 
        
        
            | 
            | 
           55 | 
           This section will explain each variable. If you used the last version most
  | 
        
        
            | 
            | 
           56 | 
           of these are the exact same.
  | 
        
        
            | 
            | 
           57 | 
              | 
        
        
            | 
            | 
           58 | 
           Name		Meaning
  | 
        
        
            | 
            | 
           59 | 
           ~~~~~~~~~~	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  | 
        
        
            | 
            | 
           60 | 
           listdir		This variable should be pointed at the root of the ezmlm
  | 
        
        
            | 
            | 
           61 | 
           		archive. For instance /usr/home/lists/ragga-jungle
  | 
        
        
            | 
            | 
           62 | 
              | 
        
        
            | 
            | 
           63 | 
           listname	The name of the list (everything before the @)
  | 
        
        
            | 
            | 
           64 | 
              | 
        
        
            | 
            | 
           65 | 
           listdomain	The domain name of the list
  | 
        
        
            | 
            | 
           66 | 
              | 
        
        
            | 
            | 
           67 | 
           tempdir		Where to store the cache files. /var/tmp should be fine
  | 
        
        
            | 
            | 
           68 | 
           		for most installations. /tmp is another choice.
  | 
        
        
            | 
            | 
           69 | 
              | 
        
        
            | 
            | 
           70 | 
           sendheaders	If set to TRUE then ezmlm will generate the nessesary
  | 
        
        
            | 
            | 
           71 | 
           		page headers. If set to FALSE your header file needs to
  | 
        
        
            | 
            | 
           72 | 
           		generate them. See 'includebefore'
  | 
        
        
            | 
            | 
           73 | 
              | 
        
        
            | 
            | 
           74 | 
           sendbody	If set to TRUE then ezmlm will generate the <body></body>
  | 
        
        
            | 
            | 
           75 | 
           		tags.
  | 
        
        
            | 
            | 
           76 | 
              | 
        
        
            | 
            | 
           77 | 
           sendfooters	If set to TRUE then ezmlm will generate the tage needed
  | 
        
        
            | 
            | 
           78 | 
           		to finish the document. If set to FALSE your footer file
  | 
        
        
            | 
            | 
           79 | 
           		needs to generate them. See 'includeafter'
  | 
        
        
            | 
            | 
           80 | 
              | 
        
        
            | 
            | 
           81 | 
           includebefore	This is a file that will be included before ezmlm-php
  | 
        
        
            | 
            | 
           82 | 
           		generates any output. You can have ezmlm-php generate
  | 
        
        
            | 
            | 
           83 | 
           		the nessesary headers (sendheaders = TRUE) and still
  | 
        
        
            | 
            | 
           84 | 
           		include a file of your own. The file is included by the
  | 
        
        
            | 
            | 
           85 | 
           		include_once function.
  | 
        
        
            | 
            | 
           86 | 
              | 
        
        
            | 
            | 
           87 | 
           includeafter	This is the exact same as includebefore except the file
  | 
        
        
            | 
            | 
           88 | 
           		is included after ezmlm-php has sent all of it's data.
  | 
        
        
            | 
            | 
           89 | 
              | 
        
        
            | 
            | 
           90 | 
           href		This is a string to prepend to the path whenever an
  | 
        
        
            | 
            | 
           91 | 
           		<a href= tag is generated. This option was added to fix
  | 
        
        
            | 
            | 
           92 | 
           		the problem of using a <base href= tag.
  | 
        
        
            | 
            | 
           93 | 
              | 
        
        
            | 
            | 
           94 | 
           prefertype	This is the mime type that you wish to send if the
  | 
        
        
            | 
            | 
           95 | 
           		current message is a multipart message. If this type isn't
  | 
        
        
            | 
            | 
           96 | 
           		found it defaults to the first part.
  | 
        
        
            | 
            | 
           97 | 
            		Some examples are: text/html, text/plain, etc...
  | 
        
        
            | 
            | 
           98 | 
              | 
        
        
            | 
            | 
           99 | 
           showheaders	This is an array of the headers to show. You can add or
  | 
        
        
            | 
            | 
           100 | 
           		remove any valid RFC822 header you wish to this array.
  | 
        
        
            | 
            | 
           101 | 
           		Some examples: X-Mailer, Message-ID
  | 
        
        
            | 
            | 
           102 | 
           		(This is case-insensitive)
  | 
        
        
            | 
            | 
           103 | 
              | 
        
        
            | 
            | 
           104 | 
           msgtemplate	This is a file to use as the message template, if blank
  | 
        
        
            | 
            | 
           105 | 
           		the internal one is used. See the file MSGTEMPLATE for
  | 
        
        
            | 
            | 
           106 | 
           		more information as it is to much to describe here.
  | 
        
        
            | 
            | 
           107 | 
              | 
        
        
            | 
            | 
           108 | 
           tablescolours	This is an array of colour hex triplets for use when a
  | 
        
        
            | 
            | 
           109 | 
           		table is generated. For each row that is generated the
  | 
        
        
            | 
            | 
           110 | 
           		next colour is used, just use a single element if you
  | 
        
        
            | 
            | 
           111 | 
           		don't want alternating colours.
  | 
        
        
            | 
            | 
           112 | 
           		(Yes there is a U in colours, the software was written
  | 
        
        
            | 
            | 
           113 | 
           		in Canada ;)
  | 
        
        
            | 
            | 
           114 | 
              | 
        
        
            | 
            | 
           115 | 
           thread_subjlen	This is an integer that tells the software how many
  | 
        
        
            | 
            | 
           116 | 
           		characters to allow the subjects when displayed in
  | 
        
        
            | 
            | 
           117 | 
           		threads or on the info page. This is useful if you
  | 
        
        
            | 
            | 
           118 | 
           		want to limit subjects to a certain length so that no
  | 
        
        
            | 
            | 
           119 | 
           		line wrapping occurs.
  | 
        
        
            | 
            | 
           120 | 
              | 
        
        
            | 
            | 
           121 | 
              | 
        
        
            | 
            | 
           122 | 
           MAKEHASH
  | 
        
        
            | 
            | 
           123 | 
           ~~~~~~~~
  | 
        
        
            | 
            | 
           124 | 
           So what is this little binary you need to build? Simply put it is a small
  | 
        
        
            | 
            | 
           125 | 
           little C program to generate the nessesary ezmlm-idx hashes for cross
  | 
        
        
            | 
            | 
           126 | 
           referencing authors. In the last version this was done by recursivley doing
  | 
        
        
            | 
            | 
           127 | 
           a grep on the /authors directory which isn't very efficient when the list
  | 
        
        
            | 
            | 
           128 | 
           subscriber base grows above 1000 or so. This program computes the hash by
  | 
        
        
            | 
            | 
           129 | 
           using the same algorithim the software does and speeds things up a lot.
  | 
        
        
            | 
            | 
           130 | 
              | 
        
        
            | 
            | 
           131 | 
           -FIN-
  |