maj.world

maj.world

Git

This commit has been accessed 430 times via Git panel.

commit 6a45f462755236d8343e805c72445e88859bab43
tree 8b4cf2a0e46b2b7e74fc3ba8f4d8e4091c7b5bf0
parent 1fc9d7d9987989d167d2bee454afc0d5e8c0132b
author Engels Antonio <engels@majcms.org> 1277314192 +0800
committer Engels Antonio <engels@majcms.org> 1277314192 +0800

    maj-0.14-20071204-bb.zip

diff --git a/edit.php b/edit.php
index 7e41985..579644a 100644
--- a/edit.php
+++ b/edit.php
@@ -22,6 +22,33 @@ if (get_magic_quotes_gpc()) {
 
 $login_username = file_get_contents("data/username.txt");
 
+if (isset($_REQUEST['title_input']) and isset($_REQUEST['body_input'])) {
+       header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?entry=" . $_REQUEST['entry']);
+}
+
+if (!isset($_REQUEST['entry'])) {
+       exit();
+}
+
+if (!isset($_SESSION['logged_in'])) {
+       exit();
+}
+
+$do = 0;
+
+if ($_SESSION['logged_in'] == $login_username) {
+       $do = 1;
+}
+
+
+if (file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") and file_exists("data/wiki.txt") and file_exists("data/items/{$_REQUEST['entry']}/edit.txt")) {
+       $do = 1;
+}
+
+if ($do == 0) {
+       exit();
+}
+
 function rmdirr($recurse_dirname) {
 
     if (!file_exists($recurse_dirname)) {
@@ -46,18 +73,6 @@ function rmdirr($recurse_dirname) {
     return rmdir($recurse_dirname);
 }
 
-if (isset($_REQUEST['title_input']) and isset($_REQUEST['body_input'])) {
-       header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?entry=" . $_REQUEST['entry']);
-}
-
-if (!isset($_REQUEST['entry'])) {
-       exit();
-}
-
-if (!isset($_SESSION['logged_in']) or ($_SESSION['logged_in'] != $login_username)) {
-       exit();
-}
-
 $title_file = 'data/items/' . $_REQUEST['entry'] . '/title.txt';
 $body_file = 'data/items/' . $_REQUEST['entry'] . '/body.txt';
 $date_file = 'data/items/' . $_REQUEST['entry'] . '/date.txt';
@@ -345,82 +360,113 @@ if (file_exists("data/items/{$_REQUEST['entry']}/category.txt")) {
 
 <p>
 <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
-<p><input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_image_size; ?>">
-<input autocomplete=off type=file name=album_image_input> Upload optional album image. Enter optional caption below.</p>
-<p><input autocomplete=off type=text name=caption class=input_body></p>
-<p><input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size; ?>">
-<input autocomplete=off type=file name=entry_image_input> Upload optional entry image.</p>
-<p><input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size; ?>">
-<input autocomplete=off type=file name=file_input> Upload optional file.</p>
-<p><input autocomplete=off type=password name=passwd <?php
-
-if (file_exists("data/items/{$_REQUEST['entry']}/passwd.txt")) {
-       echo "value=password";
-}
+
+<?php if (($_SESSION['logged_in'] == $login_username) or (file_exists("data/members/active/{$_SESSION['logged_in']}/ul.txt") and file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt"))) { ?>
+
+       <p><input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_image_size; ?>">
+       <input autocomplete=off type=file name=album_image_input> Upload optional album image. Enter optional caption below.</p>
+       <p><input autocomplete=off type=text name=caption class=input_body></p>
+       <p><input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size; ?>">
+       <input autocomplete=off type=file name=entry_image_input> Upload optional entry image.</p>
+       <p><input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size; ?>">
+       <input autocomplete=off type=file name=file_input> Upload optional file.</p>
+
+<?php
+
+}
+
+if ($_SESSION['logged_in'] == $login_username) {
+
 ?>
 
-> <?php
+       <p><input autocomplete=off type=password name=passwd <?php
 
-if (file_exists("data/items/{$_REQUEST['entry']}/passwd.txt")) {
-       echo "Enter new password or clear field to disable password protection.";
-}
-else {
-       echo "Enter optional password.";
-}
-?></p>
+       if (file_exists("data/items/{$_REQUEST['entry']}/passwd.txt")) {
+               echo "value=password";
+       }
+       ?>
 
-<?php
-       if (file_exists("data/categories")) {
-               if ($dh_cat = opendir("data/categories")) {
-                       while (($entry_cat = readdir($dh_cat)) !== false) {
+       > <?php
+
+       if (file_exists("data/items/{$_REQUEST['entry']}/passwd.txt")) {
+               echo "Enter new password or clear field to disable password protection.";
+       }
+       else {
+               echo "Enter optional password.";
+       }
+       ?></p>
 
-                               if ($entry_cat != "." && $entry_cat != ".." && fnmatch("*", $entry_cat)) {
-                                       $show_cat[] = $entry_cat;
+       <?php
+               if (file_exists("data/categories")) {
+                       if ($dh_cat = opendir("data/categories")) {
+                               while (($entry_cat = readdir($dh_cat)) !== false) {
+      
+                                       if ($entry_cat != "." && $entry_cat != ".." && fnmatch("*", $entry_cat)) {
+                                               $show_cat[] = $entry_cat;
+                                       }
+                               }
+                               closedir($dh_cat);
+                       }
+      
+                       sort($show_cat);
+                       reset($show_cat);
+                       $count_cat = count($show_cat);
+      
+                       if ($count_cat > 0) {
+      
+                               echo "<p><select name=category><option selected>";
+                               if (file_exists("data/items/{$_REQUEST['entry']}/category.txt")) {
+                                       readfile("data/items/{$_REQUEST['entry']}/category.txt");
+                                       echo '<option>unfiled';
+                               }
+                               else {
+                                       echo "unfiled";
                                }
+      
+      
+                               foreach ($show_cat as $category) {
+                                       echo "<option>";
+                                       echo strtolower($category);
+                               }
+      
+                               echo "</select> Select category.</p>";
+      
                        }
-                       closedir($dh_cat);
                }
+       ?>     
+       <p><input type=checkbox name=sticky <?php $sticky_sem = 'data/sticky/' . $_REQUEST['entry']; if (file_exists($sticky_sem)) { echo checked; } ?>>Put entry title in Quick Links box.<br>
+       <input type=checkbox name=pdf <?php if (file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) { echo checked; } ?>>Allow PDF generation for this entry.<br>
+       <input type=checkbox name=display <?php $display_sem = "data/items/{$_REQUEST['entry']}/cat.txt"; if (file_exists($display_sem)) { echo checked; } ?>>Always display. If this is not a private entry, it will be displayed even if its category is hidden or isolated.<br>
+       <input type=checkbox name=private <?php $private_sem = "data/items/{$_REQUEST['entry']}/private.txt"; if (file_exists($private_sem)) { echo checked; } ?>>Private entry. This entry will unconditionally be invisible to visitors<?php if (file_exists("data/ml.txt")) { echo " and to the mailing list"; } ?>, even if always display is set.
 
-               sort($show_cat);
-               reset($show_cat);
-               $count_cat = count($show_cat);
+       <?php if (file_exists("data/bb.txt")) { ?>
+       <br>
+       <input type=checkbox name=member <?php $member_sem = "data/items/{$_REQUEST['entry']}/member.txt"; if (file_exists($member_sem)) { echo checked; } ?>>Only registered members can view this entry.
 
-               if ($count_cat > 0) {
+       <?php } ?>
 
-                       echo "<p><select name=category><option selected>";
-                       if (file_exists("data/items/{$_REQUEST['entry']}/category.txt")) {
-                               readfile("data/items/{$_REQUEST['entry']}/category.txt");
-                               echo '<option>unfiled';
-                       }
-                       else {
-                               echo "unfiled";
-                       }
+       <?php
 
+       // start of wiki mod (20071130)
 
-                       foreach ($show_cat as $category) {
-                               echo "<option>";
-                               echo strtolower($category);
-                       }
+       if (file_exists("data/bb.txt") and file_exists("data/wiki.txt")) { ?>
+       <br>
+       <input type=checkbox name=edit <?php $edit_sem = "data/items/{$_REQUEST['entry']}/edit.txt"; if (file_exists($edit_sem)) { echo checked; } ?>>Registered members can edit this entry.
 
-                       echo "</select> Select category.</p>";
+       <?php
 
-               }
-       }
-?>
-<p><input type=checkbox name=sticky <?php $sticky_sem = 'data/sticky/' . $_REQUEST['entry']; if (file_exists($sticky_sem)) { echo checked; } ?>>Put entry title in Quick Links box.<br>
-<input type=checkbox name=pdf <?php if (file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) { echo checked; } ?>>Allow PDF generation for this entry.<br>
-<input type=checkbox name=display <?php $display_sem = "data/items/{$_REQUEST['entry']}/cat.txt"; if (file_exists($display_sem)) { echo checked; } ?>>Always display. If this is not a private entry, it will be displayed even if its category is hidden or isolated.<br>
-<input type=checkbox name=private <?php $private_sem = "data/items/{$_REQUEST['entry']}/private.txt"; if (file_exists($private_sem)) { echo checked; } ?>>Private entry. This entry will unconditionally be invisible to visitors<?php if (file_exists("data/ml.txt")) { echo " and to the mailing list"; } ?>, even if always display is set.
+       // end of wiki mod (20071130)
 
-<?php if (file_exists("data/bb.txt")) { ?>
-<br>
-<input type=checkbox name=member <?php $member_sem = "data/items/{$_REQUEST['entry']}/member.txt"; if (file_exists($member_sem)) { echo checked; } ?>>Only registered members can view this entry.
+       }
 
-<?php } ?>
+       ?>
+
+       <br><input type=checkbox name=lastmod <?php $lastmod_sem = "data/items/{$_REQUEST['entry']}/lastmod.txt"; if (file_exists($lastmod_sem)) { echo checked; } ?>>Display last modification date and time.
 
-<br><input type=checkbox name=lastmod <?php $lastmod_sem = "data/items/{$_REQUEST['entry']}/lastmod.txt"; if (file_exists($lastmod_sem)) { echo checked; } ?>>Display last modification date and time.
+       </p>
+
+<?php } ?>
 
-</p>
 <input type=hidden name=entry value="<?php echo $_REQUEST['entry']; ?>">
 
 <table border=0 cellspacing=0 cellpadding=0><tr><td>
@@ -769,247 +815,313 @@ if (isset($_FILES['file_input']) and !empty($_FILES['file_input'])) {
        }
 }
 
-$open_body_file = fopen($body_file,"w");
-fwrite($open_body_file,$body_write_content);
-fclose($open_body_file);
+// start of wiki mod (20071130)
 
-$sticky_sem = 'data/sticky/' . $_REQUEST['entry'];
-if (isset($_REQUEST['sticky']) and !empty($_REQUEST['sticky']) and ($_REQUEST['sticky'] == "on")) {
-       if (!file_exists("data/sticky")) {
-               mkdir("data/sticky");
-       }
-       if (!file_exists($sticky_sem)) {
-               touch($sticky_sem);
-       }
-}
-if (!isset($_REQUEST['sticky']) or empty($_REQUEST['sticky'])) {
-       if (file_exists($sticky_sem)) {
-               unlink($sticky_sem);
-       }
-}
+$title_get_content = ucfirst($_REQUEST['title_input']);
+$title_get_content = str_replace('<','&lt;',$title_get_content);
+$title_get_content = str_replace('>','&gt;',$title_get_content);
 
-$display_sem = "data/items/{$_REQUEST['entry']}/cat.txt";
-if (isset($_REQUEST['display']) and !empty($_REQUEST['display']) and ($_REQUEST['display'] == "on")) {
-       if (!file_exists($display_sem)) {
-               touch($display_sem);
-       }
-}
-if (!isset($_REQUEST['display']) or empty($_REQUEST['display'])) {
-       if (file_exists($display_sem)) {
-               unlink($display_sem);
-       }
-}
+if (file_exists("data/wiki.txt") and (($title_get_content != file_get_contents("data/items/{$_REQUEST['entry']}/title.txt")) or ($body_write_content != file_get_contents("data/items/{$_REQUEST['entry']}/body.txt")))) {
 
-$private_sem = "data/items/{$_REQUEST['entry']}/private.txt";
-if (isset($_REQUEST['private']) and !empty($_REQUEST['private']) and ($_REQUEST['private'] == "on")) {
-       if (!file_exists($private_sem)) {
-               touch($private_sem);
+       if (!file_exists("data/items/{$_REQUEST['entry']}/wiki")) {
+               mkdir("data/items/{$_REQUEST['entry']}/wiki");
        }
-}
-if (!isset($_REQUEST['private']) or empty($_REQUEST['private'])) {
-       if (file_exists($private_sem)) {
-               unlink($private_sem);
+
+       if (!file_exists("data/items/{$_REQUEST['entry']}/wiki/delta")) {
+               mkdir("data/items/{$_REQUEST['entry']}/wiki/delta");
        }
-}
 
-$member_sem = "data/items/{$_REQUEST['entry']}/member.txt";
-if (isset($_REQUEST['member']) and !empty($_REQUEST['member']) and ($_REQUEST['member'] == "on")) {
-       if (!file_exists($member_sem)) {
-               touch($member_sem);
+       if (file_exists("data/offset.txt")) {
+               $offset = file_get_contents("data/offset.txt");
        }
-}
-if (!isset($_REQUEST['member']) or empty($_REQUEST['member'])) {
-       if (file_exists($member_sem)) {
-               unlink($member_sem);
+       else {
+               $offset = 0;
        }
-}
 
-$lastmod_sem = "data/items/{$_REQUEST['entry']}/lastmod.txt";
-if (isset($_REQUEST['lastmod']) and !empty($_REQUEST['lastmod']) and ($_REQUEST['lastmod'] == "on")) {
-       if (!file_exists($lastmod_sem)) {
-               touch($lastmod_sem);
+       $ddate = date("YmdHis", time() + $offset);
+
+       if (!file_exists("data/items/{$_REQUEST['entry']}/wiki/delta/$ddate")) {
+               mkdir("data/items/{$_REQUEST['entry']}/wiki/delta/$ddate");
        }
-}
-if (!isset($_REQUEST['lastmod']) or empty($_REQUEST['lastmod'])) {
-       if (file_exists($lastmod_sem)) {
-               unlink($lastmod_sem);
+
+       copy("data/items/{$_REQUEST['entry']}/author.txt","data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/author.txt");
+       copy("data/items/{$_REQUEST['entry']}/body.txt","data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/body.txt");
+       copy("data/items/{$_REQUEST['entry']}/date.txt","data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/date.txt");
+       copy("data/items/{$_REQUEST['entry']}/title.txt","data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/title.txt");
+
+       if (file_exists("data/items/{$_REQUEST['entry']}/contrib.txt")) {
+               copy("data/items/{$_REQUEST['entry']}/contrib.txt","data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/contrib.txt");
        }
 }
 
-if (isset($_REQUEST['pdf']) and !empty($_REQUEST['pdf']) and ($_REQUEST['pdf'] == "on")) {
-       if (!file_exists("data/items/{$_REQUEST['entry']}/pdf")) {
-               mkdir("data/items/{$_REQUEST['entry']}/pdf");
-       }
-       if (!file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) {
-               mkdir("data/items/{$_REQUEST['entry']}/pdf/file");
-       }
-       if (!file_exists("data/items/{$_REQUEST['entry']}/pdf/count")) {
-               mkdir("data/items/{$_REQUEST['entry']}/pdf/count");
-       }
+// end of wiki mod (20071130)
 
-       $entry = $_REQUEST['entry'];
-       $author_file = "data/author.txt";
-       $title_file = "data/items/$entry/title.txt";
-       $date_file = "data/items/$entry/date.txt";
-       $body_file = "data/items/$entry/body.txt";
+$open_body_file = fopen($body_file,"w");
+fwrite($open_body_file,$body_write_content);
+fclose($open_body_file);
 
-       $author = file_get_contents($author_file);
-       $title = file_get_contents($title_file);
-       $date = file_get_contents($date_file);
+// start of wiki mod (20071130)
 
-       $link = "<a href=http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . "?entry=" . $entry . ">http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . "?entry=" . $entry . "</a>";
-       $link = str_replace("pdf.php?entry=","index.php?entry=",$link);
+if (file_exists("data/wiki.txt") and file_exists("data/items/{$_REQUEST['entry']}/edit.txt")) {
+       $open_contrib_file = fopen("data/items/{$_REQUEST['entry']}/contrib.txt","w");
+       fwrite($open_contrib_file,$_SESSION['logged_in']);
+       fclose($open_contrib_file);
+}
 
-       $body = file_get_contents($body_file);
-       $body = str_replace("\n","<br>",$body);
+// end of wiki mod (20071130)
 
-       $html = "<br><i>by $author</i><br><br>$date<br><br>Canonical Source<br>$link<br><br><br>$body";
+if ($_SESSION['logged_in'] == $login_username) {
 
-       $filename = strtolower($title);
-       $filename = strtolower($_SERVER['SERVER_NAME']) . "-" . $entry . "-" . $filename . ".pdf";
-       $filename = str_replace(" ","-",$filename);
-       $filename = "data/items/$entry/pdf/file/$filename";
+       $sticky_sem = 'data/sticky/' . $_REQUEST['entry'];
+       if (isset($_REQUEST['sticky']) and !empty($_REQUEST['sticky']) and ($_REQUEST['sticky'] == "on")) {
+               if (!file_exists("data/sticky")) {
+                       mkdir("data/sticky");
+               }
+               if (!file_exists($sticky_sem)) {
+                       touch($sticky_sem);
+               }
+       }
+       if (!isset($_REQUEST['sticky']) or empty($_REQUEST['sticky'])) {
+               if (file_exists($sticky_sem)) {
+                       unlink($sticky_sem);
+               }
+       }
 
-       require('fpdf.php');
+       $display_sem = "data/items/{$_REQUEST['entry']}/cat.txt";
+       if (isset($_REQUEST['display']) and !empty($_REQUEST['display']) and ($_REQUEST['display'] == "on")) {
+               if (!file_exists($display_sem)) {
+                       touch($display_sem);
+               }
+       }
+       if (!isset($_REQUEST['display']) or empty($_REQUEST['display'])) {
+               if (file_exists($display_sem)) {
+                       unlink($display_sem);
+               }
+       }
 
-       class PDF extends FPDF
-       {
-               var $B;
-               var $I;
-               var $U;
-               var $HREF;
-              
-               function PDF($orientation='P',$unit='mm',$format='letter')
-               {
-                   //Call parent constructor
-                   $this->FPDF($orientation,$unit,$format);
-                   //Initialization
-                   $this->B=0;
-                   $this->I=0;
-                   $this->U=0;
-                   $this->HREF='';
+       $private_sem = "data/items/{$_REQUEST['entry']}/private.txt";
+       if (isset($_REQUEST['private']) and !empty($_REQUEST['private']) and ($_REQUEST['private'] == "on")) {
+               if (!file_exists($private_sem)) {
+                       touch($private_sem);
+               }
+       }
+       if (!isset($_REQUEST['private']) or empty($_REQUEST['private'])) {
+               if (file_exists($private_sem)) {
+                       unlink($private_sem);
                }
+       }
+
+       $member_sem = "data/items/{$_REQUEST['entry']}/member.txt";
+       if (isset($_REQUEST['member']) and !empty($_REQUEST['member']) and ($_REQUEST['member'] == "on")) {
+               if (!file_exists($member_sem)) {
+                       touch($member_sem);
+               }
+       }
+       if (!isset($_REQUEST['member']) or empty($_REQUEST['member'])) {
+               if (file_exists($member_sem)) {
+                       unlink($member_sem);
+               }
+       }
       
-               function WriteHTML($html)
-               {
-                   //HTML parser
-                   $html=str_replace("\n",' ',$html);
-                   $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
-                   foreach($a as $i=>$e)
-                   {
-                       if($i%2==0)
-                       {
-                           //Text
-                           if($this->HREF)
-                               $this->PutLink($this->HREF,$e);
-                           else
-                               $this->Write(5,$e);
-                       }
-                       else
-                       {
-                           //Tag
-                           if($e{0}=='/')
-                               $this->CloseTag(strtoupper(substr($e,1)));
-                           else
-                           {
-                               //Extract attributes
-                               $a2=explode(' ',$e);
-                               $tag=strtoupper(array_shift($a2));
-                               $attr=array();
-                               foreach($a2 as $v)
-                                   if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
-                                       $attr[strtoupper($a3[1])]=$a3[2];
-                               $this->OpenTag($tag,$attr);
-                           }
-                       }
-                   }
+       $edit_sem = "data/items/{$_REQUEST['entry']}/edit.txt";
+       if (isset($_REQUEST['edit']) and !empty($_REQUEST['edit']) and ($_REQUEST['edit'] == "on")) {
+               if (!file_exists($edit_sem)) {
+                       touch($edit_sem);
                }
-              
-               function OpenTag($tag,$attr)
-               {
-                   //Opening tag
-                   if($tag=='B' or $tag=='I' or $tag=='U')
-                       $this->SetStyle($tag,true);
-                   if($tag=='A')
-                       $this->HREF=$attr['HREF'];
-                   if($tag=='BR')
-                       $this->Ln(5);
+       }
+       if (!isset($_REQUEST['edit']) or empty($_REQUEST['edit'])) {
+               if (file_exists($edit_sem)) {
+                       unlink($edit_sem);
                }
-              
-               function CloseTag($tag)
-               {
-                   //Closing tag
-                   if($tag=='B' or $tag=='I' or $tag=='U')
-                       $this->SetStyle($tag,false);
-                   if($tag=='A')
-                       $this->HREF='';
+       }
+      
+       $lastmod_sem = "data/items/{$_REQUEST['entry']}/lastmod.txt";
+       if (isset($_REQUEST['lastmod']) and !empty($_REQUEST['lastmod']) and ($_REQUEST['lastmod'] == "on")) {
+               if (!file_exists($lastmod_sem)) {
+                       touch($lastmod_sem);
                }
-              
-               function SetStyle($tag,$enable)
-               {
-                   //Modify style and select corresponding font
-                   $this->$tag+=($enable ? 1 : -1);
-                   $style='';
-                   foreach(array('B','I','U') as $s)
-                       if($this->$s>0)
-                           $style.=$s;
-                   $this->SetFont('',$style);
+       }
+       if (!isset($_REQUEST['lastmod']) or empty($_REQUEST['lastmod'])) {
+               if (file_exists($lastmod_sem)) {
+                       unlink($lastmod_sem);
                }
-              
-               function PutLink($URL,$txt)
+       }
+      
+       if (isset($_REQUEST['pdf']) and !empty($_REQUEST['pdf']) and ($_REQUEST['pdf'] == "on")) {
+               if (!file_exists("data/items/{$_REQUEST['entry']}/pdf")) {
+                       mkdir("data/items/{$_REQUEST['entry']}/pdf");
+               }
+               if (!file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) {
+                       mkdir("data/items/{$_REQUEST['entry']}/pdf/file");
+               }
+               if (!file_exists("data/items/{$_REQUEST['entry']}/pdf/count")) {
+                       mkdir("data/items/{$_REQUEST['entry']}/pdf/count");
+               }
+      
+               $entry = $_REQUEST['entry'];
+               $author_file = "data/author.txt";
+               $title_file = "data/items/$entry/title.txt";
+               $date_file = "data/items/$entry/date.txt";
+               $body_file = "data/items/$entry/body.txt";
+      
+               $author = file_get_contents($author_file);
+               $title = file_get_contents($title_file);
+               $date = file_get_contents($date_file);
+      
+               $link = "<a href=http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . "?entry=" . $entry . ">http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . "?entry=" . $entry . "</a>";
+               $link = str_replace("pdf.php?entry=","index.php?entry=",$link);
+      
+               $body = file_get_contents($body_file);
+               $body = str_replace("\n","<br>",$body);
+      
+               $html = "<br><i>by $author</i><br><br>$date<br><br>Canonical Source<br>$link<br><br><br>$body";
+      
+               $filename = strtolower($title);
+               $filename = strtolower($_SERVER['SERVER_NAME']) . "-" . $entry . "-" . $filename . ".pdf";
+               $filename = str_replace(" ","-",$filename);
+               $filename = "data/items/$entry/pdf/file/$filename";
+      
+               require('fpdf.php');
+      
+               class PDF extends FPDF
                {
-                   //Put a hyperlink
-                   $this->SetTextColor(0,0,255);
-                   $this->SetStyle('U',true);
-                   $this->Write(5,$txt,$URL);
-                   $this->SetStyle('U',false);
-                   $this->SetTextColor(0);
+                       var $B;
+                       var $I;
+                       var $U;
+                       var $HREF;
+                      
+                       function PDF($orientation='P',$unit='mm',$format='letter')
+                       {
+                           //Call parent constructor
+                           $this->FPDF($orientation,$unit,$format);
+                           //Initialization
+                           $this->B=0;
+                           $this->I=0;
+                           $this->U=0;
+                           $this->HREF='';
+                       }
+              
+                       function WriteHTML($html)
+                       {
+                           //HTML parser
+                           $html=str_replace("\n",' ',$html);
+                           $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
+                           foreach($a as $i=>$e)
+                           {
+                               if($i%2==0)
+                               {
+                                   //Text
+                                   if($this->HREF)
+                                       $this->PutLink($this->HREF,$e);
+                                   else
+                                       $this->Write(5,$e);
+                               }
+                               else
+                               {
+                                   //Tag
+                                   if($e{0}=='/')
+                                       $this->CloseTag(strtoupper(substr($e,1)));
+                                   else
+                                   {
+                                       //Extract attributes
+                                       $a2=explode(' ',$e);
+                                       $tag=strtoupper(array_shift($a2));
+                                       $attr=array();
+                                       foreach($a2 as $v)
+                                           if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
+                                               $attr[strtoupper($a3[1])]=$a3[2];
+                                       $this->OpenTag($tag,$attr);
+                                   }
+                               }
+                           }
+                       }
+                      
+                       function OpenTag($tag,$attr)
+                       {
+                           //Opening tag
+                           if($tag=='B' or $tag=='I' or $tag=='U')
+                               $this->SetStyle($tag,true);
+                           if($tag=='A')
+                               $this->HREF=$attr['HREF'];
+                           if($tag=='BR')
+                               $this->Ln(5);
+                       }
+                      
+                       function CloseTag($tag)
+                       {
+                           //Closing tag
+                           if($tag=='B' or $tag=='I' or $tag=='U')
+                               $this->SetStyle($tag,false);
+                           if($tag=='A')
+                               $this->HREF='';
+                       }
+                      
+                       function SetStyle($tag,$enable)
+                       {
+                           //Modify style and select corresponding font
+                           $this->$tag+=($enable ? 1 : -1);
+                           $style='';
+                           foreach(array('B','I','U') as $s)
+                               if($this->$s>0)
+                                   $style.=$s;
+                           $this->SetFont('',$style);
+                       }
+                      
+                       function PutLink($URL,$txt)
+                       {
+                           //Put a hyperlink
+                           $this->SetTextColor(0,0,255);
+                           $this->SetStyle('U',true);
+                           $this->Write(5,$txt,$URL);
+                           $this->SetStyle('U',false);
+                           $this->SetTextColor(0);
+                       }
                }
+      
+               $pdf=new PDF();
+               $pdf->AddPage();
+               $pdf->SetTitle($title);
+               $pdf->SetAuthor($author);
+               $pdf->SetFont('Helvetica','B',14);
+               $pdf->WriteHTML($title);
+               $pdf->SetFont('Helvetica','',10);
+               $pdf->WriteHTML($html);
+               $pdf->Output($filename);
        }
-
-       $pdf=new PDF();
-       $pdf->AddPage();
-       $pdf->SetTitle($title);
-       $pdf->SetAuthor($author);
-       $pdf->SetFont('Helvetica','B',14);
-       $pdf->WriteHTML($title);
-       $pdf->SetFont('Helvetica','',10);
-       $pdf->WriteHTML($html);
-       $pdf->Output($filename);
-}
-
-if (!isset($_REQUEST['pdf']) or empty($_REQUEST['pdf'])) {
-       if (file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) {
-               rmdirr("data/items/{$_REQUEST['entry']}/pdf/file");
+      
+       if (!isset($_REQUEST['pdf']) or empty($_REQUEST['pdf'])) {
+               if (file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) {
+                       rmdirr("data/items/{$_REQUEST['entry']}/pdf/file");
+               }
        }
-}
 
-if (isset($_REQUEST['category']) and !empty($_REQUEST['category'])) {
-       if (!file_exists("data/categories")) {
-               mkdir("data/categories");
-       }
-       if ($_REQUEST['category'] == "unfiled") {
-               unlink("data/items/{$_REQUEST['entry']}/category.txt");
+       if (isset($_REQUEST['category']) and !empty($_REQUEST['category'])) {
+               if (!file_exists("data/categories")) {
+                       mkdir("data/categories");
+               }
+               if ($_REQUEST['category'] == "unfiled") {
+                       unlink("data/items/{$_REQUEST['entry']}/category.txt");
+               }
+               if (file_exists("data/categories/{$_REQUEST['category']}")) {
+                       $fp_category_txt = fopen("data/items/{$_REQUEST['entry']}/category.txt","w");
+                       fwrite($fp_category_txt, $_REQUEST['category']);
+                       fclose($fp_category_txt);
+               }
        }
-       if (file_exists("data/categories/{$_REQUEST['category']}")) {
-               $fp_category_txt = fopen("data/items/{$_REQUEST['entry']}/category.txt","w");
-               fwrite($fp_category_txt, $_REQUEST['category']);
-               fclose($fp_category_txt);
+      
+       $passwd_file = "data/items/{$_REQUEST['entry']}/passwd.txt";
+       if (isset($_REQUEST['passwd']) and !empty($_REQUEST['passwd']) and ($_REQUEST['passwd'] != "password")) {
+               $fp_passwd_txt = fopen("$passwd_file","w");
+               $passwd_crypt = sha1($_REQUEST['passwd']);
+               $passwd_crypt = md5($passwd_crypt);
+               $passwd_crypt = crypt($passwd_crypt, $passwd_crypt);
+               fwrite($fp_passwd_txt, $passwd_crypt);
+               fclose($fp_passwd_txt);
        }
-}
-
-$passwd_file = "data/items/{$_REQUEST['entry']}/passwd.txt";
-if (isset($_REQUEST['passwd']) and !empty($_REQUEST['passwd']) and ($_REQUEST['passwd'] != "password")) {
-       $fp_passwd_txt = fopen("$passwd_file","w");
-       $passwd_crypt = sha1($_REQUEST['passwd']);
-       $passwd_crypt = md5($passwd_crypt);
-       $passwd_crypt = crypt($passwd_crypt, $passwd_crypt);
-       fwrite($fp_passwd_txt, $passwd_crypt);
-       fclose($fp_passwd_txt);
-}
-if (!isset($_REQUEST['passwd']) or empty($_REQUEST['passwd'])) {
-       if (file_exists($passwd_file)) {
-               unlink($passwd_file);
+       if (!isset($_REQUEST['passwd']) or empty($_REQUEST['passwd'])) {
+               if (file_exists($passwd_file)) {
+                       unlink($passwd_file);
+               }
        }
 }
 
diff --git a/index.php b/index.php
index 831a75a..531c08f 100644
--- a/index.php
+++ b/index.php
@@ -1799,8 +1799,19 @@ foreach ($disp as $d) {
        }
 
        readfile("$dir/$d/title.txt");
-      
+
+       // start of wiki mod (20071130)
+
+       if (isset($_SESSION['logged_in']) and ($_SESSION['logged_in'] != $login_username) and file_exists("data/members/active/{$_SESSION['logged_in']}") and file_exists("data/wiki.txt") and file_exists("$dir/$d/edit.txt") and file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") and !file_exists("$dir/$d/passwd.txt")) {
+               echo '<a href=edit.php?entry=';
+               echo $d;
+               echo '><img src=images/widget.edit.png border=0 width=11 height=11 align=right alt="edit entry"></a>';
+       }
+
+       // end of wiki mod (20071130)
+
        if (isset($_SESSION['logged_in']) and ($_SESSION['logged_in'] == $login_username)) {
+
                echo '<a href=del.php?entry=';
                echo $d;
                echo '><img src=images/widget.del.png border=0 width=11 height=11 align=right alt="delete entry"></a>';
diff --git a/member.php b/member.php
index 0477b98..862295c 100644
--- a/member.php
+++ b/member.php
@@ -207,6 +207,12 @@ if (isset($_REQUEST['edit']) and !empty($_REQUEST['edit']) and ($_REQUEST['edit'
                unlink("data/members/active/{$_REQUEST['username']}/category.txt");
        }
 
+       // start of upload privileges cleanup if ro and nocat (20071204)
+       if (file_exists("data/members/active/{$_REQUEST['username']}/ul.txt") and !file_exists("data/members/active/{$_REQUEST['username']}/rw.txt") and !file_exists("data/members/active/{$_REQUEST['username']}/category.txt")) {
+               unlink("data/members/active/{$_REQUEST['username']}/ul.txt");
+       }
+       // end of upload privileges cleanup if ro and nocat (20071204)
+
        if (isset($_REQUEST['del']) and !empty($_REQUEST['del']) and ($_REQUEST['del'] == "on")) {
                function rmdirr($recurse_dirname)
                {
diff --git a/settings.php b/settings.php
index 23dcae4..551841c 100644
--- a/settings.php
+++ b/settings.php
@@ -237,6 +237,22 @@ if (!isset($_REQUEST['old']) or empty($_REQUEST['old'])) {
        }
 }
 
+// start of wiki mod (20071130)
+
+if (isset($_REQUEST['wiki']) and !empty($_REQUEST['wiki']) and ($_REQUEST['wiki'] == "on") and !file_exists("data/wiki.txt")) {
+       touch("data/wiki.txt");
+}
+
+if (!isset($_REQUEST['wiki']) or empty($_REQUEST['wiki'])) {
+       if (isset($_REQUEST['edit']) and ($_REQUEST['edit'] == "on")) {
+               if (file_exists("data/wiki.txt")) {
+                       unlink("data/wiki.txt");
+               }
+       }
+}
+
+// end of wiki mod (20071130)
+
 if (isset($_REQUEST['pf']) and !empty($_REQUEST['pf']) and ($_REQUEST['pf'] == "on") and !file_exists("data/pf.txt")) {
        touch("data/pf.txt");
 }
@@ -910,7 +926,7 @@ body {
        background-color: #FFFFFF;
 }
 
-p {
+p, td {
        font-size: 11px;
 }
 
@@ -1114,6 +1130,8 @@ if (file_exists("data/pf-censor.txt")) {
 
 <?php } ?>
 
+<tr><td>wiki</td><td><input type=checkbox name=wiki <?php if (file_exists("data/wiki.txt")) { echo checked; } ?>> Enable wiki-style editing.</td></tr>
+
 <tr><td <?php if (file_exists("data/bb.txt") and !file_exists("images/avatar.jpg") and !file_exists("images/avatar.gif") and !file_exists("images/avatar.png")) { echo "rowspan=10"; } if (file_exists("data/bb.txt") and (file_exists("images/avatar.jpg") or file_exists("images/avatar.gif") or file_exists("images/avatar.png"))) { echo "rowspan=11"; } ?>><p>bulletin board</p></td><td><p><input type=checkbox name=bb <?php if (file_exists("data/bb.txt")) { echo checked; } ?>> Enable simple bulletin board.</p></td></tr>
 <?php if (file_exists("data/bb.txt")) { ?>
 <tr><td><p><input type=checkbox name=reg <?php if (file_exists("data/reg.txt")) { echo checked; } ?>> Enable new user registration.</p></td></tr>
 
filedropmaj.git-01822e4.tar.bz2
147.95 KB
63 downloads
filedropmaj.git-01822e4.zip
201.96 KB
20 downloads
filedropmaj.git-0291349.tar.bz2
152.85 KB
61 downloads
filedropmaj.git-0291349.zip
211.90 KB
20 downloads
filedropmaj.git-02cb3b7.tar.bz2
151.48 KB
64 downloads
filedropmaj.git-02cb3b7.zip
209.82 KB
20 downloads
filedropmaj.git-0811dd5.tar.bz2
152.90 KB
60 downloads
filedropmaj.git-0811dd5.zip
211.90 KB
18 downloads
filedropmaj.git-083625f.tar.bz2
132.92 KB
59 downloads
filedropmaj.git-083625f.zip
179.59 KB
20 downloads
filedropmaj.git-0885d7b.tar.bz2
92.63 KB
60 downloads
filedropmaj.git-0885d7b.zip
132.34 KB
17 downloads
filedropmaj.git-09c6f33.tar.bz2
151.51 KB
59 downloads
filedropmaj.git-09c6f33.zip
202.12 KB
18 downloads
filedropmaj.git-0b26a85.tar.bz2
151.44 KB
57 downloads
filedropmaj.git-0b26a85.zip
209.75 KB
16 downloads
filedropmaj.git-0b32424.tar.bz2
151.66 KB
58 downloads
filedropmaj.git-0b32424.zip
206.72 KB
17 downloads
filedropmaj.git-0f3ac59.tar.bz2
152.14 KB
57 downloads
filedropmaj.git-0f3ac59.zip
211.45 KB
13 downloads
filedropmaj.git-11d4582.tar.bz2
143.02 KB
55 downloads
filedropmaj.git-11d4582.zip
195.12 KB
12 downloads
filedropmaj.git-17f105a.tar.bz2
137.96 KB
53 downloads
filedropmaj.git-17f105a.zip
193.02 KB
13 downloads
filedropmaj.git-183270b.tar.bz2
137.54 KB
57 downloads
filedropmaj.git-183270b.zip
187.93 KB
13 downloads
filedropmaj.git-197a49d.tar.bz2
152.03 KB
55 downloads
filedropmaj.git-197a49d.zip
211.32 KB
16 downloads
filedropmaj.git-1b9af25.tar.bz2
152.87 KB
53 downloads
filedropmaj.git-1b9af25.zip
211.96 KB
14 downloads
filedropmaj.git-1be2914.tar.bz2
149.30 KB
55 downloads
filedropmaj.git-1be2914.zip
203.09 KB
13 downloads
filedropmaj.git-1bed800.tar.bz2
138.15 KB
51 downloads
filedropmaj.git-1bed800.zip
190.15 KB
17 downloads
filedropmaj.git-1d330de.tar.bz2
151.65 KB
54 downloads
filedropmaj.git-1d330de.zip
210.80 KB
15 downloads
filedropmaj.git-1df190d.tar.bz2
151.72 KB
55 downloads
filedropmaj.git-1df190d.zip
210.85 KB
13 downloads
filedropmaj.git-1ee1167.tar.bz2
151.52 KB
56 downloads
filedropmaj.git-1ee1167.zip
202.16 KB
14 downloads
filedropmaj.git-2057838.tar.bz2
151.76 KB
52 downloads
filedropmaj.git-2057838.zip
202.36 KB
14 downloads
filedropmaj.git-2075213.tar.bz2
155.81 KB
52 downloads
filedropmaj.git-2075213.zip
208.39 KB
13 downloads
filedropmaj.git-211b7b0.tar.bz2
142.53 KB
55 downloads
filedropmaj.git-211b7b0.zip
194.64 KB
14 downloads
filedropmaj.git-2331f5a.tar.bz2
75.55 KB
55 downloads
filedropmaj.git-2331f5a.zip
100.32 KB
16 downloads
filedropmaj.git-25e3c4c.tar.bz2
147.57 KB
53 downloads
filedropmaj.git-25e3c4c.zip
201.46 KB
13 downloads
filedropmaj.git-2622313.tar.bz2
151.47 KB
50 downloads
filedropmaj.git-2622313.zip
206.44 KB
12 downloads
filedropmaj.git-273e4b2.tar.bz2
152.60 KB
52 downloads
filedropmaj.git-273e4b2.zip
203.40 KB
15 downloads
filedropmaj.git-2753e51.tar.bz2
136.37 KB
55 downloads
filedropmaj.git-2753e51.zip
184.34 KB
12 downloads
filedropmaj.git-2c1a589.tar.bz2
155.89 KB
49 downloads
filedropmaj.git-2c1a589.zip
208.69 KB
13 downloads
filedropmaj.git-2c3d544.tar.bz2
151.33 KB
51 downloads
filedropmaj.git-2c3d544.zip
206.23 KB
14 downloads
filedropmaj.git-2c85f72.tar.bz2
143.23 KB
50 downloads
filedropmaj.git-2c85f72.zip
194.84 KB
12 downloads
filedropmaj.git-2dc622c.tar.bz2
151.76 KB
48 downloads
filedropmaj.git-2dc622c.zip
202.35 KB
14 downloads
filedropmaj.git-2fabf8a.tar.bz2
151.35 KB
53 downloads
filedropmaj.git-2fabf8a.zip
206.24 KB
15 downloads
filedropmaj.git-322736b.tar.bz2
137.81 KB
45 downloads
filedropmaj.git-322736b.zip
190.18 KB
13 downloads
filedropmaj.git-374279c.tar.bz2
137.54 KB
46 downloads
filedropmaj.git-374279c.zip
189.58 KB
12 downloads
filedropmaj.git-37e852d.tar.bz2
151.32 KB
42 downloads
filedropmaj.git-37e852d.zip
206.21 KB
11 downloads
filedropmaj.git-38636de.tar.bz2
147.35 KB
42 downloads
filedropmaj.git-38636de.zip
201.16 KB
69 downloads
filedropmaj.git-3b25d71.tar.bz2
147.88 KB
35 downloads
filedropmaj.git-3b25d71.zip
201.85 KB
14 downloads
filedropmaj.git-3b6df7a.tar.bz2
153.39 KB
33 downloads
filedropmaj.git-3b6df7a.zip
204.55 KB
17 downloads
filedropmaj.git-3bf6bd2.tar.bz2
137.77 KB
38 downloads
filedropmaj.git-3bf6bd2.zip
190.16 KB
14 downloads
filedropmaj.git-3e012ff.tar.bz2
152.83 KB
34 downloads
filedropmaj.git-3e012ff.zip
211.89 KB
16 downloads
filedropmaj.git-4129ab8.tar.bz2
135.86 KB
42 downloads
filedropmaj.git-4129ab8.zip
184.30 KB
14 downloads
filedropmaj.git-414dbb4.tar.bz2
91.09 KB
40 downloads
filedropmaj.git-414dbb4.zip
130.29 KB
14 downloads
filedropmaj.git-43755d0.tar.bz2
150.25 KB
33 downloads
filedropmaj.git-43755d0.zip
204.44 KB
14 downloads
filedropmaj.git-4c20005.tar.bz2
55.59 KB
37 downloads
filedropmaj.git-4c20005.zip
74.20 KB
14 downloads
filedropmaj.git-4ccdbcd.tar.bz2
136.38 KB
38 downloads
filedropmaj.git-4ccdbcd.zip
185.22 KB
16 downloads
filedropmaj.git-4cd1a1c.tar.bz2
155.25 KB
35 downloads
filedropmaj.git-4cd1a1c.zip
207.88 KB
16 downloads
filedropmaj.git-4cf16d1.tar.bz2
76.32 KB
38 downloads
filedropmaj.git-4cf16d1.zip
101.80 KB
12 downloads
filedropmaj.git-4ec45a0.tar.bz2
131.16 KB
35 downloads
filedropmaj.git-4ec45a0.zip
172.66 KB
14 downloads
filedropmaj.git-4f73c22.tar.bz2
134.46 KB
35 downloads
filedropmaj.git-4f73c22.zip
182.45 KB
13 downloads
filedropmaj.git-5457969.tar.bz2
155.21 KB
38 downloads
filedropmaj.git-5457969.zip
207.63 KB
14 downloads
filedropmaj.git-57ee8a1.tar.bz2
145.49 KB
38 downloads
filedropmaj.git-57ee8a1.zip
198.12 KB
66 downloads
filedropmaj.git-592978d.tar.bz2
138.38 KB
36 downloads
filedropmaj.git-592978d.zip
190.58 KB
13 downloads
filedropmaj.git-5935b42.tar.bz2
135.60 KB
34 downloads
filedropmaj.git-5935b42.zip
183.28 KB
15 downloads
filedropmaj.git-5b443b6.tar.bz2
152.00 KB
36 downloads
filedropmaj.git-5b443b6.zip
211.07 KB
13 downloads
filedropmaj.git-5b4a9bf.tar.bz2
155.29 KB
34 downloads
filedropmaj.git-5b4a9bf.zip
207.93 KB
12 downloads
filedropmaj.git-5b6c01d.tar.bz2
147.13 KB
35 downloads
filedropmaj.git-5b6c01d.zip
200.86 KB
16 downloads
filedropmaj.git-5da45f7.tar.bz2
147.27 KB
36 downloads
filedropmaj.git-5da45f7.zip
201.02 KB
13 downloads
filedropmaj.git-5e53618.tar.bz2
75.57 KB
38 downloads
filedropmaj.git-5e53618.zip
100.78 KB
14 downloads
filedropmaj.git-5f8ca35.tar.bz2
136.39 KB
33 downloads
filedropmaj.git-5f8ca35.zip
185.32 KB
13 downloads
filedropmaj.git-61e3d7b.tar.bz2
153.52 KB
33 downloads
filedropmaj.git-61e3d7b.zip
204.73 KB
15 downloads
filedropmaj.git-62a635c.tar.bz2
155.90 KB
37 downloads
filedropmaj.git-62a635c.zip
208.73 KB
14 downloads
filedropmaj.git-6390d34.tar.bz2
138.39 KB
37 downloads
filedropmaj.git-6390d34.zip
190.56 KB
17 downloads
filedropmaj.git-649dfbe.tar.bz2
151.78 KB
37 downloads
filedropmaj.git-649dfbe.zip
210.91 KB
14 downloads
filedropmaj.git-65d6570.tar.bz2
151.63 KB
39 downloads
filedropmaj.git-65d6570.zip
210.80 KB
16 downloads
filedropmaj.git-660433f.tar.bz2
151.67 KB
36 downloads
filedropmaj.git-660433f.zip
206.68 KB
14 downloads
filedropmaj.git-6619ae5.tar.bz2
153.23 KB
47 downloads
filedropmaj.git-6619ae5.zip
204.28 KB
13 downloads
filedropmaj.git-68e4e3a.tar.bz2
135.13 KB
34 downloads
filedropmaj.git-68e4e3a.zip
182.91 KB
13 downloads
filedropmaj.git-6995297.tar.bz2
144.93 KB
38 downloads
filedropmaj.git-6995297.zip
197.18 KB
12 downloads
filedropmaj.git-69d6fd3.tar.bz2
143.23 KB
34 downloads
filedropmaj.git-69d6fd3.zip
194.89 KB
16 downloads
filedropmaj.git-6aa872a.tar.bz2
142.95 KB
39 downloads
filedropmaj.git-6aa872a.zip
195.11 KB
15 downloads
filedropmaj.git-6bad5c7.tar.bz2
147.04 KB
38 downloads
filedropmaj.git-6bad5c7.zip
200.79 KB
14 downloads
filedropmaj.git-6e96a2d.tar.bz2
152.13 KB
37 downloads
filedropmaj.git-6e96a2d.zip
207.21 KB
67 downloads
filedropmaj.git-73d46de.tar.bz2
138.42 KB
36 downloads
filedropmaj.git-73d46de.zip
190.59 KB
13 downloads
filedropmaj.git-75e0478.tar.bz2
144.54 KB
38 downloads
filedropmaj.git-75e0478.zip
196.70 KB
15 downloads
filedropmaj.git-784fc35.tar.bz2
143.07 KB
38 downloads
filedropmaj.git-784fc35.zip
195.01 KB
13 downloads
filedropmaj.git-7872a83.tar.bz2
138.51 KB
39 downloads
filedropmaj.git-7872a83.zip
190.69 KB
13 downloads
filedropmaj.git-788fb89.tar.bz2
138.30 KB
37 downloads
filedropmaj.git-788fb89.zip
191.26 KB
18 downloads
filedropmaj.git-796d8a3.tar.bz2
138.92 KB
35 downloads
filedropmaj.git-796d8a3.zip
191.24 KB
13 downloads
filedropmaj.git-79a5e8d.tar.bz2
132.43 KB
38 downloads
filedropmaj.git-79a5e8d.zip
176.90 KB
14 downloads
filedropmaj.git-7b3b2e0.tar.bz2
147.24 KB
36 downloads
filedropmaj.git-7b3b2e0.zip
201.05 KB
14 downloads
filedropmaj.git-7e28eed.tar.bz2
138.89 KB
33 downloads
filedropmaj.git-7e28eed.zip
191.24 KB
14 downloads
filedropmaj.git-8279296.tar.bz2
135.56 KB
38 downloads
filedropmaj.git-8279296.zip
183.25 KB
14 downloads
filedropmaj.git-84c17fe.tar.bz2
152.87 KB
38 downloads
filedropmaj.git-84c17fe.zip
211.90 KB
14 downloads
filedropmaj.git-87c5d5f.tar.bz2
135.78 KB
36 downloads
filedropmaj.git-87c5d5f.zip
183.64 KB
12 downloads
filedropmaj.git-8a48901.tar.bz2
147.27 KB
39 downloads
filedropmaj.git-8a48901.zip
201.06 KB
14 downloads
filedropmaj.git-8ad9892.tar.bz2
164.04 KB
36 downloads
filedropmaj.git-8ad9892.zip
224.42 KB
13 downloads
filedropmaj.git-8b4cf2a.tar.bz2
134.06 KB
37 downloads
filedropmaj.git-8b4cf2a.zip
180.78 KB
14 downloads
filedropmaj.git-8b7e38d.tar.bz2
138.04 KB
41 downloads
filedropmaj.git-8b7e38d.zip
190.39 KB
70 downloads
filedropmaj.git-8df6e40.tar.bz2
143.11 KB
38 downloads
filedropmaj.git-8df6e40.zip
194.66 KB
18 downloads
filedropmaj.git-8e80c84.tar.bz2
138.18 KB
36 downloads
filedropmaj.git-8e80c84.zip
190.30 KB
14 downloads
filedropmaj.git-8ec0fba.tar.bz2
138.37 KB
39 downloads
filedropmaj.git-8ec0fba.zip
191.39 KB
14 downloads
filedropmaj.git-8f7abf6.tar.bz2
153.36 KB
38 downloads
filedropmaj.git-8f7abf6.zip
211.80 KB
13 downloads
filedropmaj.git-923f11a.tar.bz2
138.14 KB
36 downloads
filedropmaj.git-923f11a.zip
191.03 KB
15 downloads
filedropmaj.git-955e82e.tar.bz2
42.71 KB
35 downloads
filedropmaj.git-955e82e.zip
59.77 KB
14 downloads
filedropmaj.git-95add4a.tar.bz2
151.23 KB
40 downloads
filedropmaj.git-95add4a.zip
205.91 KB
14 downloads
filedropmaj.git-96fe0ba.tar.bz2
137.68 KB
32 downloads
filedropmaj.git-96fe0ba.zip
190.34 KB
13 downloads
filedropmaj.git-99a90ce.tar.bz2
137.82 KB
39 downloads
filedropmaj.git-99a90ce.zip
191.20 KB
16 downloads
filedropmaj.git-9a69bb9.tar.bz2
143.19 KB
39 downloads
filedropmaj.git-9a69bb9.zip
194.70 KB
15 downloads
filedropmaj.git-9b6538e.tar.bz2
151.45 KB
36 downloads
filedropmaj.git-9b6538e.zip
202.15 KB
13 downloads
filedropmaj.git-9c4292d.tar.bz2
132.06 KB
37 downloads
filedropmaj.git-9c4292d.zip
176.93 KB
13 downloads
filedropmaj.git-9c78d40.tar.bz2
137.70 KB
37 downloads
filedropmaj.git-9c78d40.zip
190.49 KB
15 downloads
filedropmaj.git-9f1363f.tar.bz2
43.12 KB
40 downloads
filedropmaj.git-9f1363f.zip
60.31 KB
13 downloads
filedropmaj.git-a16c3eb.tar.bz2
90.22 KB
34 downloads
filedropmaj.git-a16c3eb.zip
128.62 KB
14 downloads
filedropmaj.git-a3aa72d.tar.bz2
153.00 KB
37 downloads
filedropmaj.git-a3aa72d.zip
203.86 KB
16 downloads
filedropmaj.git-a6886e4.tar.bz2
144.69 KB
37 downloads
filedropmaj.git-a6886e4.zip
196.95 KB
13 downloads
filedropmaj.git-a8669dc.tar.bz2
135.60 KB
35 downloads
filedropmaj.git-a8669dc.zip
183.34 KB
14 downloads
filedropmaj.git-a9477f1.tar.bz2
135.59 KB
37 downloads
filedropmaj.git-a9477f1.zip
183.45 KB
14 downloads
filedropmaj.git-aa285db.tar.bz2
151.73 KB
38 downloads
filedropmaj.git-aa285db.zip
210.85 KB
14 downloads
filedropmaj.git-aa6ae87.tar.bz2
135.44 KB
37 downloads
filedropmaj.git-aa6ae87.zip
183.88 KB
14 downloads
filedropmaj.git-ab6bc22.tar.bz2
151.71 KB
33 downloads
filedropmaj.git-ab6bc22.zip
210.84 KB
16 downloads
filedropmaj.git-adef726.tar.bz2
153.48 KB
36 downloads
filedropmaj.git-adef726.zip
212.32 KB
14 downloads
filedropmaj.git-afe5877.tar.bz2
144.73 KB
32 downloads
filedropmaj.git-afe5877.zip
197.01 KB
13 downloads
filedropmaj.git-b2d9f8e.tar.bz2
133.22 KB
35 downloads
filedropmaj.git-b2d9f8e.zip
179.27 KB
13 downloads
filedropmaj.git-b41f320.tar.bz2
151.56 KB
33 downloads
filedropmaj.git-b41f320.zip
209.85 KB
18 downloads
filedropmaj.git-b4432ce.tar.bz2
152.96 KB
34 downloads
filedropmaj.git-b4432ce.zip
203.86 KB
14 downloads
filedropmaj.git-b67b08f.tar.bz2
151.27 KB
36 downloads
filedropmaj.git-b67b08f.zip
206.15 KB
16 downloads
filedropmaj.git-b899831.tar.bz2
143.12 KB
35 downloads
filedropmaj.git-b899831.zip
194.60 KB
14 downloads
filedropmaj.git-b8b49c1.tar.bz2
132.59 KB
33 downloads
filedropmaj.git-b8b49c1.zip
178.90 KB
13 downloads
filedropmaj.git-b9c5bcf.tar.bz2
155.92 KB
34 downloads
filedropmaj.git-b9c5bcf.zip
208.70 KB
12 downloads
filedropmaj.git-bbddb1f.tar.bz2
151.63 KB
33 downloads
filedropmaj.git-bbddb1f.zip
209.92 KB
16 downloads
filedropmaj.git-bcaa744.tar.bz2
146.98 KB
37 downloads
filedropmaj.git-bcaa744.zip
200.79 KB
15 downloads
filedropmaj.git-c1ff9dc.tar.bz2
138.39 KB
38 downloads
filedropmaj.git-c1ff9dc.zip
191.43 KB
97 downloads
filedropmaj.git-c20c4b0.tar.bz2
151.64 KB
35 downloads
filedropmaj.git-c20c4b0.zip
210.79 KB
13 downloads
filedropmaj.git-c37f3f7.tar.bz2
145.45 KB
49 downloads
filedropmaj.git-c37f3f7.zip
198.11 KB
22 downloads
filedropmaj.git-c532394.tar.bz2
146.39 KB
37 downloads
filedropmaj.git-c532394.zip
199.91 KB
15 downloads
filedropmaj.git-c6317a4.tar.bz2
152.01 KB
36 downloads
filedropmaj.git-c6317a4.zip
207.08 KB
13 downloads
filedropmaj.git-c748176.tar.bz2
89.44 KB
34 downloads
filedropmaj.git-c748176.zip
126.35 KB
14 downloads
filedropmaj.git-c9ed81f.tar.bz2
135.56 KB
34 downloads
filedropmaj.git-c9ed81f.zip
183.28 KB
16 downloads
filedropmaj.git-c9f9b80.tar.bz2
138.50 KB
34 downloads
filedropmaj.git-c9f9b80.zip
190.66 KB
15 downloads
filedropmaj.git-ca65b73.tar.bz2
152.69 KB
35 downloads
filedropmaj.git-ca65b73.zip
207.87 KB
15 downloads
filedropmaj.git-cd80b77.tar.bz2
153.12 KB
35 downloads
filedropmaj.git-cd80b77.zip
212.01 KB
12 downloads
filedropmaj.git-cffbb2a.tar.bz2
138.22 KB
33 downloads
filedropmaj.git-cffbb2a.zip
190.28 KB
14 downloads
filedropmaj.git-d061ad7.tar.bz2
55.78 KB
47 downloads
filedropmaj.git-d061ad7.zip
74.39 KB
15 downloads
filedropmaj.git-d0af4d6.tar.bz2
57.28 KB
35 downloads
filedropmaj.git-d0af4d6.zip
78.56 KB
15 downloads
filedropmaj.git-d1caa0a.tar.bz2
144.57 KB
37 downloads
filedropmaj.git-d1caa0a.zip
196.63 KB
14 downloads
filedropmaj.git-d5679b5.tar.bz2
152.37 KB
34 downloads
filedropmaj.git-d5679b5.zip
207.52 KB
15 downloads
filedropmaj.git-d72f459.tar.bz2
147.90 KB
36 downloads
filedropmaj.git-d72f459.zip
201.92 KB
13 downloads
filedropmaj.git-d958c91.tar.bz2
144.67 KB
37 downloads
filedropmaj.git-d958c91.zip
196.88 KB
17 downloads
filedropmaj.git-d96784f.tar.bz2
135.58 KB
36 downloads
filedropmaj.git-d96784f.zip
183.46 KB
12 downloads
filedropmaj.git-da4b73f.tar.bz2
152.62 KB
33 downloads
filedropmaj.git-da4b73f.zip
203.48 KB
13 downloads
filedropmaj.git-dd24240.tar.bz2
138.27 KB
33 downloads
filedropmaj.git-dd24240.zip
190.45 KB
72 downloads
filedropmaj.git-e11e772.tar.bz2
152.09 KB
33 downloads
filedropmaj.git-e11e772.zip
211.33 KB
14 downloads
filedropmaj.git-e61478e.tar.bz2
135.95 KB
37 downloads
filedropmaj.git-e61478e.zip
183.91 KB
14 downloads
filedropmaj.git-e7a2547.tar.bz2
133.80 KB
33 downloads
filedropmaj.git-e7a2547.zip
180.05 KB
16 downloads
filedropmaj.git-e8a3b95.tar.bz2
138.15 KB
37 downloads
filedropmaj.git-e8a3b95.zip
191.04 KB
12 downloads
filedropmaj.git-eac86d5.tar.bz2
155.65 KB
33 downloads
filedropmaj.git-eac86d5.zip
208.28 KB
12 downloads
filedropmaj.git-ed83bf9.tar.bz2
135.16 KB
34 downloads
filedropmaj.git-ed83bf9.zip
182.91 KB
15 downloads
filedropmaj.git-ee50d40.tar.bz2
135.59 KB
36 downloads
filedropmaj.git-ee50d40.zip
183.48 KB
16 downloads
filedropmaj.git-efdb4df.tar.bz2
155.87 KB
36 downloads
filedropmaj.git-efdb4df.zip
208.72 KB
14 downloads
filedropmaj.git-f1554f8.tar.bz2
151.30 KB
37 downloads
filedropmaj.git-f1554f8.zip
206.22 KB
16 downloads
filedropmaj.git-f72a07b.tar.bz2
153.44 KB
37 downloads
filedropmaj.git-f72a07b.zip
212.11 KB
17 downloads
filedropmaj.git-f7ea5a1.tar.bz2
147.46 KB
36 downloads
filedropmaj.git-f7ea5a1.zip
201.32 KB
17 downloads
filedropmaj.git-f8a7353.tar.bz2
138.49 KB
36 downloads
filedropmaj.git-f8a7353.zip
190.66 KB
18 downloads
filedropmaj.git-fb84a8d.tar.bz2
137.61 KB
41 downloads
filedropmaj.git-fb84a8d.zip
190.70 KB
18 downloads
filedropmaj.git-fdcf5d3.tar.bz2
152.34 KB
40 downloads
filedropmaj.git-fdcf5d3.zip
207.53 KB
17 downloads
filedropmaj.git-feca42d.tar.bz2
132.90 KB
39 downloads
filedropmaj.git-feca42d.zip
179.44 KB
20 downloads