function plugin_setlinebreak_convert() { global $line_break; static $default; if (!isset($default)) { $default = PukiWikiConfig::getParam('line_break'); } if (func_num_args() == 0) { PukiWikiConfig::setParam('line_break', !$PukiWikiConfig::getParam('line_break')); return ''; } $args = func_get_args(); switch (strtolower($args[0])) { case 'on': case 'true': case '1': PukiWikiConfig::setParam('line_break', 1); break; case 'off': case 'false': case '0': PukiWikiConfig::setParam('line_break', 0); break; case 'default': PukiWikiConfig::setParam('line_break', $default); break; default: return FALSE; } return ''; }
// ページ名の最短バイト数を指定 // AutoLinkを無効にする場合は0 // (PukiWikiMod及びB-Wiki専用) // PukiWikiConfig::setParam('autolink',3); ///////////////////////////////////////////////// // PukiWikiModへのリンクを静的URL形式にする // (PukiWikiMod専用) // PukiWikiConfig::setParam('use_static_url',1); ///////////////////////////////////////////////// // 拡張テーブル書式を使用する // PukiWikiModの拡張テーブル書式を使用可能にします。 // デフォルトでは、PukiWiki1.4.xのテーブル書式のみが // 使用可能です。 // PukiWikiConfig::setParam('ExtTable',true); ///////////////////////////////////////////////// // レンダリングキャッシュを有効にする // PukiWikiConfig::setParam('use_cache',1); ///////////////////////////////////////////////// ///////////////////////////////////////////////// // 一番外側の<p></p>を出力しない PukiWikiConfig::setParam('omit_paragraph', 1); ///////////////////////////////////////////////// // その他カスタマイズ可能なパラメータは、default.phpを // 参照して下さい。 // 但し、default.phpでの書式が違うので注意して下さい。 // default.phpにて、 // $_settings['nowikiname'] = 1; // とある場合には、当ファイルでは // PukiWikiConfig::setParam('nowikiname',1); // というように設定して下さい。 /////////////////////////////////////////////////
function plugin_pical_convert() { global $pical_has_cat, $picat_mycat, $pical_mid, $xoopsUser; if (!defined('XOOPS_ROOT_PATH')) { //XOOPS環境下で無い場合用 return ''; } if (!$pical_mid) { return ''; } $catname = ""; list($date, $catname, $option1) = func_get_args(); $date = str_replace(array('.', '/', '-'), array('', '', ''), $date); $yyyy = substr($date, 0, 4); $mm = substr($date, 4, 2); $dd = substr($date, 6, 2); $from = mktime(0, 0, 0, $mm, $dd, $yyyy); $to = mktime(0, 0, 0, $mm, $dd + 1, $yyyy); global $xoopsUser; if (!is_object($xoopsUser)) { // 閲覧者がゲストなら公開(PUBLIC)レコードのみ $whr_class = "class='PUBLIC'"; } else { if ($xoopsUser->isadmin()) { // 閲覧者が管理者なら常にTrue $whr_class = "1"; } else { // 通常ユーザなら、PUBLICレコードか、ユーザIDが一致するレコード、または、所属しているグループIDのうちの一つがレコードのグループIDと一致するレコード $gids = $xoopsUser->getGroups(); $uid = $xoopsUser->uid(); $ids = ''; // var_dump( $xoopsUser->getGroups() ) ; foreach ($gids as $gid) { $ids .= "{$gid},"; } $ids = substr($ids, 0, -1); if (intval($ids) == 0) { $group_section = ''; } else { $group_section = "OR groupid IN ({$ids})"; } $whr_class = "(class='PUBLIC' OR uid={$uid} {$group_section})"; } } $schedules = array(); $xoopsDB =& Database::getInstance(); $SQL = "SELECT id, uid, summary, location, contact, description, UNIX_TIMESTAMP(dtstamp) as dtstamp, start, end, allday FROM " . $xoopsDB->prefix('pical_event') . " WHERE start < " . $to . " AND end >= " . $from . " AND (rrule_pid=0 OR rrule_pid=id) " . " AND admission<>0 AND {$whr_class} AND " . plugin_pical_where_categories($catname) . " ORDER by allday DESC, start"; // echo $SQL; if (!($query = $xoopsDB->query($SQL, $maxtopic, 0))) { echo "Error! (piCal)"; } $margin = PukiWikiConfig::getParam('_ul_margin') + PukiWikiConfig::getParam('_ul_left_margin'); $style = sprintf(PukiWikiConfig::getParam('_list_pad_str'), 1, $margin, $margin); $retstr = "<ul {$style}>"; while ($result = $xoopsDB->fetchArray($query)) { $linkurl = XOOPS_URL . "/modules/piCal/index.php?action=View&caldate=" . $result['dtstamp'] . "&event_id=" . intval($result['id']); $color_st = ""; $color_ed = ""; if ($result['allday'] == 5) { $color_st = "<font color=\"red\">"; $color_ed = "</font>"; $range = "記念日</font>"; } else { if ($result['allday'] == 3) { $range = date("m/d", $result['start']) . "-" . date("m/d", $result['end']); } else { if ($result['allday'] == 1) { $range = "終日"; } else { $range = date("H:i", $result['start']) . "-" . date("H:i", $result['end']); } } } //改行文字セット IE は " " $br = strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? " " : " "; $title = " title=\""; if ($result['location']) { $title .= "場所:{$result['location']}{$br}"; } if ($result['contact']) { $title .= "連絡先:{$result['contact']}{$br}"; } if ($result['description']) { $title .= "詳細:{$result['description']}{$br}"; } $title .= "\""; $retstr .= "<li style=\"vertical-align:middle\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"width:14ex; text-align:left;vertical-align:middle; padding:0;\">" . $color_st . $range . $color_ed . "</td><td style=\"text-align:left;vertical-align:middle; padding:0;\"><a href=\"" . $linkurl . "\"" . $title . ">" . $color_st . $result['summary'] . $color_ed . "</a></td></tr></table></li>"; } $retstr .= "</ul>"; return $retstr; }
function get_real_pagename($page) { static $real_pages = array(); $page = PukiWikiFunc::strip_bracket($page); if (isset($real_pages[$page])) { return $real_pages[$page]; } $real_pages[$page] = false; foreach (PukiWikiConfig::getParam('wiki_common_dirs') as $dir) { $check = $dir . $page; if (PukiWikiFunc::is_page($check)) { $real_pages[$page] = $check; break; } } return $real_pages[$page]; }
function _init_PukiWiki_env() { //他のPukiWikiシステムとの連携時の初期化 Original By nao-pon // PukiWikiMod用共通リンクへの対応 // AutoLink有効時に、AutoLinkデータ読込と、AutoLinkデータ更新時のキャッシュクリア // PukiWikiMod 共通リンクディレクトリ読み込み by nao-pon $wiki_common_dirs = ""; if (defined('MOD_PUKI_WIKI_CACHE_DIR')) { if (MOD_PUKI_WIKI_VER == "1.3" && file_exists(MOD_PUKI_WIKI_CACHE_DIR . "config.php")) { include MOD_PUKI_WIKI_CACHE_DIR . "config.php"; } } // PukiWikiMod 共通リンクディレクトリ展開 $wiki_common_dirs = preg_split("/\\s+/", trim($wiki_common_dirs)); sort($wiki_common_dirs, SORT_STRING); PukiWikiConfig::setParam('wiki_common_dirs', $wiki_common_dirs); // AutoLinkデータ読み込みとチェック(AutoLink有効時のみ) $autolink_dat = array(); if (PukiWikiConfig::getParam('autolink') && defined('MOD_PUKI_WIKI_CACHE_DIR') && file_exists(MOD_PUKI_WIKI_CACHE_DIR . 'autolink.dat')) { $autolink_dat = file(MOD_PUKI_WIKI_CACHE_DIR . 'autolink.dat'); if (!file_exists(MOD_PUKI_CACHE_DIR . 'autolink.dat') || $autolink_dat != file(MOD_PUKI_CACHE_DIR . 'autolink.dat')) { // 比較用オートリンクデータを保存 @(list($pattern, $pattern_a, $forceignorelist) = $autolink_dat); if ($fp = fopen(MOD_PUKI_CACHE_DIR . 'autolink.dat', 'wb')) { set_file_buffer($fp, 0); flock($fp, LOCK_EX); rewind($fp); fputs($fp, trim($pattern) . "\n"); if (count($autolink_dat) == 3) { fputs($fp, trim($pattern_a) . "\n"); fputs($fp, trim($forceignorelist) . "\n"); } flock($fp, LOCK_UN); fclose($fp); } else { // die_message('Cannot write autolink file '. MOD_PUKI_CACHE_DIR . '/autolink.dat<br />Maybe permission is not writable'); } // オートリンクデータが更新されているのでキャッシュをクリア $dh = dir(MOD_PUKI_CACHE_DIR); while (($file = $dh->read()) !== FALSE) { if (substr($file, -6) != '.cache') { continue; } $file = MOD_PUKI_CACHE_DIR . $file; unlink($file); } $dh->close(); } } PukiWikiConfig::setParam('autolink_dat', $autolink_dat); // ページ名エイリアス取得 PukiWikiConfig::setParam('pagename_aliases', PukiWikiFunc::get_pagename_aliases()); }
$_settings['_dl_left_margin'] = 0; // リストと画面左端との間隔(px) $_settings['_dl_margin'] = 16; // リストの階層間の間隔(px) $_settings['_list_pad_str'] = ' class="' . $_settings['style_prefix'] . 'list%d" style="padding-left:%dpx;margin-left:%dpx"'; ///////////////////////////////////////////////// // 水平線のタグ $_settings['hr'] = '<hr class="' . $_settings['style_prefix'] . 'full_hr" />'; ///////////////////////////////////////////////// // 文末の注釈の直前に表示するタグ $_settings['note_hr'] = '<hr class="' . $_settings['style_prefix'] . 'note_hr" />'; ///////////////////////////////////////////////// // HTTPリクエストにプロキシサーバを使用する $_settings['use_proxy'] = 0; // proxy ホスト $_settings['proxy_host'] = 'proxy.xxx.yyy.zzz'; // proxy ポート番号 $_settings['proxy_port'] = 8080; // proxyのBasic認証が必要な場合に1 $_settings['need_proxy_auth'] = 0; // proxyのBasic認証用ID,PW $_settings['proxy_auth_user'] = '******'; $_settings['proxy_auth_pass'] = '******'; // プロキシサーバを使用しないホストのリスト $_settings['no_proxy'] = array('localhost', '127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16'); //置き換えルール $_entity_pattern = trim(join('', file(MOD_PUKI_CONFIG_DIR . 'entities.dat'))); $_rules = array("COLOR\\(([^\\(\\)]*)\\){([^}]*)}" => '<span style="color:$1">$2</span>', "SIZE\\(([^\\(\\)]*)\\){([^}]*)}" => '<span style="font-size:$1px">$2</span>', "COLOR\\(([^\\(\\)]*)\\):((?:(?!COLOR\\([^\\)]+\\)\\:).)*)" => '<span style="color:$1">$2</span>', "SIZE\\(([^\\(\\)]*)\\):((?:(?!SIZE\\([^\\)]+\\)\\:).)*)" => '<span class="' . PukiWikiConfig::getParam('style_prefix') . 'size$1">$2</span>', "%%%(?!%)((?:(?!%%%).)*)%%%" => '<ins>$1</ins>', "%%(?!%)((?:(?!%%).)*)%%" => '<del>$1</del>', "'''(?!')((?:(?!''').)*)'''" => '<em>$1</em>', "''(?!')((?:(?!'').)*)''" => '<strong>$1</strong>', '&br;' => '<br />', "\r" => "<br />\n", '^#contents$' => '<del>#contents</del>', '&(#[0-9]+|#x[0-9a-f]+|' . $_entity_pattern . ');' => '&$1;'); if (defined('MOD_PUKI_UPLOAD_URL')) { $_rules = array_merge($_rules, array('\\s(\\:\\))' => ' <img src="' . MOD_PUKI_UPLOAD_URL . 'smile.gif" alt="$1" />', '\\s(\\:D)' => ' <img src="' . MOD_PUKI_UPLOAD_URL . 'bigsmile.gif" alt="$1" />', '\\s(\\:p)' => ' <img src="' . MOD_PUKI_UPLOAD_URL . 'huh.gif" alt="$1" />', '\\s(XD)' => ' <img src="' . MOD_PUKI_UPLOAD_URL . 'oh.gif" alt="$1" />', '\\s(\\;\\))' => ' <img src="' . MOD_PUKI_UPLOAD_URL . 'wink.gif" alt="$1" />', '\\s(\\;\\()' => ' <img src="' . MOD_PUKI_UPLOAD_URL . 'sad.gif" alt="$1" />', '(&heart;)' => ' <img src="' . MOD_PUKI_UPLOAD_URL . 'heart.gif" alt="$1" />', '&(smile);' => ' <img alt="[$1]" src="' . MOD_PUKI_UPLOAD_URL . 'smile.gif" />', '&(bigsmile);' => ' <img alt="[$1]" src="' . MOD_PUKI_UPLOAD_URL . 'bigsmile.gif" />', '&(huh);' => ' <img alt="[$1]" src="' . MOD_PUKI_UPLOAD_URL . 'huh.gif" />', '&(oh);' => ' <img alt="[$1]" src="' . MOD_PUKI_UPLOAD_URL . 'oh.gif" />', '&(wink);' => ' <img alt="[$1]" src="' . MOD_PUKI_UPLOAD_URL . 'wink.gif" />', '&(sad);' => ' <img alt="[$1]" src="' . MOD_PUKI_UPLOAD_URL . 'sad.gif" />', '&(heart);' => ' <img alt="[$1]" src="' . MOD_PUKI_UPLOAD_URL . 'heart.gif" />', '&(worried);' => ' <img alt="[$1]" src="' . MOD_PUKI_UPLOAD_URL . 'worried.png" />', '\\s(\\(\\^\\^\\))' => ' <img alt="$1" src="' . MOD_PUKI_UPLOAD_URL . 'smile.gif" />', '\\s(\\(\\^-\\^)' => ' <img alt="$1" src="' . MOD_PUKI_UPLOAD_URL . 'bigsmile.gif" />', '\\s(\\(\\.\\.;)' => ' <img alt="$1" src="' . MOD_PUKI_UPLOAD_URL . 'oh.gif" />', '\\s(\\(\\^_-\\))' => ' <img alt="$1" src="' . MOD_PUKI_UPLOAD_URL . 'wink.gif" />', '\\s(\\(--;)' => ' <img alt="$1" src="' . MOD_PUKI_UPLOAD_URL . 'sad.gif" />', '\\s(\\(\\^\\^;\\))' => ' <img alt="$1" src="' . MOD_PUKI_UPLOAD_URL . 'worried.png" />')); }
/** * Replace PukiWiki with their equivalent HTML formatting * * @param string $text * * @return string */ function &renderWikistyle(&$text, $xcode = 1, $image = 1, $br = 1) { //modPukiWiki include_once XOOPS_ROOT_PATH . '/class/modPukiWiki/PukiWiki.php'; static $render; if (!is_object($render)) { $render =& new PukiWikiRender('xoops'); } $text =& $this->codePreConv($text, $xcode); // Ryuji_edit(2003-11-18) PukiWikiConfig::setParam('line_break', $br); $text = $render->transform($text); // XOOPS Quote style $text = str_replace(array('<blockquote>', '</blockquote>'), array(_QUOTEC . '<div class="xoopsQuote"><blockquote>', '</blockquote></div>'), $text); return $text; }
function wikiElementConv($text, $br = 1) { include_once XOOPS_ROOT_PATH . '/class/modPukiWiki/PukiWiki.php'; static $render; if (!is_object($render)) { $render =& new PukiWikiRender('xoops_2'); } PukiWikiConfig::setParam('line_break', $br); $text = $render->transform(str_replace('\\"', '"', base64_decode($text))); // XOOPS Quote style $text = str_replace(array('<blockquote>', '</blockquote>'), array(_QUOTEC . '<div class="xoopsQuote"><blockquote>', '</blockquote></div>'), $text); return $text; }
//modPukiWiki本体のインクルード require dirname(__FILE__) . '/../modPukiWiki/PukiWiki.php'; //PukiWikiRenderインスタンス生成 $render = new PukiWikiRender(); //PukiWikiのソースの取得先決定(ローカルWikiファイルの表示用) if ($_GET['page']) { $text = $render->getLocalPage($page = NULL); } else { $text = get_sample_wiki(); } //InterWikiNameの設定 PukiWikiConfig::addInterWiki('[http://www.google.co.jp/search?ie=utf8&oe=utf8&q=$1&lr=lang_ja&hl=ja Google] utf8'); //テーブル拡張書式を有効にする PukiWikiConfig::setParam('ExtTable', true); //ローカルWikiファイル表示用URL PukiWikiConfig::setParam('LocalShowURL', "index.php?page=%s"); //レンダリングして表示 echo $render->transform($text); ?> </body> </html> <?php function get_sample_wiki() { $text = <<<EOD ***ヘッディング *ヘッディング1 文章1 **ヘッディング2 文章2
function setParent(&$parent) { parent::setParent($parent); $step = $this->level; $margin = $this->left_margin; if (isset($parent->parent) and is_a($parent->parent, 'PukiWikiListContainer')) { $step -= $parent->parent->level; $margin = 0; } $margin += $this->margin * ($step == $this->level ? 1 : $step); $this->style = sprintf(PukiWikiConfig::getParam('_list_pad_str'), $this->level, $margin, $margin); }
<?php ///////////////////////////////////////////////// //スタイルclassのプレフィックス PukiWikiConfig::setParam('style_prefix', 'modPukiWP_'); ///////////////////////////////////////////////// // URL文字列を自動的にリンク変換する場合は1 // PukiWikiConfig::setParam('autourllink',3); ///////////////////////////////////////////////// // 拡張テーブル書式を使用する // PukiWikiConfig::setParam('ExtTable',true); ///////////////////////////////////////////////// // レンダリングキャッシュを有効にする // $_settings['use_cache'] = 0; ///////////////////////////////////////////////// // InterWikiNameの定義サンプル // PukiWikiConfig::addInterWiki('[http://www.google.co.jp/search?ie=utf8&oe=utf8&q=$1&lr=lang_ja&hl=ja Google] utf8'); // PukiWikiConfig::addInterWiki('['.XOOPS_URL.'/modules/wordpress/index.php? WordPress]');
function format_list($date, $str) { return "<strong>{$date}</strong>\n<ul class=\"" . PukiWikiConfig::getParam('style_prefix') . "recent_list\">\n{$str}</ul>\n"; }
<?php //******************* ご注意 ******************* // このファイルを直接編集頂いても良いですが、 // バージョンアップ時に上書きされるのを防ぐために // このファイル(xoops.dist.php)をxoops.phpに // コピーしてから、カストマイズする事をおすすめします。 //******************* ご注意 ******************* ///////////////////////////////////////////////// //XOOPS固有の設定(以下は変えない事を推奨) ///////////////////////////////////////////////// // URLの自動リンク生成はmodPukiWiki側では行わない PukiWikiConfig::setParam('autourllink', 1); ///////////////////////////////////////////////// ///////////////////////////////////////////////// //カストマイズ可能な代表的な設定例 ///////////////////////////////////////////////// // AutoLinkを有効にする場合は、AutoLink対象となる // ページ名の最短バイト数を指定 // AutoLinkを無効にする場合は0 // (PukiWikiMod及びB-Wiki専用) // PukiWikiConfig::setParam('autolink',3); ///////////////////////////////////////////////// // PukiWikiModへのリンクを静的URL形式にする // (PukiWikiMod専用) // PukiWikiConfig::setParam('use_static_url',1); ///////////////////////////////////////////////// // 拡張テーブル書式を使用する // PukiWikiModの拡張テーブル書式を使用可能にします。 // デフォルトでは、PukiWiki1.4.xのテーブル書式のみが // 使用可能です。
function get_interwiki_url($name, $param) { static $interwikinames; static $encode_aliases = array('sjis' => 'SJIS', 'euc' => 'EUC-JP', 'utf8' => 'UTF-8'); $WikiName = PukiWikiConfig::getParam('WikiName'); if (!isset($interwikinames)) { $interwikinames = array(); foreach (PukiWikiConfig::getInteWikiArray() as $line) { if (preg_match('/\\[((?:(?:https?|ftp|news):\\/\\/|\\.\\.?\\/)[!~*\'();\\/?:\\@&=+\\$,%#\\w.-]*)\\s([^\\]]+)\\]\\s?([^\\s]*)/', $line, $matches)) { $interwikinames[$matches[2]] = array($matches[1], $matches[3]); } } } if (!array_key_exists($name, $interwikinames)) { return FALSE; } list($url, $opt) = $interwikinames[$name]; // 文字エンコーディング switch ($opt) { // YukiWiki系 case 'yw': if (!preg_match("/{$WikiName}/", $param)) { $param = '[[' . mb_convert_encoding($param, 'SJIS', MOD_PUKI_SOURCE_ENCODING) . ']]'; } // $param = htmlspecialchars($param); break; // moin系 // moin系 case 'moin': $param = str_replace('%', '_', rawurlencode($param)); break; // 内部文字エンコーディングのままURLエンコード // 内部文字エンコーディングのままURLエンコード case '': case 'std': $param = rawurlencode($param); break; // URLエンコードしない // URLエンコードしない case 'asis': case 'raw': // $param = htmlspecialchars($param); break; default: // エイリアスの変換 if (array_key_exists($opt, $encode_aliases)) { $opt = $encode_aliases[$opt]; } // 指定された文字コードへエンコードしてURLエンコード $param = rawurlencode(mb_convert_encoding($param, $opt, 'auto')); } // パラメータを置換 if (strpos($url, '$1') !== FALSE) { $url = str_replace('$1', $param, $url); } else { $url .= $param; } return $url; }
function wrap_table($text, $align, $around) { $margin = $around ? '0px' : 'auto'; $margin_align = $align == 'center' ? '' : ";margin-{$align}:0px"; return "<table class=\"" . PukiWikiConfig::getParam('style_prefix') . "style_table\" style=\"margin:{$margin}{$margin_align}\">\n<tr><td class=\"" . PukiWikiConfig::getParam('style_prefix') . "style_td\">\n{$text}\n</td></tr>\n</table>\n"; }
function &renderWikistyle(&$text, $br = 1, $use_cache = 1) { //modPukiWiki include_once XOOPS_ROOT_PATH . '/class/modPukiWiki/PukiWiki.php'; static $render; if (!is_object($render)) { $render =& new PukiWikiRender(); } $br = $br ? 1 : 0; $use_cache = $use_cache ? 1 : 0; PukiWikiConfig::setParam('line_break', $br); PukiWikiConfig::setParam('use_cache', $use_cache); PukiWikiConfig::setParam('autolink', 1); PukiWikiConfig::setParam('nowikiname', 0); PukiWikiConfig::setParam('makepage_link', 0); // BB Code email $text = preg_replace("/\\[email](.+?)\\[\\/email]/i", "\$1", $text); // BB Code url $text = preg_replace("/\\[url=(['\"]?)((?:ht|f)tp[s]?:\\/\\/[^\"'<>]+)\\1\\](.+)\\[\\/url\\]/sU", "[[\$3:\$2]]", $text); $texts = preg_split("/\\[code].*\\[\\/code\\]/sU", $text); preg_match_all("/\\[code].*\\[\\/code\\]/sU", $text, $match, PREG_PATTERN_ORDER); $ret = ""; $i = 0; $count = count($match[0]); foreach ($texts as $block) { if ($i < $count) { $ret .= $block . "\n\n_____cODe_" . $i . "_____\n\n"; } else { $ret .= $block; } $i++; } $ret = $render->transform($ret); while ($i >= 0) { $ret = str_replace("_____cODe_" . $i . "_____", $match[0][$i], $ret); $i--; } // XOOPS Quote style $ret = str_replace(array('<blockquote>', '</blockquote>'), array(_QUOTEC . '<div class="xoopsQuote"><blockquote>', '</blockquote></div>'), $ret); return $ret; }
function plugin_br_convert() { return '<br class="' . PukiWikiConfig::getParam('style_prefix') . 'spacer" />'; }
function plugin_clear_convert() { return '<div class="' . PukiWikiConfig::getParam('style_prefix') . 'clear"></div>'; }