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 ''; }
function plugin_br_convert() { return '<br class="' . PukiWikiConfig::getParam('style_prefix') . 'spacer" />'; }
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 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" />')); }
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); }
function format_list($date, $str) { return "<strong>{$date}</strong>\n<ul class=\"" . PukiWikiConfig::getParam('style_prefix') . "recent_list\">\n{$str}</ul>\n"; }
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 plugin_clear_convert() { return '<div class="' . PukiWikiConfig::getParam('style_prefix') . 'clear"></div>'; }