/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
-// $Id: html.php,v 1.5 2004/10/11 02:05:12 henoheno Exp $
+// $Id: html.php,v 1.20 2004/12/25 00:38:21 henoheno Exp $
//
// ËÜʸ¤ò½ÐÎÏ
{
global $script, $vars, $arg, $defaultpage, $whatsnew, $help_page, $hr;
global $related_link, $cantedit, $function_freeze, $search_word_color, $_msg_word;
- global $foot_explain, $note_hr, $head_tags, $trackback, $referer;
+ global $foot_explain, $note_hr, $head_tags;
+ global $trackback, $trackback_javascript, $referer, $javascript;
global $_LANG, $_LINK, $_IMAGE;
global $html_transitional; // FALSE:XHTML1.1 TRUE:XHTML1.0 Transitional
if (! file_exists(SKIN_FILE) || ! is_readable(SKIN_FILE))
die_message('SKIN_FILE is not found');
- $_LANG = $_LINK = $_IMAGE = array();
+ $_LINK = $_IMAGE = array();
+
+ // Add JavaScript header when ...
+ if ($trackback && $trackback_javascript) $javascript = 1; // Set something If you want
+ if (! PKWK_ALLOW_JAVASCRIPT) unset($javascript);
$_page = isset($vars['page']) ? $vars['page'] : '';
$r_page = rawurlencode($_page);
$_LINK['help'] = "$script?" . rawurlencode($help_page);
$_LINK['list'] = "$script?cmd=list";
$_LINK['new'] = "$script?plugin=newpage&refer=$r_page";
+ $_LINK['rdf'] = "$script?cmd=rss&ver=1.0";
$_LINK['recent'] = "$script?" . rawurlencode($whatsnew);
$_LINK['refer'] = "$script?plugin=referer&page=$r_page";
$_LINK['reload'] = "$script?$r_page";
$_LINK['rename'] = "$script?plugin=rename&refer=$r_page";
- $_LINK['rss'] = "$script?cmd=rss10";
+ $_LINK['rss'] = "$script?cmd=rss";
+ $_LINK['rss10'] = "$script?cmd=rss&ver=1.0"; // Same as 'rdf'
+ $_LINK['rss20'] = "$script?cmd=rss&ver=2.0";
$_LINK['search'] = "$script?cmd=search";
$_LINK['top'] = "$script?" . rawurlencode($defaultpage);
if ($trackback) {
$_LINK['unfreeze'] = "$script?cmd=unfreeze&page=$r_page";
$_LINK['upload'] = "$script?plugin=attach&pcmd=upload&page=$r_page";
+ // Compat: Skins for 1.4.4 and before
+ $link_add = & $_LINK['add'];
+ $link_new = & $_LINK['new']; // New!
+ $link_edit = & $_LINK['edit'];
+ $link_diff = & $_LINK['diff'];
+ $link_top = & $_LINK['top'];
+ $link_list = & $_LINK['list'];
+ $link_filelist = & $_LINK['filelist'];
+ $link_search = & $_LINK['search'];
+ $link_whatsnew = & $_LINK['recent'];
+ $link_backup = & $_LINK['backup'];
+ $link_help = & $_LINK['help'];
+ $link_trackback = & $_LINK['trackback']; // New!
+ $link_rdf = & $_LINK['rdf']; // New!
+ $link_rss = & $_LINK['rss'];
+ $link_rss10 = & $_LINK['rss10']; // New!
+ $link_rss20 = & $_LINK['rss20']; // New!
+ $link_freeze = & $_LINK['freeze'];
+ $link_unfreeze = & $_LINK['unfreeze'];
+ $link_upload = & $_LINK['upload'];
+ $link_template = & $_LINK['copy'];
+ $link_refer = & $_LINK['refer']; // New!
+ $link_rename = & $_LINK['rename'];
+
// ¥Ú¡¼¥¸¤Îɽ¼¨»þTRUE(¥Ð¥Ã¥¯¥¢¥Ã¥×¤Îɽ¼¨¡¢RecentChanges¤Îɽ¼¨¤ò½ü¤¯)
$is_page = (is_pagename($_page) && ! arg_check('backup') && $_page != $whatsnew);
<textarea name="msg" rows="$rows" cols="$cols">$s_postdata</textarea>
<br />
<input type="submit" name="preview" value="$btn_preview" accesskey="p" />
- <input type="submit" name="write" value="$_btn_update" accesskey="s" />
- <input type="submit" name="cancel" value="$_btn_cancel" accesskey="c" />
+ <input type="submit" name="write" value="$_btn_update" accesskey="s" />
$add_top
<input type="checkbox" name="notimestamp" value="true"$checked_time />
- <span style="small">$_btn_notchangetimestamp</span>
+ <span style="small">$_btn_notchangetimestamp</span>
+ <input type="submit" name="cancel" value="$_btn_cancel" accesskey="c" />
<textarea name="original" rows="1" cols="1" style="display:none">$s_original</textarea>
</div>
</form>
return "<a href=\"$script?cmd=search&word=$r_page\">$s_page</a> ";
}
-// ¸«½Ð¤·¤òÀ¸À® (Ãí¼á¤äHTML¥¿¥°¤ò½üµî)
+// ¸«½Ð¤·¤òÀ¸À® (µÓÃí¤äHTML¥¿¥°¤ò½üµî)
function make_heading(& $str, $strip = TRUE)
{
global $NotePattern;
- // ¸«½Ð¤·¤Î¸ÇÍIDÉô¤òºï½ü
+ // Cut fixed-anchors
$id = '';
+ $matches = array();
if (preg_match('/^(\*{0,3})(.*?)\[#([A-Za-z][\w-]+)\](.*?)$/m', $str, $matches)) {
$str = $matches[2] . $matches[4];
$id = $matches[3];
$str = preg_replace('/^\*{0,3}/', '', $str);
}
+ // Cut footnotes and tags
if ($strip === TRUE)
$str = strip_htmltag(make_link(preg_replace($NotePattern, '', $str)));
return $id;
}
+
+// Separate a page-name(or URL or null string) and an anchor
+// (last one standing) without sharp
+function anchor_explode($page, $strict_editable = FALSE)
+{
+ $pos = strrpos($page, '#');
+ if ($pos === FALSE) return array($page, '', FALSE);
+
+ // Ignore the last sharp letter
+ if ($pos + 1 == strlen($page)) {
+ $pos = strpos(substr($page, $pos + 1), '#');
+ if ($pos === FALSE) return array($page, '', FALSE);
+ }
+
+ $s_page = substr($page, 0, $pos);
+ $anchor = substr($page, $pos + 1);
+
+ if($strict_editable === TRUE && preg_match('/^[a-z][a-f0-9]{7}$/', $anchor)) {
+ return array ($s_page, $anchor, TRUE); // Seems fixed-anchor
+ } else {
+ return array ($s_page, $anchor, FALSE);
+ }
+}
+
+// Check header()s were sent already, or
+// there're blank lines or something out of php blocks
+function pkwk_headers_sent()
+{
+ if (version_compare(PHP_VERSION, '4.3.0', '>=')) {
+ if (headers_sent($file, $line))
+ die('Headers already sent at ' .
+ htmlspecialchars($file) .
+ ' line ' . $line . '.');
+ } else {
+ if (headers_sent())
+ die('Headers already sent.');
+ }
+}
+
+function pkwk_common_headers()
+{
+ if (! PKWK_OPTIMISE) pkwk_headers_sent();
+
+ $matches = array();
+ if(ini_get('zlib.output_compression') &&
+ preg_match('/\b(gzip|deflate)\b/i', $_SERVER['HTTP_ACCEPT_ENCODING'], $matches)) {
+ header('Content-Encoding: ' . $matches[1]);
+ header('Vary: Accept-Encoding');
+ }
+}
?>