Example #1
0
function HandleRecipeCheck($pagename, $auth = 'admin')
{
    global $RecipeListUrl, $Version, $RecipeInfo, $RecipeCheckFmt, $PageStartFmt, $PageEndFmt;
    $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
    if (!$page) {
        Abort('?admin access required');
    }
    $cvinfo = GetRecipeList($RecipeListUrl);
    if (!$cvinfo) {
        $msg = "Unable to retrieve cookbook data from {$RecipeListUrl}\n";
        $allow_url_fopen = ini_get('allow_url_fopen');
        if (!$allow_url_fopen) {
            $msg .= "\n      <br /><br />It appears that your PHP environment isn't allowing\n      the recipelist to be downloaded from pmwiki.org  \n      (allow_url_fopen&nbsp;=&nbsp;{$allow_url_fopen}).";
        }
        Abort($msg);
    }
    $rinfo['PmWiki:Upgrades'] = $Version;
    ScanRecipeInfo('cookbook', $cvinfo);
    foreach ((array) $RecipeInfo as $r => $v) {
        if (!@$v['Version']) {
            continue;
        }
        $r = preg_replace('/^(?!PmWiki:)(Cookbook[.:])?/', 'Cookbook:', $r);
        $rinfo[$r] = $v['Version'];
    }
    $markup = "!!Recipe status for {\$PageUrl}\n" . RecipeTable($rinfo, $cvinfo);
    $html = MarkupToHTML($pagename, $markup);
    SDV($RecipeCheckFmt, array(&$PageStartFmt, $html, &$PageEndFmt));
    PrintFmt($pagename, $RecipeCheckFmt);
}
function HandleRename($pagename)
{
    global $HandleRenameFmt, $PageStartFmt, $PageRenameFmt, $PageEndFmt;
    SDV($HandleRenameFmt, array(&$PageStartFmt, &$PageRenameFmt, &$PageEndFmt));
    $PageRenameFmt = str_replace('$UnqualifiedLinks', FmtLinksList($pagename, array('o' => 'fmt=pglist', 'list' => 'unqualified')), str_replace('$RenameGroup', FmtGroupList($pagename, array('o' => 'fmt=pickgroup')), $PageRenameFmt));
    PrintFmt($pagename, $HandleRenameFmt);
}
Example #3
0
function HandleCrypt($pagename, $auth='read') {
  global $ScriptUrl,$HTMLStartFmt,$HTMLEndFmt;
  PrintFmt($pagename,$HTMLStartFmt);
  $passwd = stripmagic(@$_POST["passwd"]);
  echo FmtPageName(
    "<form action='{\$ScriptUrl}' method='POST'><p>
      Enter password to encrypt: 
      <input type='text' name='passwd' value='"
      . PHSC($passwd, ENT_QUOTES) ."' />
      <input type='submit' />
      <input type='hidden' name='n' value='{\$FullName}' />
      <input type='hidden' name='action' value='crypt' /></p></form>",
    $pagename);
  if ($passwd) { 
    $crypt = pmcrypt($passwd);
    echo "<p class='vspace'>Encrypted password = $crypt</p>"; 
    echo "<p class='vspace'>To set a site-wide password, insert the line below
      in your <i>config.php</i> file, <br />replacing <tt>'type'</tt> with
      one of <tt>'admin'</tt>, <tt>'read'</tt>, <tt>'edit'</tt>,
      or <tt>'attr'</tt>.  <br />See <a 
      href='$ScriptUrl?n=PmWiki.PasswordsAdmin'>PasswordsAdmin</a> for more
      details.</p>
      <pre class='vspace'>  \$DefaultPasswords['type']='$crypt';</pre>";
  }
  PrintFmt($pagename,$HTMLEndFmt);
}
Example #4
0
function HTTPBasicAuth($pagename, $level, $authprompt = true)
{
    global $AuthRealmFmt, $AuthDeniedFmt, $DefaultPasswords, $AllowPassword, $GroupAttributesFmt;
    SDV($GroupAttributesFmt, '$Group/GroupAttributes');
    SDV($AllowPassword, 'nopass');
    SDV($AuthRealmFmt, $GLOBALS['WikiTitle']);
    SDV($AuthDeniedFmt, 'A valid password is required to access this feature.');
    $page = ReadPage($pagename);
    if (!$page) {
        return false;
    }
    $passwd = @$page["passwd{$level}"];
    if ($passwd == "") {
        $grouppg = ReadPage(FmtPageName($GroupAttributesFmt, $pagename));
        $passwd = @$grouppg["passwd{$level}"];
        if ($passwd == '') {
            $passwd = @$DefaultPasswords[$level];
        }
        if ($passwd == '') {
            $passwd = @$page["passwdread"];
        }
        if ($passwd == '') {
            $passwd = @$grouppg["passwdread"];
        }
        if ($passwd == '') {
            $passwd = @$DefaultPasswords['read'];
        }
    }
    if ($passwd == '') {
        return $page;
    }
    if (crypt($AllowPassword, $passwd) == $passwd) {
        return $page;
    }
    @session_start();
    if (@$_SERVER['PHP_AUTH_PW']) {
        @$_SESSION['authpw'][$_SERVER['PHP_AUTH_PW']]++;
    }
    $authpw = array_keys((array) @$_SESSION['authpw']);
    foreach (array_merge((array) $DefaultPasswords['admin'], (array) $passwd) as $pwchal) {
        foreach ($authpw as $pwresp) {
            if (@crypt($pwresp, $pwchal) == $pwchal) {
                return $page;
            }
        }
    }
    if (!$authprompt) {
        return false;
    }
    $realm = FmtPageName($AuthRealmFmt, $pagename);
    header("WWW-Authenticate: Basic realm=\"{$realm}\"");
    header("Status: 401 Unauthorized");
    header("HTTP-Status: 401 Unauthorized");
    PrintFmt($pagename, $AuthDeniedFmt);
    exit;
}
Example #5
0
function HTTPBasicAuthPrompt($pagename)
{
    global $AuthRealmFmt, $AuthDeniedFmt;
    SDV($AuthRealmFmt, $GLOBALS['WikiTitle']);
    SDV($AuthDeniedFmt, 'A valid password is required to access this feature.');
    $realm = FmtPageName($AuthRealmFmt, $pagename);
    header("WWW-Authenticate: Basic realm=\"{$realm}\"");
    header("Status: 401 Unauthorized");
    header("HTTP-Status: 401 Unauthorized");
    PrintFmt($pagename, $AuthDeniedFmt);
    exit;
}
Example #6
0
function HandleCrypt($pagename)
{
    global $ScriptUrl, $HTMLStartFmt, $HTMLEndFmt;
    PrintFmt($pagename, $HTMLStartFmt);
    $passwd = @$_POST["passwd"];
    echo "<form action='{$ScriptUrl}' method='POST'><p>\n    Enter password to encrypt: <input type='text' name='passwd' value='{$passwd}' />\n    <input type='submit' />\n    <input type='hidden' name='action' value='crypt' /></p></form>";
    if ($passwd) {
        $crypt = crypt($passwd);
        echo "<p class='vspace'>Encrypted password = {$crypt}</p>";
        echo "<p class='vspace'>To set a site-wide password, insert the line below\n      in your <i>config.php</i> file, <br />replacing <tt>'type'</tt> with\n      one of <tt>'admin'</tt>, <tt>'read'</tt>, <tt>'edit'</tt>,\n      or <tt>'attr'</tt>.  <br />See <a \n      href='{$ScriptUrl}?pagename=PmWiki.PasswordsAdmin'>PasswordsAdmin</a> for more\n      details.</p>\n      <pre class='vspace'>  \$DefaultPasswords['type']='{$crypt}';</pre>";
    }
    PrintFmt($pagename, $HTMLEndFmt);
}
Example #7
0
function HandleUpload($pagename)
{
    global $FmtV, $UploadExtMax, $HandleUploadFmt, $PageStartFmt, $PageEndFmt, $PageUploadFmt;
    $page = RetrieveAuthPage($pagename, 'upload');
    if (!$page) {
        Abort("?cannot upload to {$pagename}");
    }
    SetPage($pagename, $page);
    $FmtV['$UploadName'] = MakeUploadName($pagename, @$_REQUEST['upname']);
    $upresult = @$_REQUEST['upresult'];
    $FmtV['$upext'] = @$_REQUEST['upext'];
    $FmtV['$upmax'] = @$_REQUEST['upmax'];
    $FmtV['$UploadResult'] = $upresult ? FmtPageName("<i>\$UploadName</i>: \$[UL{$upresult}]", $pagename) : '';
    SDV($HandleUploadFmt, array(&$PageStartFmt, &$PageUploadFmt, &$PageEndFmt));
    PrintFmt($pagename, $HandleUploadFmt);
}
Example #8
0
function HandleThumbShoeRename($pagename, $auth = 'edit')
{
    global $WikiLibDirs, $LastModFile;
    global $ThumbShoeImgExt;
    global $TSHandleRenameFmt, $PageStartFmt, $ThumbShoeRenameFmt, $PageEndFmt;
    $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
    if (!$page) {
        Abort("?cannot rename {$pagename}; not authorized");
        return;
    }
    $imgRx = '(' . implode('|', $ThumbShoeImgExt) . ')';
    if (!preg_match("/(.*)_{$imgRx}\$/i", $pagename, $m1)) {
        if (function_exists('HandleRename')) {
            // use the normal Rename
            return HandleRename($pagename);
        } else {
            Abort("Cannot rename {$pagename}; is not an Image page");
            return;
        }
    }
    $tsdir = '';
    foreach ((array) $WikiLibDirs as $dir) {
        if ($dir->exists($pagename) and $dir->iswrite) {
            $tsdir = $dir;
            break;
        }
    }
    if (!$tsdir) {
        Abort("Cannot rename {$pagename}; cannot find page");
        return;
    }
    // Okay, should be able to rename this page now.
    $img_name = PageVar($pagename, '$TSPageImage');
    SDV($TSHandleRenameFmt, array(&$PageStartFmt, &$ThumbShoeRenameFmt, &$PageEndFmt));
    $ThumbShoeRenameFmt = str_replace('$FullName', $pagename, $ThumbShoeRenameFmt);
    $ThumbShoeRenameFmt = str_replace('$ImgName', $img_name, $ThumbShoeRenameFmt);
    $ThumbShoeRenameFmt = str_replace('$RenamePage', TSFmtPageList($pagename, $tsdir->galleryGroup, array('o' => 'fmt=pickpage')), $ThumbShoeRenameFmt);
    PrintFmt($pagename, $TSHandleRenameFmt);
}
Example #9
0
function HandleRefCount($pagename)
{
    global $HandleRefCountFmt, $PageStartFmt, $PageEndFmt;
    SDV($HandleRefCountFmt, array(&$PageStartFmt, 'function:PrintRefCount', &$PageEndFmt));
    PrintFmt($pagename, $HandleRefCountFmt);
}
Example #10
0
function HandleSearchA($pagename, $level = 'read') {
  global $PageSearchForm, $FmtV, $HandleSearchFmt, 
    $PageStartFmt, $PageEndFmt;
  SDV($HandleSearchFmt,array(&$PageStartFmt, '$PageText', &$PageEndFmt));
  SDV($PageSearchForm, '$[{$SiteGroup}/Search]');
  $form = RetrieveAuthPage($pagename, $level, true, READPAGE_CURRENT);
  if (!$form) Abort("?unable to read $pagename");
  PCache($pagename, $form);
  $text = preg_replace('/\\[([=@])(.*?)\\1\\]/s', ' ', @$form['text']);
  if (!preg_match('/\\(:searchresults(\\s.*?)?:\\)/', $text))
    foreach((array)$PageSearchForm as $formfmt) {
      $form = ReadPage(FmtPageName($formfmt, $pagename), READPAGE_CURRENT);
      if ($form['text']) break;
    }
  $text = @$form['text'];
  if (!$text) $text = '(:searchresults:)';
  $FmtV['$PageText'] = MarkupToHTML($pagename,$text);
  PrintFmt($pagename, $HandleSearchFmt);
}
function HandleFastCacheBrowse($pagename, $auth = 'read')
{
    # handle display of a page
    global $DefaultPageTextFmt, $PageNotFoundHeaderFmt, $HTTPHeaders, $EnableHTMLCache, $NoHTMLCache, $PageCacheFile, $LastModTime, $IsHTMLCached, $FmtV, $HandleBrowseFmt, $PageStartFmt, $PageEndFmt, $PageRedirectFmt;
    ## begin added
    global $FastCachePage, $FastCacheDir, $FastCacheValid, $FastCacheSuffix;
    if (!$FastCacheValid || !$FastCacheDir) {
        HandleBrowse($pagename, $auth);
        return;
    }
    SDV($FastCacheSuffix, '.html');
    $fcfile = "{$FastCacheDir}/{$pagename}{$FastCacheSuffix}";
    if (@filemtime($fcfile) > $LastModTime) {
        if ($FastCachePage = file_get_contents($fcfile)) {
            StopWatch("HandleFastCacheBrowse: using FastCached copy of {$pagename}");
            echo $FastCachePage;
        } else {
            $FastCacheValid = FALSE;
            StopWatch("HandleFastCacheBrowse: read error on {$fcfile}");
            HandleBrowse($pagename, $auth);
        }
        return;
    }
    ## end added
    $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
    if (!$page) {
        Abort("?cannot read {$pagename}");
    }
    PCache($pagename, $page);
    if (PageExists($pagename)) {
        $text = @$page['text'];
    } else {
        $FastCacheValid = FALSE;
        ## added
        SDV($DefaultPageTextFmt, '(:include $[{$SiteGroup}.PageNotFound]:)');
        $text = FmtPageName($DefaultPageTextFmt, $pagename);
        SDV($PageNotFoundHeaderFmt, 'HTTP/1.1 404 Not Found');
        SDV($HTTPHeaders['status'], $PageNotFoundHeaderFmt);
    }
    $opt = array();
    SDV($PageRedirectFmt, "<p><i>(\$[redirected from] <a rel='nofollow'\n    href='{\$PageUrl}?action=edit'>{\$FullName}</a>)</i></p>\$HTMLVSpace\n");
    if (@(!$_GET['from'])) {
        $opt['redirect'] = 1;
        $PageRedirectFmt = '';
    } else {
        $PageRedirectFmt = FmtPageName($PageRedirectFmt, $_GET['from']);
    }
    if (@$EnableHTMLCache && !$NoHTMLCache && $PageCacheFile && @filemtime($PageCacheFile) > $LastModTime) {
        list($ctext) = unserialize(file_get_contents($PageCacheFile));
        $FmtV['$PageText'] = "<!--cached-->{$ctext}";
        $IsHTMLCached = 1;
        StopWatch("HandleFastCacheBrowse: using HTMLCached copy");
        ## modified
    } else {
        $IsHTMLCached = 0;
        $text = '(:groupheader:)' . @$text . '(:groupfooter:)';
        $t1 = time();
        $FmtV['$PageText'] = MarkupToHTML($pagename, $text, $opt);
        if (@$EnableHTMLCache > 0 && !$NoHTMLCache && $PageCacheFile && time() - $t1 + 1 >= $EnableHTMLCache) {
            $fp = @fopen("{$PageCacheFile},new", "x");
            if ($fp) {
                StopWatch("HandleFastCacheBrowse: HTMLCaching page");
                ## modified
                fwrite($fp, serialize(array($FmtV['$PageText'])));
                fclose($fp);
                rename("{$PageCacheFile},new", $PageCacheFile);
            }
        }
    }
    SDV($HandleBrowseFmt, array(&$PageStartFmt, &$PageRedirectFmt, '$PageText', &$PageEndFmt));
    ## begin modified
    if ($FastCacheValid) {
        ob_start();
        PrintFmt($pagename, $HandleBrowseFmt);
        $FastCachePage = ob_get_contents();
        ob_end_flush();
        mkdirp(dirname($fcfile));
        if ($FastCacheValid && ($fc = fopen("{$fcfile},new", 'x'))) {
            StopWatch("HandleFastCacheBrowse: FastCaching {$pagename}");
            fwrite($fc, $FastCachePage);
            fclose($fc);
            rename("{$fcfile},new", $fcfile);
        } else {
            StopWatch("HandleFastCacheBrowse: error writing cache to {$fcfile},new");
        }
    } else {
        PrintFmt($pagename, $HandleBrowseFmt);
    }
    ## end modified
}
Example #12
0
function HandleUpload($pagename, $auth = 'upload') {
  global $FmtV,$UploadExtMax,
    $HandleUploadFmt,$PageStartFmt,$PageEndFmt,$PageUploadFmt;
  UploadAuth($pagename, $auth, 1);
  $FmtV['$UploadName'] = MakeUploadName($pagename,@$_REQUEST['upname']);
  $upresult = htmlspecialchars(@$_REQUEST['upresult']);
  $uprname = htmlspecialchars(@$_REQUEST['uprname']);
  $FmtV['$upext'] = htmlspecialchars(@$_REQUEST['upext']);
  $FmtV['$upmax'] = htmlspecialchars(@$_REQUEST['upmax']);
  $FmtV['$UploadResult'] = ($upresult) ?
    FmtPageName("<i>$uprname</i>: $[UL$upresult]",$pagename) : '';
  SDV($HandleUploadFmt,array(&$PageStartFmt,&$PageUploadFmt,&$PageEndFmt));
  PrintFmt($pagename,$HandleUploadFmt);
}
Example #13
0
function HandleUpload($pagename, $auth = 'upload') {
  global $FmtV,$UploadExtMax, $EnableReadOnly,
    $HandleUploadFmt,$PageStartFmt,$PageEndFmt,$PageUploadFmt;
  UploadAuth($pagename, $auth, 1);
  $FmtV['$UploadName'] = MakeUploadName($pagename,@$_REQUEST['upname']);
  $upresult = PHSC(@$_REQUEST['upresult']);
  $uprname = PHSC(@$_REQUEST['uprname']);
  $FmtV['$upext'] = PHSC(@$_REQUEST['upext']);
  $FmtV['$upmax'] = PHSC(@$_REQUEST['upmax']);
  $FmtV['$UploadResult'] = ($upresult) ?
    FmtPageName("<i>$uprname</i>: $[UL$upresult]",$pagename) : 
      (@$EnableReadOnly ? XL('Cannot modify site -- $EnableReadOnly is set'): '');
  SDV($HandleUploadFmt,array(&$PageStartFmt,&$PageUploadFmt,&$PageEndFmt));
  PrintFmt($pagename,$HandleUploadFmt);
}
Example #14
0
function HandleTotalCounter($pagename, $auth = 'read')
{
    global $Action, $TotalCounter, $TotalCounterMaxItems, $TotalCounterBarColor, $TotalCounterShowNumbers, $TotalCount, $TotalCounterDownloads, $TotalCounterTimeBins, $TotalCounterBinsFmt;
    global $PageStartFmt, $PageEndFmt;
    //$page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
    $page = RetrieveAuthPage($pagename, $auth);
    if (!$page) {
        Abort("?you are not permited to perform this action");
    }
    $alllocations = array('localhost' => 'localhost', 'Unknown' => 'Unknown', 'com' => 'Commercial', 'net' => 'Networks', 'org' => 'Organizations', 'aero' => 'Aviation', 'biz' => 'Business organizations', 'coop' => 'Co-operative organizations', 'edu' => 'Educational', 'gov' => 'US Government', 'info' => 'Info', 'int' => 'International organizations', 'mil' => 'US Dept of Defense', 'museum' => 'Museums', 'name' => 'Personal', 'travel' => 'Travelling', 'ac' => 'Ascension Island', 'ad' => 'Andorra', 'ae' => 'United Arab Emirates', 'af' => 'Afghanistan', 'ag' => 'Antigua & Barbuda', 'ai' => 'Anguilla', 'al' => 'Albania', 'am' => 'Armenia', 'an' => 'Netherlands Antilles', 'ao' => 'Angola', 'aq' => 'Antarctica', 'ar' => 'Argentina', 'as' => 'American Samoa', 'at' => 'Austria', 'au' => 'Australia', 'aw' => 'Aruba', 'az' => 'Azerbaijan', 'ba' => 'Bosnia & Herzegovina', 'bb' => 'Barbados', 'bd' => 'Bangladesh', 'be' => 'Belgium', 'bf' => 'Burkina Faso', 'bg' => 'Bulgaria', 'bh' => 'Bahrain', 'bi' => 'Burundi', 'bj' => 'Benin', 'bm' => 'Bermuda', 'bn' => 'Brunei Darussalam', 'bo' => 'Bolivia', 'br' => 'Brazil', 'bs' => 'Bahamas', 'bt' => 'Bhutan', 'bv' => 'Bouvet Island', 'bw' => 'Botswana', 'by' => 'Belarus', 'bz' => 'Belize', 'ca' => 'Canada', 'cc' => 'Cocos (Keeling) Islands', 'cd' => 'Democratic republic of Congo', 'cf' => 'Central African Republic', 'cg' => 'Congo', 'ch' => 'Switzerland', 'ci' => 'Ivory Coast', 'ck' => 'Cook Islands', 'cl' => 'Chile', 'cm' => 'Cameroon', 'cn' => 'China', 'co' => 'Colombia', 'cr' => 'Costa Rica', 'cs' => 'Czechoslovakia', 'cu' => 'Cuba', 'cv' => 'Cape Verde', 'cx' => 'Christmas Island', 'cy' => 'Cyprus', 'cz' => 'Czech Republic', 'de' => 'Germany', 'dj' => 'Djibouti', 'dk' => 'Denmark', 'dm' => 'Dominica', 'do' => 'Dominican Republic', 'dz' => 'Algeria', 'ec' => 'Ecuador', 'ee' => 'Estonia', 'eg' => 'Egypt', 'eh' => 'Western Sahara', 'er' => 'Eritrea', 'es' => 'Spain', 'et' => 'Ethiopia', 'eu' => 'European Union', 'fi' => 'Finland', 'fj' => 'Fiji', 'fk' => 'Falkland Islands', 'fm' => 'Micronesia', 'fo' => 'Faroe Islands', 'fr' => 'France', 'ga' => 'Gabon', 'gb' => 'United Kingdom', 'gd' => 'Grenada', 'ge' => 'Georgia', 'gf' => 'French Guiana', 'gg' => 'Guernsey', 'gh' => 'Ghana', 'gi' => 'Gibraltar', 'gl' => 'Greenland', 'gm' => 'Gambia', 'gn' => 'Guinea', 'gp' => 'Guadeloupe', 'gq' => 'Equatorial Guinea', 'gr' => 'Greece', 'gs' => 'South Georgia & South Sandwich Islands', 'gt' => 'Guatemala', 'gu' => 'Guam', 'gw' => 'Guinea-Bissau', 'gy' => 'Guyana', 'hk' => 'Hong Kong', 'hm' => 'Heard & McDonald Islands', 'hn' => 'Honduras', 'hr' => 'Croatia', 'ht' => 'Haiti', 'hu' => 'Hungary', 'id' => 'Indonesia', 'ie' => 'Ireland', 'il' => 'Israel', 'im' => 'Isle of Man', 'in' => 'India', 'io' => 'British Indian Ocean Territory', 'iq' => 'Iraq', 'ir' => 'Iran', 'is' => 'Iceland', 'it' => 'Italy', 'je' => 'Jersey', 'jm' => 'Jamaica', 'jo' => 'Jordan', 'jp' => 'Japan', 'ke' => 'Kenya', 'kg' => 'Kyrgyzstan', 'kh' => 'Cambodia', 'ki' => 'Kiribati', 'km' => 'Comoros', 'kn' => 'Saint Kitts & Nevis', 'kp', 'North Korea', 'kr' => 'South Korea', 'kw' => 'Kuwait', 'ky' => 'Cayman Islands', 'kz' => 'Kazakhstan', 'la' => 'Laos', 'lb' => 'Lebanon', 'lc' => 'Saint Lucia', 'li' => 'Liechtenstein', 'lk' => 'Sri Lanka', 'lr' => 'Liberia', 'ls' => 'Lesotho', 'lt' => 'Lithuania', 'lu' => 'Luxembourg', 'lv' => 'Latvia', 'ly' => 'Libyan Arab Jamahiriya', 'ma' => 'Morocco', 'mc' => 'Monaco', 'md' => 'Moldova', 'mg' => 'Madagascar', 'mh' => 'Marshall Islands', 'mk' => 'Macedonia', 'ml' => 'Mali', 'mm' => 'Myanmar', 'mn' => 'Mongolia', 'mo' => 'Macau', 'mp' => 'Northern Mariana Islands', 'mq' => 'Martinique', 'mr' => 'Mauritania', 'ms' => 'Montserrat', 'mt' => 'Malta', 'mu' => 'Mauritius', 'mv' => 'Maldives', 'mw' => 'Malawi', 'mx' => 'Mexico', 'my' => 'Malaysia', 'mz' => 'Mozambique', 'na' => 'Namibia', 'nc' => 'New Caledonia', 'ne' => 'Niger', 'nf' => 'Norfolk Island', 'ng' => 'Nigeria', 'ni' => 'Nicaragua', 'nl' => 'The Netherlands', 'no' => 'Norway', 'np' => 'Nepal', 'nr' => 'Nauru', 'nu' => 'Niue', 'nz' => 'New Zealand', 'om' => 'Oman', 'pa' => 'Panama', 'pe' => 'Peru', 'pf' => 'French Polynesia', 'pg' => 'Papua New Guinea', 'ph' => 'Philippines', 'pk' => 'Pakistan', 'pl' => 'Poland', 'pm' => 'St. Pierre & Miquelon', 'pn' => 'Pitcairn', 'pr' => 'Puerto Rico', 'ps' => 'Palestine', 'pt' => 'Portugal', 'pw' => 'Palau', 'py' => 'Paraguay', 'qa' => 'Qatar', 're' => 'Reunion', 'ro' => 'Romania', 'ru' => 'Russia', 'rw' => 'Rwanda', 'sa' => 'Saudi Arabia', 'sb' => 'Solomon Islands', 'sc' => 'Seychelles', 'sd' => 'Sudan', 'se' => 'Sweden', 'sg' => 'Singapore', 'sh' => 'St. Helena', 'si' => 'Slovenia', 'sj' => 'Svalbard & Jan Mayen Islands', 'sk' => 'Slovakia', 'sl' => 'Sierra Leone', 'sm' => 'San Marino', 'sn' => 'Senegal', 'so' => 'Somalia', 'sr' => 'Surinam', 'st' => 'Sao Tome & Principe', 'su' => 'USSR', 'sv' => 'El Salvador', 'sy' => 'Syrian Arab Republic', 'sz' => 'Swaziland', 'tc' => 'The Turks & Caicos Islands', 'td' => 'Chad', 'tf' => 'French Southern Territories', 'tg' => 'Togo', 'th' => 'Thailand', 'tj' => 'Tajikistan', 'tk' => 'Tokelau', 'tm' => 'Turkmenistan', 'tn' => 'Tunisia', 'to' => 'Tonga', 'tp' => 'East Timor', 'tr' => 'Turkey', 'tt' => 'Trinidad & Tobago', 'tv' => 'Tuvalu', 'tw' => 'Taiwan', 'tz' => 'Tanzania', 'ua' => 'Ukraine', 'ug' => 'Uganda', 'uk' => 'United Kingdom', 'um' => 'United States Minor Outlying Islands', 'us' => 'United States', 'uy' => 'Uruguay', 'uz' => 'Uzbekistan', 'va' => 'Vatican City', 'vc' => 'Saint Vincent & the Grenadines', 've' => 'Venezuela', 'vg' => 'British Virgin Islands', 'vi' => 'US Virgin Islands', 'vn' => 'Vietnam', 'vu' => 'Vanuatu', 'wf' => 'Wallis & Futuna Islands', 'ws' => 'Samoa', 'ye' => 'Yemen', 'yt' => 'Mayotte', 'yu' => 'Yugoslavia', 'za' => 'South Africa', 'zm' => 'Zambia', 'zr' => 'Zaire', 'zw' => 'Zimbabwe');
    $Action = 'TotalCounter statistics';
    ## by Schlaefer
    ## sets the max items if provided by the form
    if ($_REQUEST['TotalCounterMaxItems']) {
        $TotalCounterMaxItems = $_REQUEST['TotalCounterMaxItems'];
    }
    //------------------------------------------------------------------------------------------------------------
    // PAGES
    $html = '<h1>Total Counter $[statistics]</h1>' . '<br /><hr />' . '<h2>$[Page views]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Pages]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    @arsort($TotalCounter['Pages']);
    $tar = @array_slice($TotalCounter['Pages'], 0, $TotalCounterMaxItems);
    $tot = $TotalCount;
    $max = @current($tar);
    $i = 0;
    if (is_array($tar) && $tot) {
        // by Florian Xaver
        foreach ($tar as $pn => $cnt) {
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . "<td><a href='\$ScriptUrl/{$pn}'>{$pn}</a>&nbsp;</td><td>" . Round(100 * $cnt / $tot) . "%</td><td><div style='background-color:{$TotalCounterBarColor};height:13px;width:" . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
        }
    }
    ## by Schlaefer
    //------------------------------------------------------------------------------------------------------------
    ## PAGES daily
    $html .= '</table>' . '<br /><hr />' . '<h2>$[Page views] $[today]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Pages]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    $tar = array();
    foreach ($TotalCounter['PagesTodayCounter'] as $pn => $cnt) {
        if ($TotalCounter['PagesTodayDay'][$pn] === date("%y%m%d")) {
            $tar[$pn] = $cnt;
        }
    }
    @arsort($tar);
    $tot = @array_sum($tar);
    $tar = @array_slice($tar, 0, $TotalCounterMaxItems);
    $max = @current($tar);
    $i = 0;
    if (is_array($tar)) {
        foreach ($tar as $pn => $cnt) {
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . "<td><a href='\$ScriptUrl/{$pn}'>{$pn}</a>&nbsp;</td><td>" . Round(100 * $cnt / $tot) . "%</td><td><div style='background-color:{$TotalCounterBarColor};height:13px;width:" . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
            if ($i == $TotalCounterMaxItems) {
                break;
            }
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // USERS
    $html .= '</table>' . '<br /><hr />' . '<h2>$[Users]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Users]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    @arsort($TotalCounter['Users']);
    $tar = @array_slice($TotalCounter['Users'], 0, $TotalCounterMaxItems);
    $max = @current($tar);
    $tot = @array_sum($tar);
    $i = 0;
    if (is_array($tar)) {
        foreach ($tar as $pn => $cnt) {
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . '<td>' . ($pn != 'Guest (not authenticated)' ? "<a href='\$ScriptUrl/\$AuthorGroup/{$pn}'>{$pn}</a>" : $pn) . "&nbsp;</td><td>" . Round(100 * $cnt / $tot) . "%</td><td><div style='background-color:{$TotalCounterBarColor};height:13px;width:" . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // LANGUAGES
    if (defined('MULTILANGUAGE')) {
        $html .= '</table>' . '<br /><hr />' . '<h2>$[Languages]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Languages]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
        @arsort($TotalCounter['Languages']);
        $tar = @array_slice($TotalCounter['Languages'], 0, $TotalCounterMaxItems);
        $max = @current($tar);
        $tot = @array_sum($tar);
        $i = 0;
        if (is_array($tar)) {
            foreach ($tar as $pn => $cnt) {
                $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . "<td>{$pn}&nbsp;</td><td>" . Round(100 * $cnt / $tot) . "%</td><td><div style='background-color:{$TotalCounterBarColor};height:13px;width:" . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
            }
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // BROWSERS
    $html .= '</table>' . '<br /><hr />' . '<h2>$[Browsers]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Browsers]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    @arsort($TotalCounter['Browsers']);
    $tar = @array_slice($TotalCounter['Browsers'], 0, $TotalCounterMaxItems);
    $max = @current($tar);
    $tot = @array_sum($tar);
    $i = 0;
    if (is_array($tar)) {
        foreach ($tar as $pn => $cnt) {
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . "<td>{$pn}&nbsp;</td><td>" . Round(100 * $cnt / $tot) . "%</td><td><div style='background-color:{$TotalCounterBarColor};height:13px;width:" . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // OPERATING SYSTEMS
    $html .= '</table>' . '<br /><hr />' . '<h2>$[Operating systems]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Operating systems]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    @arsort($TotalCounter['OSes']);
    $tar = @array_slice($TotalCounter['OSes'], 0, $TotalCounterMaxItems);
    $max = @current($tar);
    $tot = @array_sum($tar);
    $i = 0;
    if (is_array($tar)) {
        foreach ($tar as $pn => $cnt) {
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . "<td>{$pn}&nbsp;</td><td>" . Round(100 * $cnt / $tot) . "%</td><td><div style='background-color:{$TotalCounterBarColor};height:13px;width:" . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // REFERERS
    $html .= '</table>' . '<br /><hr />' . '<h2>$[Referers]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Referers]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    @arsort($TotalCounter['Referers']);
    $tar = @array_slice($TotalCounter['Referers'], 0, $TotalCounterMaxItems);
    $max = @current($tar);
    $tot = @array_sum($tar);
    $i = 0;
    if (is_array($tar)) {
        foreach ($tar as $pn => $cnt) {
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . "<td>{$pn}&nbsp;</td><td>" . Round(100 * $cnt / $tot) . "%</td><td><div style='background-color:{$TotalCounterBarColor};height:13px;width:" . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // LOCATIONS
    $html .= '</table>' . '<br /><hr />' . '<h2>$[Locations]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Locations]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    @arsort($TotalCounter['Locations']);
    $tar = @array_slice($TotalCounter['Locations'], 0, $TotalCounterMaxItems);
    $max = @current($tar);
    $tot = @array_sum($tar);
    $i = 0;
    if (is_array($tar)) {
        foreach ($tar as $pn => $cnt) {
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . '<td>' . ($alllocations[$pn] == '' ? 'Unknown' : $alllocations[$pn]) . ' ' . ($pn == 'Unknown' || $pn == 'localhost' ? '' : "(.{$pn})") . '&nbsp;</td>' . '<td>' . Round(100 * $cnt / $tot) . '%</td>' . '<td><div style=\'background-color:$TotalCounterBarColor;height:13px;width:' . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // WEB BOTS
    $html .= '</table>' . '<br /><hr />' . '<h2>$[Web bots]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Web bots]&nbsp;</b></td><td colspan=\'2\'><b>$[Percent]</b></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    @arsort($TotalCounter['Bots']);
    $tar = @array_slice($TotalCounter['Bots'], 0, $TotalCounterMaxItems);
    $max = @current($tar);
    $tot = @array_sum($tar);
    $i = 0;
    if (is_array($tar)) {
        foreach ($tar as $pn => $cnt) {
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . "<td>{$pn}&nbsp;</td><td>" . Round(100 * $cnt / $tot) . "%</td><td><div style='background-color:{$TotalCounterBarColor};height:13px;width:" . Round(200 * $cnt / $max) . "px;color:#fff'></div></td><td align='right'>&nbsp;{$cnt}</td>" . '</tr>';
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // Downloads
    $html .= '</table>' . '<br /><hr />' . '<h2>$[File Downloads]</h2>' . '<table border=\'0\'>' . '<tr><td' . ($TotalCounterShowNumbers ? ' colspan=\'2\'' : '') . '><b>$[Downloads]&nbsp;</b></td><td colspan=\'2\'></td><td align=\'right\'><b>$[Count]</b></td></tr>';
    @arsort($TotalCounterDownloads);
    $max = count($TotalCounterDownloads);
    $tot = @array_sum($TotalCounterDownloads);
    $i = 0;
    if (is_array($TotalCounterDownloads)) {
        for ($row = 0; $row < $max; $row++) {
            $tablerow = each($TotalCounterDownloads);
            $value = $tablerow['value'];
            $html .= '<tr>' . ($TotalCounterShowNumbers ? '<td align=\'right\' valign=\'bottom\'><small>' . ++$i . '.</small></td>' : '') . '<td>' . $tablerow['key'] . '</td>' . '<td></td>' . '<td></td><td align="right">&nbsp;' . $value . '</td>' . '</tr>';
        }
    }
    //------------------------------------------------------------------------------------------------------------
    // Time statistics
    ## by MateuszCzaplinski
    foreach ($TotalCounterTimeBins as $n => $a) {
        $html .= '</table>' . '<br /><hr />' . "<h2>\$[{$n}]</h2><table border='0' class='TC-{$n} TotalCounter'>";
        SDVA($TotalCounterBinsFmt, array('"$count"', '"<div class=\\"TCprogress\\" style=\\"$direction:".Round(1+200*$count/$maxcount)."px;\\"></div>"', 'date("G",$now-$atom*($maxnr-1-$nr))'));
        $fmt = $a['fmt'];
        if (is_string($fmt)) {
            $tmp = $fmt;
            $fmt = $TotalCounterBinsFmt;
            $fmt[2] = $tmp;
        }
        if (is_array($fmt)) {
            $rows = array();
            ## Variables used in 'fmt'
            $maxcount = @max($TotalCounter[$n]);
            $direction = 'height';
            $maxnr = $a['max'];
            $atom = $a['atom'];
            $now = time();
            for ($nr = 0; $nr < $a['max']; $nr++) {
                for ($j = 0; $j < count($fmt); $j++) {
                    $count = $TotalCounter[$n][$nr];
                    $rows[$j] = (string) @$rows[$j] . "<td valign='bottom' class='seq{$j}'>" . (string) eval("global \$TotalCounterMonthsShort; return ({$fmt[$j]});") . "</td>\n";
                }
            }
        }
        $html .= '<tr>' . implode('</tr><tr>', $rows) . '</tr>';
    }
    $html .= '</table><hr /><p align=\'right\'>TotalCounter v' . TOTALCOUNTER . '</p>';
    PrintFmt($pagename, array(&$PageStartFmt, $html, &$PageEndFmt));
}
Example #15
0
function HandleDiff($pagename)
{
    global $HandleDiffFmt, $PageStartFmt, $PageDiffFmt, $PageEndFmt;
    Lock(1);
    $page = ReadPage($pagename, '');
    if (!$page) {
        Abort("?cannot diff {$pagename}");
    }
    SDV($HandleDiffFmt, array(&$PageStartFmt, &$PageDiffFmt, 'function:PrintDiff', &$PageEndFmt));
    PrintFmt($pagename, $HandleDiffFmt);
}
Example #16
0
function HandleRss($pagename)
{
    global $RssMaxItems, $RssSourceSize, $RssDescSize, $RssChannelFmt, $RssChannelDesc, $RssTimeFmt, $RssChannelBuildDate, $RssItemsRDFList, $RssItemsRDFListFmt, $RssItems, $RssItemFmt, $RssItemDesc, $RssItemPubDate, $GCount, $HandleRssFmt;
    $t = ReadTrail($pagename, $pagename);
    $page = RetrieveAuthPage($pagename, false);
    $cbgmt = $page['time'];
    $r = array();
    for ($i = 0; $i < count($t) && count($r) < $RssMaxItems; $i++) {
        if (!PageExists($t[$i]['pagename'])) {
            continue;
        }
        $page = RetrieveAuthPage($t[$i]['pagename'], false);
        $text = MarkupToHTML($t[$i]['pagename'], substr($page['text'], 0, $RssSourceSize));
        $text = rssencode(preg_replace("/<.*?>/s", "", $text));
        preg_match("/^(.{0,{$RssDescSize}}\\s)/s", $text, $match);
        $r[] = array('name' => $t[$i]['pagename'], 'time' => $page['time'], 'desc' => $match[1] . " ...");
        if ($page['time'] > $cbgmt) {
            $cbgmt = $page['time'];
        }
    }
    SDV($RssChannelBuildDate, rssencode(gmstrftime($RssTimeFmt, $cbgmt)));
    SDV($RssChannelDesc, rssencode(FmtPageName('$Group.$Title', $pagename)));
    foreach ($r as $page) {
        $RssItemPubDate = gmstrftime($RssTimeFmt, $page['time']);
        $RssItemDesc = $page['desc'];
        $GCount = 0;
        $RssItemsRDFList[] = rssencode(FmtPageName($RssItemsRDFListFmt, $page['name']));
        $RssItems[] = rssencode(FmtPageName($RssItemFmt, $page['name']));
    }
    header("Content-type: text/xml");
    PrintFmt($pagename, $HandleRssFmt);
    exit;
}
Example #17
0
function HandleSearchA($pagename, $level = 'read')
{
    global $PageSearchForm, $FmtV, $HandleSearchFmt, $PageStartFmt, $PageEndFmt;
    SDV($HandleSearchFmt, array(&$PageStartFmt, '$PageText', &$PageEndFmt));
    SDV($PageSearchForm, '$[$SiteGroup/Search]');
    PCache($pagename, RetrieveAuthPage($pagename, 'read'));
    $form = ReadPage(FmtPageName($PageSearchForm, $pagename), READPAGE_CURRENT);
    $text = @$form['text'];
    if (!$text) {
        $text = '(:searchresults:)';
    }
    $FmtV['$PageText'] = MarkupToHTML($pagename, $text);
    PrintFmt($pagename, $HandleSearchFmt);
}
Example #18
0
function HandleAttr($pagename)
{
    global $PageAttrFmt, $PageStartFmt, $PageEndFmt;
    $page = RetrieveAuthPage($pagename, 'attr');
    if (!$page) {
        Abort("?unable to read {$pagename}");
    }
    PCache($pagename, $page);
    SDV($PageAttrFmt, "<h1 class='wikiaction'>\$[\$FullName Attributes]</h1>\n    <p>Enter new attributes for this page below.  Leaving a field blank\n    will leave the attribute unchanged.  To clear an attribute, enter\n    'clear'.</p>");
    SDV($HandleAttrFmt, array(&$PageStartFmt, &$PageAttrFmt, 'function:PrintAttrForm', &$PageEndFmt));
    PrintFmt($pagename, $HandleAttrFmt);
}
Example #19
0
function HandleDiff($pagename, $auth = 'read')
{
    global $HandleDiffFmt, $PageStartFmt, $PageDiffFmt, $PageEndFmt;
    $page = RetrieveAuthPage($pagename, $auth, true);
    if (!$page) {
        Abort("?cannot diff {$pagename}");
    }
    PCache($pagename, $page);
    SDV($HandleDiffFmt, array(&$PageStartFmt, &$PageDiffFmt, "<div id='wikidiff'>", 'function:PrintDiff', '</div>', &$PageEndFmt));
    PrintFmt($pagename, $HandleDiffFmt);
}
Example #20
0
function HandleImageHistory($pagename)
{
    global $HandleDiffFmt, $PageStartFmt, $PageDiffFmt, $PageEndFmt;
    Lock(1);
    if (isset($_GET['image'])) {
        $imageToSeeHistory = $_GET['image'];
    }
    $page = ReadPage($pagename, '');
    if (!$page) {
        Abort("?cannot diff {$pagename}");
    }
    //  SDV($HandleDiffFmt,array(&$PageStartFmt,
    //    &$PageDiffFmt,'function:PrintDiff',
    //    &$PageEndFmt));
    SDV($HandleDiffFmt, array(&$PageStartFmt, &$PageDiffFmt, "image history of {$imageToSeeHistory}", &$PageEndFmt));
    PrintFmt($pagename, $HandleDiffFmt);
}
Example #21
0
function HandleUpload($pagename, $auth = 'upload')
{
    global $FmtV, $UploadExtMax, $HandleUploadFmt, $PageStartFmt, $PageEndFmt, $PageUploadFmt;
    UploadAuth($pagename, $auth, 1);
    $FmtV['$UploadName'] = MakeUploadName($pagename, @$_REQUEST['upname']);
    $upresult = PHSC(@$_REQUEST['upresult']);
    $uprname = PHSC(@$_REQUEST['uprname']);
    $FmtV['$upext'] = PHSC(@$_REQUEST['upext']);
    $FmtV['$upmax'] = PHSC(@$_REQUEST['upmax']);
    $FmtV['$UploadResult'] = $upresult ? FmtPageName("<i>{$uprname}</i>: \$[UL{$upresult}]", $pagename) : '';
    SDV($HandleUploadFmt, array(&$PageStartFmt, &$PageUploadFmt, &$PageEndFmt));
    PrintFmt($pagename, $HandleUploadFmt);
}
Example #22
0
function HandleRss($pagename)
{
    global $RssMaxItems, $RssSourceSize, $RssDescSize, $RssChannelFmt, $RssChannelDesc, $RssTimeFmt, $RssChannelBuildDate, $RssItemsRDFList, $RssItemsRDFListFmt, $RssItems, $RssItemFmt, $HandleRssFmt, $FmtV;
    $t = ReadTrail($pagename, $pagename);
    $page = RetrieveAuthPage($pagename, 'read', false);
    if (!$page) {
        Abort("?cannot read {$pagename}");
    }
    $cbgmt = $page['time'];
    $r = array();
    for ($i = 0; $i < count($t) && count($r) < $RssMaxItems; $i++) {
        if (!PageExists($t[$i]['pagename'])) {
            continue;
        }
        $page = RetrieveAuthPage($t[$i]['pagename'], 'read', false);
        Lock(0);
        if (!$page) {
            continue;
        }
        $text = MarkupToHTML($t[$i]['pagename'], substr($page['text'], 0, $RssSourceSize));
        $text = entityencode(preg_replace("/<.*?>/s", "", $text));
        preg_match("/^(.{0,{$RssDescSize}}\\s)/s", $text, $match);
        $r[] = array('name' => $t[$i]['pagename'], 'time' => $page['time'], 'desc' => $match[1] . " ...", 'author' => $page['author']);
        if ($page['time'] > $cbgmt) {
            $cbgmt = $page['time'];
        }
    }
    SDV($RssChannelBuildDate, entityencode(gmdate('D, d M Y H:i:s \\G\\M\\T', $cbgmt)));
    SDV($RssChannelDesc, entityencode(FmtPageName('$Group.$Title', $pagename)));
    foreach ($r as $page) {
        $FmtV['$RssItemPubDate'] = gmstrftime($RssTimeFmt, $page['time']);
        $FmtV['$RssItemDesc'] = $page['desc'];
        $FmtV['$RssItemAuthor'] = $page['author'];
        $RssItemsRDFList[] = entityencode(FmtPageName($RssItemsRDFListFmt, $page['name']));
        $RssItems[] = entityencode(FmtPageName($RssItemFmt, $page['name']));
    }
    header("Content-type: text/xml");
    PrintFmt($pagename, $HandleRssFmt);
    exit;
}
Example #23
0
function HandleSearchA($pagename, $level = 'read')
{
    global $PageSearchForm, $FmtV, $HandleSearchFmt, $PageStartFmt, $PageEndFmt;
    SDV($HandleSearchFmt, array(&$PageStartFmt, '$PageText', &$PageEndFmt));
    SDV($PageSearchForm, '$[$SiteGroup/Search]');
    $form = RetrieveAuthPage($pagename, 'read', true, READPAGE_CURRENT);
    PCache($pagename, $form);
    if (!preg_match('/\\(:searchresults(\\s.*?)?:\\)/', $form['text'])) {
        foreach ((array) $PageSearchForm as $formfmt) {
            $form = ReadPage(FmtPageName($formfmt, $pagename), READPAGE_CURRENT);
            if ($form['text']) {
                break;
            }
        }
    }
    $text = @$form['text'];
    if (!$text) {
        $text = '(:searchresults:)';
    }
    $FmtV['$PageText'] = MarkupToHTML($pagename, $text);
    PrintFmt($pagename, $HandleSearchFmt);
}
Example #24
0
function HandleAttr($pagename, $auth = 'attr') {
  global $PageAttrFmt,$PageStartFmt,$PageEndFmt;
  $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
  if (!$page) { Abort("?unable to read $pagename"); }
  PCache($pagename,$page);
  XLSDV('en', array('EnterAttributes' =>
    "Enter new attributes for this page below.  Leaving a field blank
    will leave the attribute unchanged.  To clear an attribute, enter
    'clear'."));
  SDV($PageAttrFmt,"<div class='wikiattr'>
    <h2 class='wikiaction'>$[{\$FullName} Attributes]</h2>
    <p>$[EnterAttributes]</p></div>");
  SDV($HandleAttrFmt,array(&$PageStartFmt,&$PageAttrFmt,
    'function:PrintAttrForm',&$PageEndFmt));
  PrintFmt($pagename,$HandleAttrFmt);
}
Example #25
0
function PrintSkin($pagename, $arg)
{
    global $TmplFmt, $TmplDisplay;
    foreach ($TmplFmt[$arg] as $k => $v) {
        if (!isset($TmplDisplay[$k]) || $TmplDisplay[$k]) {
            PrintFmt($pagename, $v);
        }
    }
}
Example #26
0
function HandleUpload($pagename, $auth = 'upload') {
  global $FmtV,$UploadExtMax,
    $HandleUploadFmt,$PageStartFmt,$PageEndFmt,$PageUploadFmt;
  $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
  if (!$page) Abort("?cannot upload to $pagename");
  PCache($pagename,$page);
  $FmtV['$UploadName'] = MakeUploadName($pagename,@$_REQUEST['upname']);
  $upresult = htmlspecialchars(@$_REQUEST['upresult']);
  $uprname = htmlspecialchars(@$_REQUEST['uprname']);
  $FmtV['$upext'] = htmlspecialchars(@$_REQUEST['upext']);
  $FmtV['$upmax'] = htmlspecialchars(@$_REQUEST['upmax']);
  $FmtV['$UploadResult'] = ($upresult) ?
    FmtPageName("<i>$uprname</i>: $[UL$upresult]",$pagename) : '';
  SDV($HandleUploadFmt,array(&$PageStartFmt,&$PageUploadFmt,&$PageEndFmt));
  PrintFmt($pagename,$HandleUploadFmt);
}
Example #27
0
function HandleRefCount($pagename, $auth='read') {
  global $HandleRefCountFmt,$PageStartFmt,$PageEndFmt;
  $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
  if (!$page) Abort('?unauthorized');
  PCache($pagename, $page);
  SDV($HandleRefCountFmt,array(&$PageStartFmt,
    'function:PrintRefCount',&$PageEndFmt));
  PrintFmt($pagename,$HandleRefCountFmt);
}