[ PHPXref.com ] [ Generated: Sun Jul 20 21:03:16 2008 ] [ Wikepage 2006.1b ]
[ Index ]     [ Variables ]     [ Functions ]     [ Classes ]     [ Constants ]     [ Statistics ]

title

Body

[close]

/ -> index.php (source)

   1  <?php
   2  /*        Cyrocom-WIKEPAGE 2006.1b Opus 8 "Fermi-Dirac" Wiki/Personal Site Engine

   3          Copyleft (C) 2006, 2005, 2004. Ankara, Turkey.

   4          http://www.wikepage.org/

   5          For latest licence please visit [ www.gnu.org/copyleft/gpl.html ]

   6  

   7          Tipiwiki2 : Copyleft (C) 2003, Andreas Zwinkau, andi@buxach.de, GPL

   8  */
   9  
  10  // Logo or Sitename?

  11  // ----------------

  12  // Put // for deactivate logo and remove // infront of $sitename 

  13  // and $siteheader for activate sitename on page.

  14  //$logo="logo.gif";

  15  $sitename="My Site";
  16  $siteheader="Your site's slogan here.";
  17  
  18  // Site Owner

  19  // ----------

  20  $author="CyrocomWikepage";
  21  
  22  // Banner Information

  23  // ------------------

  24  $bannerwriting="ADVERTISEMENT";
  25  //Use http:// for external links.. 

  26  $bannerlink="http://www.wikepage.org/";
  27  // Remove // before $bannerimage for activate banner.

  28  $bannerimage="wikebanner.gif";
  29  
  30  // Theme

  31  $theme="2006-1";
  32  
  33  // Upload config

  34  // ------------------

  35  // Set maximum file limit (in bits) (~1Mb in default)

  36  $maxlimit = 8500000; 
  37  // Set allowed extensions (split using comma)

  38  $allowed_ext = "jpg,gif,png,jpeg,pdf,doc,xls,ppt,odb,odm,odt,ods,odp";
  39  // Allow file overwrite? yes/no 

  40  $overwrite = "yes"; 
  41  
  42  error_reporting(1);
  43  
  44  // Default Language

  45  $lang_def="en";
  46  
  47  // Timezone according to Greenwich

  48  $timezone = -6;
  49  
  50  /*

  51   ++++++++ DON'T MAKE CHANGES BELOW HERE ! (unless you're a developer) ++++++++ 

  52  */
  53  session_start();
  54  
  55  $wiki_get = "wiki";
  56  $bannerimage = "data/files/".$bannerimage;
  57  
  58  if ($version_info[0] < 5 ) {
  59  $servpath = $HTTP_SERVER_VARS['PATH_TRANSLATED'];
  60  
  61  }else{
  62      $servpath = $HTTP_SERVER_VARS['SCRIPT_FILENAME'];
  63  }
  64  
  65  $info = pathinfo( $servpath );
  66  $path = $info[ 'dirname' ];
  67  
  68  if ($version_info[0] < 4 || ($version_info[0] > 3 && $version_info[1] < 1)) {
  69          $_POST = $HTTP_POST_VARS;
  70          $_GET = $HTTP_GET_VARS;
  71  }
  72  
  73  if( isset( $_GET["lng"] ) ){
  74      $lang_def=$_GET["lng"];
  75      $_SESSION['lang'] = $lang_def;
  76  }
  77  
  78  if(strlen($_SESSION['lang']) < 5 && strlen($_SESSION['lang']) <> 0){
  79      $lang_def = $_SESSION["lang"];
  80  }
  81  
  82  $langu=$lang_def;
  83  
  84  //if lng variable is wrong, take default

  85  @ $fp = fopen("lang/$lang.inc","a", 1);
  86  if (!$fp){
  87       $langu=$lang_def;
  88  }
  89  fclose($fp);
  90                 
  91  include ('data/passwd.php');
  92  include('lang/'.$langu.'.inc');
  93  $version_info = explode('.', phpversion());
  94  
  95  
  96  // some special chars

  97  function htmlchars ($string) {
  98  $string= str_replace("&", "&amp;", $string);
  99  $string= str_replace("\"", "&quot;", $string);
 100  $string= str_replace("<", "&lt;", $string);
 101  $string= str_replace(">", "&gt;", $string);
 102  return $string;
 103  }
 104  
 105  // little security enchancement

 106  function secure ($string){
 107  $string = str_replace("..","",$string);
 108  $string = str_replace("%2E%2E","",$string);
 109  $string = str_replace(".%2E","",$string);
 110  $string = str_replace("%2E.","",$string);
 111  $string = str_replace(".php","_php",$string);
 112  $string = str_replace(".phtml","_phtml",$string);
 113  $string = str_replace(".php3","_php3",$string);
 114  return $string;
 115  }
 116  
 117  function delpagefile($depa,$defi){
 118      global $data_dir,$lang;
 119      if($depa != ""){
 120          $willdelete="$data_dir/".$depa;
 121          @unlink(secure($willdelete));
 122      }
 123          
 124      if($defi != ""){
 125          $willdelete="data/files/".$defi;
 126          @unlink(secure($willdelete));
 127      }
 128      die($lang['processesok']." <p> <a href=\"index.php\">".$lang['returnhomepage']."</a>");
 129  }
 130  
 131  function findpage() {
 132          global $wiki_get, $name, $data_dir, $langu;
 133          require ('lang/'.$langu.'.inc');
 134          $name = basename($name);
 135          $content = "";
 136          $formular = "<form method=\"get\" action=\"index.php\">\n<input type=\"hidden\" name=\"$wiki_get\" value=\"$name\" /><table id=\"find\">\n<tr>\n<td>".$lang['searchpage']."</td>\n<td><input type=\"text\" name=\"PageName\" /></td>\n</tr><tr>\n<td>".$lang['orsearchcontent']."</td>\n<td><input type=\"text\" name=\"PageContent\" /></td>\n</tr><tr>\n<td colspan=\"2\"><input type=\"submit\" value=\"".$lang['search']."\" /></td>\n</tr>\n</table>\n</form>\n";
 137          // get all pages in folder

 138          $handle = opendir("$data_dir");
 139          while( $newdir = readdir($handle) )
 140                  if(preg_match("/([\w]+)/",$newdir) )
 141                          $allpages[] = $newdir;
 142          // Look at wanted pages

 143          if( $_GET["PageName"] != "" ) {
 144                  $pagename = $_GET["PageName"];
 145                  $content .= "<h3>".$lang['searchingpage']." $pagename </h3>\n<ul>\n";
 146                  foreach ($allpages as $page)
 147                          if (preg_match("/$pagename/i",$page) )
 148                                  $content .= "<li><a href=\"index.php?$wiki_get=$page\">$page</a></li>\n";
 149                          $content .= "</ul>\n";
 150          }
 151          // Look at wanted content

 152          if ( $_GET["PageContent"] != "" ) {
 153                  $pagecontent = $_GET["PageContent"];
 154                  $content .= "<h3>".$lang['searchingcontent']." $pagecontent </h3>\n<ul>\n";
 155                  foreach ($allpages as $page) {
 156                          $current = implode( "", file("$data_dir/$page") );
 157                          if (preg_match("/$pagecontent/i",$current) )
 158                                  $content .= "<li><a href=\"index.php?$wiki_get=$page\">$page</a></li>\n";
 159                  }
 160                  $content .= "</ul>\n";
 161          }
 162          if( $content == "" )
 163                  $content = $formular;
 164          return $content;
 165  }
 166  
 167  function recentchanges() {
 168          global $data_dir, $timezone, $wiki_get;
 169          $content = "";
 170          $handle = opendir($data_dir);
 171          $allpages = array();
 172          while( $newfile = readdir($handle) )
 173                  if(preg_match("/([\w]+)/",$newfile) )
 174                          $allpages[] = $newfile;
 175          $max_pages = sizeof($allpages) / 3;
 176          if( $max_pages < 30 )
 177                  $max_pages = 30;
 178          $counter = 0;
 179          $date = mktime(12,0,0,date('m'),date('d'));
 180          $day = 0;
 181          while( $counter < $max_pages && $day < 40 ) {
 182                  $today = array();
 183                  foreach( $allpages as $page ) {
 184                          $filetime = filemtime("$data_dir/$page");
 185                          if( (($filetime + 43199) > $date) && (($filetime - 43200) < $date) )
 186                                  $today[] = $page;
 187                  }
 188                  if( sizeof($today) > 0 ) {
 189                          $content .= "<h3>".date("d.m.Y",$date)."</h3>\n<ul>\n";
 190                          foreach( $today as $page )
 191                                  $content .= "<li><a href=\"index.php?$wiki_get=$page\">$page</a> (".date("G:i", filemtime("$data_dir/$page")+(3600*$timezone) ).")</li>";
 192                          $content .= "</ul>\n";
 193                  }
 194                  $counter += sizeof($today);
 195                  $date -= 86400;
 196                  $day += 1;
 197          }
 198          $content .= "</ul>\n";
 199          return $content;
 200  }
 201  
 202  function allpages() {
 203          global $data_dir, $wiki_get;
 204          // list all pages

 205          $content = "<ul>\n";
 206          $handle = opendir($data_dir);
 207          while( $newfile = readdir($handle) )
 208                  if(preg_match("/([\w]+)/",$newfile) )
 209                          $allpages[] = $newfile;
 210          sort($allpages);
 211          foreach( $allpages as $page )
 212                  $content .= "<li><a href=\"index.php?$wiki_get=$page\">$page</a></li>\n";
 213          $content .= "</ul>\n";
 214          return $content;
 215  }
 216  
 217  function yonetim() {
 218          global $data_dir, $wiki_get, $adminpassword, $passworks, $langu, $page_admin;
 219          require ('lang/'.$langu.'.inc');
 220          // admin part     

 221          if($adminpassword){
 222              $content .= "<form method=\"post\" action=\"index.php\">\n<input type=\"hidden\" name=\"wiki\" value=\"".$page_admin."\" /><table id=\"find\">\n<tr><td colspan=\"2\"><b>".$lang['password']."</b></td></tr><tr>\n<td>".$lang['oldadminpass']."</td>\n<td><input type=\"password\" name=\"password0\" /></td>\n</tr><tr><td colspan=\"2\"><b>".$lang['changepass']."</b></td></tr><tr>\n<td>".$lang['adminpass']."</td>\n<td><input type=\"password\" name=\"password1\" /></td>\n</tr><tr>\n<td>".$lang['againadminpass']."</td>\n<td><input type=\"password\" name=\"password2\" /></td>\n</tr><tr><td colspan=\"2\"><b>".$lang['othersett']."</b></td></tr><tr>\n<td>".$lang['passless']."</td>\n<td><input type=\"checkbox\" name=\"passwrks\" value=\"checkbox\" ";
 223              if ($passworks == "1"){
 224              $content .= "checked></td>\n</tr>";
 225              }else{
 226              $content .= "></td>\n</tr>";
 227              }
 228          
 229              $content .= "<tr>\n<td>".$lang['delpage']."</td>\n<td><input type=\"text\" name=\"delpage\" /></td>\n</tr><tr>\n<td>".$lang['delfile']."</td>\n<td><input type=\"text\" name=\"delfile\" /></td>\n</tr><tr>\n<td colspan=\"2\"><input type=\"submit\" value=\"".$lang['change']."\" /></td>\n</tr>\n</table>\n</form>\n";
 230          }else{
 231              $content .= "<form method=\"post\" action=\"index.php\">\n<input type=\"hidden\" name=\"wiki\" value=\"".$page_admin."\" /><table id=\"find\">\n<tr>\n<tr><td colspan=\"2\"><b>".$lang['setpass']."</b></td></tr><td>".$lang['adminpass']."</td>\n<td><input type=\"password\" name=\"password1\" /></td>\n</tr><tr>\n<td>".$lang['againadminpass']."</td>\n<td><input type=\"password\" name=\"password2\" /></td>\n</tr><tr>\n<td colspan=\"2\"><input type=\"submit\" value=\"".$lang['change']."\" /></td>\n</tr>\n</table>\n</form>\n";
 232          }
 233          
 234          
 235  return $content;
 236  }
 237  
 238  // Wiki Style to HTML

 239  function filter($raw) {
 240          global $wiki_get, $langu;
 241          require ('lang/'.$langu.'.inc');
 242          $filtered = stripslashes(htmlchars("\n\n".$raw));
 243          // php-special

 244          $filtered = str_replace("\r\n","\n",$filtered);    
 245          // [ url | link ] outlinks

 246          $filtered = preg_replace("/\[((http|ftp|https|mailto):\/\/[\w\.\:\@\?~\%=\+\-\/]+)\|([\w ]+)\]/i","<a href=\"\\1\" rel=\"nofollow\">\\3 <img src=\"data/files/ext.gif\" border=\"0\" class=\"wikiimage\" /></a>", $filtered);
 247          $filtered = preg_replace("/\[([\w\.\:\~@\?~\%=\+\-\/]+)\|([\w ]+)\]/i","<a href=\"\\1\">\\2</a>", $filtered);
 248          // linked picture [ url | [picture] ]  

 249          $filtered = preg_replace("/\[((http|ftp|https|mailto):\/\/[\w\.\:\@\?~\%=\+\-\/]+)\|([\w\.:\/~@\,\?\%=\+\-;#&]+\.(png|gif|jpg))\]/i","<a href=\"\\1\" rel=\"nofollow\"><img src=\"\\3\" border=\"0\" class=\"wikiimage\" /></a>", $filtered);

 250          $filtered = preg_replace("/\[([\w\.\:\~@\?~\%=\+\-\/]+)\|([\w\.:\/~@\,\?\%=\+\-;#&]+\.(png|gif|jpg))\]/i","<a href=\"\\1\" rel=\"nofollow\"><img src=\"data/files/\\2\" border=\"0\" class=\"wikiimage\" /></a>", $filtered);

 251            // pictures [ url ]

 252          $filtered = preg_replace("/\[((http|ftp|https|mailto):\/\/[\w\.\:\@\?~\%=\+\-\/]+\.(png|gif|jpg))\]/","<img src=\"\\1\" border=\"0\" class=\"wikiimage\" />",$filtered);
 253            $filtered = preg_replace("/\[([\w\.:\/~@\,\?\%=\+\-;#&]+\.(png|gif|jpg))\]/","<img src=\"data/files/\\1\" border=\"0\" class=\"wikiimage\" />",$filtered);

 254          // plain URLs

 255          $filtered = preg_replace("/\[((http|ftp|https|mailto):\/\/[\w\.:\/~@\,\?\%=\+\-;#&]+)\|([\w\:\#\- ]+)\]/i","<a href=\"\\1\">\\3</a>", $filtered);

 256          // []'ed words

 257          $filtered = preg_replace("/\[([\w]+)\]/","<a href=\"index.php?$wiki_get=\\1\">\\1</a>", $filtered);
 258          // Headers <h1><h2><h3>

 259          $filtered = preg_replace("/\n(!!!)(.+)\n/","</p>\n<h3>\\2</h3>\n<p>",$filtered);
 260          $filtered = preg_replace("/\n(!!)(.+)\n/","</p>\n<h2>\\2</h2>\n<p>",$filtered);
 261          $filtered = preg_replace("/\n(!)(.+)\n/","</p>\n<h1>\\2</h1>\n<p>",$filtered);
 262          // Decorations (bold, italic, underlined, boxed)

 263          $filtered = preg_replace("/\*\*(.+)\*\*/U","<strong>\\1</strong>", $filtered);
 264          $filtered = preg_replace("/__(.+)__/U","<u>\\1</u>", $filtered);
 265          $filtered = preg_replace("/\'\'(.+)\'\'/U","<em>\\1</em>", $filtered);
 266          $filtered = preg_replace("/\:\:(.+)\:\:/U","<span class=\"box\">\\1</span>", $filtered);
 267          // horizontal line

 268          $filtered = preg_replace("/\n---.*\n/","\n<hr class=\"wiki\"/>\n",$filtered);
 269          // lists <ul>

 270          $filtered = preg_replace("/(?<=[\n>])\* (.+)\n/","<li>\\1</li>",$filtered);
 271          $filtered = preg_replace("/<li>(.+)\<\/li>/","</p><ul>\\0</ul><p>",$filtered);
 272          // take out pre and post new lines

 273          $filtered = preg_replace("/^(\n+)/","",$filtered);
 274          $filtered = preg_replace("/\n{3,}/","\n\n",$filtered);
 275          // <pre> blocks

 276          $filtered = preg_replace("/(?<=\n) (.*)(\n)/","<pre>\\1</pre>", $filtered);
 277          // html new lines <br />

 278          $filtered = str_replace("\n","<br />\n",$filtered);
 279          $filtered = str_replace("</pre><pre>","\n", $filtered);
 280          // add specials, control first for improper usage

 281          if( strpos($filtered, "&lt;".$lang['abbrev_findpage']."&gt;") !== FALSE )
 282                  $filtered = str_replace("&lt;".$lang['abbrev_findpage']."&gt;", findpage(), $filtered);
 283          if( strpos($filtered, "&lt;".$lang['abbrev_admin']."&gt;") !== FALSE )
 284                  $filtered = str_replace("&lt;".$lang['abbrev_admin']."&gt;", yonetim(), $filtered);
 285          if( strpos($filtered, "&lt;".$lang['abbrev_allpages']."&gt;") !== FALSE )
 286                  $filtered = str_replace("&lt;".$lang['abbrev_allpages']."&gt;", allpages(), $filtered);
 287          if( strpos($filtered, "&lt;".$lang['abbrev_recentchanges']."&gt;") !== FALSE )
 288                  $filtered = str_replace("&lt;".$lang['abbrev_recentchanges']."&gt;", recentchanges(), $filtered);
 289             //html table

 290             $filtered = preg_replace("/\|\|\|\|(.+)\|\|\|\|/U","<table><tr><td>\\1</td></tr></table>", $filtered);
 291             $filtered = preg_replace("/(.+)\|\|/U","\\1</td><td>", $filtered);
 292             $filtered = preg_replace("/<\/table><br \/>\n<table>/","", $filtered);
 293             //font color

 294             $filtered = preg_replace("/\#\#(.+)\#\#/U","<font color=\\1>", $filtered);
 295             $filtered = preg_replace("/(.+)\#\#/U","\\1</font>", $filtered);
 296             // html beauty

 297             $filtered = str_replace("</li>","</li>\n",$filtered);
 298             $filtered = str_replace("ul>","ul>\n",$filtered);
 299             $filtered = str_replace("<br />\n<h","\n<h", $filtered);
 300             $filtered = preg_replace("/(<\/h[1-3]>)<br \/>\n/","\\1\n", $filtered);
 301             $filtered = str_replace("<p></p>","",$filtered);
 302  
 303  
 304             return $filtered;
 305  }
 306  
 307  // output of program

 308  function output($data, $file) {
 309      global $sitename, $siteheader, $bannerwriting, $bannerimage, $lang, $langu, $encoding, $author, $logo, $theme, $passworks;    
 310      require ('lang/'.$langu.'.inc');
 311          $pagename = basename($file);
 312          $modified = "";
 313          if( file_exists($file) ) {
 314                  $modified = date("H:i:s d/m/Y",filemtime($file));
 315          }
 316          $data = str_replace("<!--lang_edit-->",$lang['edit'],$data);
 317          $data = str_replace("<!--theme-->",$theme,$data);
 318          $data = str_replace("<!--lang_recent-->",$lang['recent'],$data);
 319          $data = str_replace("<!--lang_advsearch-->",$lang['advsearch'],$data);
 320          $data = str_replace("<!--lang_all-->",$lang['all'],$data);
 321          $data = str_replace("<!--lang_admin-->",$lang['admin'],$data);
 322          $data = str_replace("<!--lang_index-->",$lang['index'],$data);
 323          $data = str_replace("<!--lang_lastupdate-->",$lang['lastupdate'],$data);
 324          $data = str_replace("<!--lang_editing-->",$lang['editing'],$data);
 325          if($passworks == "0"){
 326              $buf=$lang['pass']."<input type=\"password\" name=\"mypassword\">";
 327          }else{
 328              $buf="";
 329          }
 330          $data = str_replace("<!--lang_pass-->",$buf,$data);
 331          $data = str_replace("<!--lang_mainmenu-->",$lang['mainmenu'],$data);
 332          $data = str_replace("<!--lang_pagecontents-->",$lang['pagecontents'],$data);
 333          $data = str_replace("<!--lang_search-->",$lang['search'],$data);
 334          $data = str_replace("<!--lang_navi-->",$lang['navi'],$data);
 335          $data = str_replace("<!--copyleft-->",$lang['copyleft'],$data);
 336          $data = str_replace("<!--encoding-->",$encoding,$data);
 337          $data = str_replace("<!--author-->",$author,$data);
 338          $data = str_replace("<!--wikiname-->",$pagename,$data);
 339          $data = str_replace("<!--sitename-->",$sitename,$data);
 340          $data = str_replace("<!--siteheader-->",$siteheader,$data);
 341          $data = str_replace("<!--bannerwriting-->",$bannerwriting,$data);
 342          $data = str_replace("<!--bannerimage-->",$bannerimage,$data);
 343          $data = str_replace("<!--lastupdate-->",$modified,$data);
 344          $data = str_replace("<!--logo-->",$logo,$data);
 345          $data = str_replace("<!--writingrules-->",$lang['writingrules'],$data);
 346          echo $data;
 347  }
 348  // load page content

 349  function showpage($file) {
 350          global $theme, $wiki_get, $langu;
 351          $content = "";
 352          $menucontent ="";
 353          // load file

 354          $raw = implode("", file($file) );
 355          // load menu

 356          $raw2 = implode("", file('data/'.$langu.'_menu.txt') );
 357          // filter!

 358          $content = filter( $raw ) . $content;
 359          $menucontent = filter( $raw2 ) . $menucontent;
 360          // load template

 361          $template = implode( "", file('theme/'.$theme.'/index.html') );
 362          $whole = str_replace("<!--wikicontent-->",$content,$template);
 363          $whole = str_replace("<!--menucontent-->",$menucontent,