function do_block($page, $param1, $param2) { $prefix = resolvepath(trim($param1)); if ($prefix == '') { $prefix = $page->getpagename(); } $prefix .= '/'; $db = DataBase::getinstance(); $query = "SELECT pagename FROM page"; $query .= " WHERE pagename like '{$prefix}%'"; $query .= " ORDER BY pagename ASC"; $result = $db->query($query); $list = array(); while ($row = $db->fetch($result)) { $list[] = $row['pagename']; } if ($list == array()) { return ''; } natsort($list); $len = strlen($prefix); foreach ($list as $pagename) { $link[] = '<li>' . makelink(Page::getinstance($pagename), substr($pagename, $len)) . '</li>'; } return "<ul>\n" . join("\n", $link) . "\n</ul>\n"; }
function do_block($page, $param1, $param2) { $num = (int) trim($param1) > 0 ? (int) trim($param1) : 15; $exp = array(); foreach (array_map('trim', explode("\n", $param2)) as $s) { if ($s != '') { $exp[] = $s; } } $db = DataBase::getinstance(); $query = "SELECT pagename,timestamp FROM page"; if ($exp != array()) { $_exp = $db->escape('(?:' . join('|', $exp) . ')'); $query .= " WHERE php('mb_ereg', '{$_exp}', pagename) = 0"; } $query .= " ORDER BY timestamp DESC, pagename ASC LIMIT {$num}"; $result = $db->query($query); $list = array(); while ($row = $db->fetch($result)) { $list[date('Y-m-d', $row['timestamp'])][] = makelink(Page::getinstance($row['pagename'])); } $smarty = $this->getSmarty(); $smarty->assign('list', $list); return $smarty->fetch('recent.tpl.htm'); }
public function do_url() { if (!isset(Vars::$get['blogname']) || trim(Vars::$get['blogname']) == '') { throw new PluginException('パラメータが足りません。', $this); } $blogname = trim(Vars::$get['blogname']); $num = isset(Vars::$get['recent']) && Vars::$get['recent'] > 0 ? (int) Vars::$get['recent'] : 15; $db = DataBase::getinstance(); $_exp = $db->escape('^' . mb_ereg_quote($blogname) . '/\\d{4}-\\d{2}-\\d{2}/'); $query = "SELECT pagename,timestamp FROM page"; $query .= " WHERE php('mb_ereg', '{$_exp}', pagename)"; $query .= " ORDER BY timestamp DESC, pagename ASC LIMIT {$num}"; $result = $db->query($query); $list = array(); $prefixsize = mb_strlen($blogname . '/9999-99-99/'); while ($row = $db->fetch($result)) { $item['timestamp'] = $row['timestamp']; $item['pagename'] = mb_substr($row['pagename'], $prefixsize); $item['url'] = getURL(Page::getinstance($row['pagename'])); $list[] = $item; } $smarty = $this->getSmarty(); $smarty->assign('rssurl', SCRIPTURL . '?' . htmlspecialchars($_SERVER['QUERY_STRING'])); $smarty->assign('sitename', SITENAME); $smarty->assign('blogurl', getURL(Page::getinstance($blogname))); $smarty->assign('blogname', $blogname); $smarty->assign('list', $list); header('Content-Type: application/xml; charset=UTF-8'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $item['timestamp'][0]) . ' GMT'); $smarty->display('blogrss10.tpl.htm'); exit; }
function do_url() { if (!keys_exists(Vars::$post, 'base', 'config')) { throw new PluginException('パラメータが足りません', $this); } $source = Page::getinstance(':config/plugin/tracker/' . Vars::$post['config'] . '/page')->getsource(); foreach (Vars::$post as $key => $data) { if (mb_strpos($key, 'param_') === 0) { $name = '[' . mb_substr($key, 6) . ']'; $_data = trim($data); $_data = mb_ereg_replace('\\[', '[', $_data, 'm'); $_data = mb_ereg_replace('\\]', ']', $_data, 'm'); $replace[$name] = $_data; } } $replace['[_date]'] = date('Y-m-d H:i:s'); $replace['[_base]'] = Vars::$post['base']; foreach ($replace as $name => $data) { $source = mb_ereg_replace(mb_ereg_quote($name), $data, $source, 'm'); } $db = DataBase::getinstance(); self::$sqlite_pattern = '^' . mb_ereg_quote(Vars::$post['base']) . '/(\\d+)'; $db->create_aggregate('plugin_tracker_maxnum', array('Plugin_tracker', 'sqlite_maxnum'), array('Plugin_tracker', 'sqlite_maxnum_finalize'), 1); $row = $db->fetch($db->query("SELECT plugin_tracker_maxnum(pagename) FROM page")); $num = $row[0] + 1; $title = isset(Vars::$post['param_title']) && trim(Vars::$post['param_title']) != '' ? '/' . trim(Vars::$post['param_title']) : ''; $page = Page::getinstance(Vars::$post['base'] . '/' . $num . $title); $page->write($source); redirect($page); }
function do_url() { if (!keys_exists(Vars::$post, 'num', 'type', 'pagename')) { throw new PluginException('パラメータが足りません。', $this); } if (trim(Vars::$post['text']) == '') { redirect(Page::getinstance(Vars::$post['pagename'])); } $page = Page::getinstance(Vars::$post['pagename']); $source = explode("\n", Page::getinstance(Vars::$post['pagename'])->getsource()); $count = 0; for ($i = 0; $i < count($source); $i++) { if (mb_ereg('^#comment(?:\\s|\\(|{|$)', $source[$i])) { if ($count == Vars::$post['num']) { $name = trim(Vars::$post['name']); $text = mb_ereg_replace('{', '&173;', Vars::$post['text']); $text = mb_ereg_replace('}', '&175;', $text); $time = date('Y-m-d H:i:s', time()); $str = ":[[{$name}>UserPage/{$name}]] &size(80%) {{$time}}:"; $str .= mb_ereg("\n", $str) ? "\n#block{{$text}}" : " {$text}"; $n = $i + (Vars::$post['type'] == 'below' ? 1 : 0); array_splice($source, $n, 0, $str); $page->write(join("\n", $source)); setcookie('name', $name, time() + 60 * 60 * 24 * 30); redirect($page); } $count++; } } $ret['title'] = 'error'; $smarty = $this->getSmarty(); $smarty->assign('text', Vars::$post['text']); $ret['body'] = $smarty->fetch('error.tpl.htm'); return $ret; }
public function do_url() { $num = isset(Vars::$get['recent']) && Vars::$get['recent'] > 0 ? (int) Vars::$get['recent'] : 15; $db = DataBase::getinstance(); $query = "SELECT pagename,timestamp FROM page"; if (isset(Vars::$get['exp']) && trim(Vars::$get['exp']) != '') { $_inc = $db->escape(Vars::$get['exp']); $query .= " WHERE php('mb_ereg', '{$_inc}', pagename)"; } else { if (isset(Vars::$get['include']) && trim(Vars::$get['include']) != '') { $_inc = $db->escape(glob2ereg(Vars::$get['include'])); $query .= " WHERE php('mb_ereg', '{$_inc}', pagename)"; } } $query .= " ORDER BY timestamp DESC, pagename ASC LIMIT {$num}"; $result = $db->query($query); $list = array(); while ($row = $db->fetch($result)) { $item['timestamp'] = $row['timestamp']; $item['pagename'] = $row['pagename']; $item['url'] = getURL(Page::getinstance($row['pagename'])); $list[] = $item; } $smarty = $this->getSmarty(); $smarty->assign('rssurl', SCRIPTURL . '?' . htmlspecialchars($_SERVER['QUERY_STRING'])); $smarty->assign('sitename', SITENAME); $smarty->assign('baseurl', SCRIPTURL); $smarty->assign('list', $list); header('Content-Type: application/xml; charset=UTF-8'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $item['timestamp'][0]) . ' GMT'); $smarty->display('rss10.tpl.htm'); exit; }
function do_block($page, $param1, $param2) { $prefix = trim($param1); $pattern = '^' . mb_ereg_quote($prefix) . '/(\\d{1,4})-(\\d{2})'; if (mb_ereg($pattern, $page->getpagename(), $m)) { $year = $m[1]; $month = $m[2]; } else { if (isset(Vars::$get['year']) && isset(Vars::$get['month'])) { $year = Vars::$get['year']; $month = Vars::$get['month']; } else { $year = date('Y'); $month = date('n'); } } $smarty = $this->getSmarty(); $day = 1; $last = date('t', mktime(0, 0, 0, $month, 1, $year)); while ($day <= $last) { $line = array_fill(0, 7, ' '); $d = date('w', mktime(0, 0, 0, $month, $day, $year)); for (; $d < 7 && $day <= $last; $d++, $day++) { $p = Page::getinstance(sprintf('%s/%04d-%02d-%02d', $prefix, $year, $month, $day)); $line[$d] = $p->isexist() ? makelink($p, $day) : $day; } $table[] = $line; } $smarty->assign('table', $table); $smarty->assign('year', $year); $smarty->assign('month', $month); $smarty->assign('prefix', $prefix); $smarty->assign('page', $page->getpagename()); return $smarty->fetch('blogcalendar.tpl.htm'); }
function do_url() { if (!keys_exists(Vars::$post, 'num', 'pagename')) { throw new PluginException('パラメータが足りません。', $this); } if (trim(Vars::$post['text']) == '') { redirect(Page::getinstance(Vars::$post['pagename'])); } $page = Page::getinstance(Vars::$post['pagename']); $source = explode("\n", Page::getinstance(Vars::$post['pagename'])->getsource()); $count = 0; for ($i = 0; $i < count($source); $i++) { if (mb_ereg('^#bbsres(?:\\s|\\(|{|$)', $source[$i])) { if ($count == Vars::$post['num']) { $name = isset(Vars::$post['name']) ? trim(Vars::$post['name']) : ''; $smarty = $this->getSmarty(); $smarty->assign('name', $name); $smarty->assign('text', Vars::$post['text']); $smarty->assign('timestamp', time()); array_splice($source, $i, 0, $smarty->fetch('bbsres.tpl')); $page->write(join("\n", $source)); setcookie('name', trim($name), time() + 60 * 60 * 24 * 30); redirect($page); } $count++; } } $ret['title'] = 'error'; $smarty = $this->getSmarty(); $smarty->assign('text', Vars::$post['text']); $ret['body'] = $smarty->fetch('error.tpl.htm'); return $ret; }
protected function includepage($pagename) { $source = mb_ereg_replace('#blognavi', '', Page::getinstance($pagename)->getsource()); $smarty = $this->getSmarty(); $smarty->assign('title', $pagename); $smarty->assign('body', convert_block($source, $pagename)); return $smarty->fetch('include.tpl.htm'); }
function doing() { $keywords = 'penis|buy|vimax|sonia|online|cheap|lady|a href|' . 'sex|viagra'; if (preg_match('/.*(' . $keywords . ')/i', trim(Vars::$post['text']))) { redirect(Page::getinstance(Vars::$post['pagename'])); //$this->getSmarty()->display('spam.tpl.html'); exit; } }
function update($page, $arg) { if (!$page->isexist() && $page->isexist(1)) { $mailflag = Mail::getinstance()->setsending(false); $logpage = Page::getinstance(self::LOGPAGE); $log = '-' . date('Y-m-d (D) H:i:s') . ' [[' . $page->getpagename() . ']]'; $logpage->write($log . "\n" . $logpage->getsource()); Mail::getinstance()->setsending($mailflag); } }
/** * ignoreリストを構築する。 */ protected function makeignorelist() { $this->ignorelist = array(); $page = Page::getinstance(self::ignorelistpage); $lines = explode("\n", $page->getsource()); foreach ($lines as $str) { if (mb_ereg('^-\\[\\[(.+)\\]\\]', $str, $m)) { $this->ignorelist[] = $m[1]; } } }
function do_block($page, $param1, $param2) { $p = Page::getinstance($param1); if (!$p->isexist() || $p->isnull()) { return '<p class="warning">ページがありません。</p>'; } $smarty = $this->getSmarty(); $smarty->assign('title', $p->getpagename()); $smarty->assign('body', convert_Page($p)); return $smarty->fetch('include.tpl.htm'); }
function do_inline($page, $param1, $param2) { mb_ereg('^(.*?)(?:\\s*,\\s*(.*?))?$', trim($param1), $m); $file = $m[1]; $page = $m[2] == '' ? $page : Page::getinstance($m[2]); if (!Attach::getinstance($page)->isexist($file)) { return '<span class="warning">ファイルがありません</span>'; } $url = SCRIPTURL . '?cmd=attach' . '&param=download' . '&page=' . rawurlencode($page->getpagename()) . '&file=' . rawurlencode($file); return '<a href="' . $url . '">' . htmlspecialchars($file) . '</a>'; }
function do_url() { if (isset(Vars::$get['param']) && Vars::$get['param'] == 'restruct') { return $this->restruct(); } else { if (isset(Vars::$get['page'])) { return $this->showall(Page::getinstance(Vars::$get['page'])); } } throw new CommandException('パラメータがちがいます', $this); }
public function do_url() { if (!isset(Vars::$get['page'])) { throw new CommandException('パラメータが足りません。', $this); } $page = Page::getinstance(Vars::$get['page']); $ret['title'] = $page->getpagename() . ' の変更点'; $smarty = $this->getSmarty(); $smarty->assign('diff', diff($page->getsource(1), $page->getsource(0))); $ret['body'] = $smarty->fetch('diff.tpl.htm'); $ret['pagename'] = $page->getpagename(); return $ret; }
function do_url() { if (empty(Vars::$get['page']) || empty(Vars::$get['file'])) { exit; } if (!mb_ereg('\\.(.+?)$', Vars::$get['file'], $m) || empty(self::$type[$m[1]])) { exit; } $file = AttachedFile::getinstance(Vars::$get['file'], Page::getinstance(Vars::$get['page'])); header('Content-Type: ' . self::$type[$m[1]]); header('Content-Length: ' . $file->getsize()); echo $file->getdata(); exit; }
function do_block($page, $param1, $param2) { $arg = array_map('trim', explode(',', $param1)); $base = isset($arg[0]) && $arg[0] != '' ? $arg[0] : $page->getpagename(); $config = isset($arg[1]) && $arg[1] != '' ? $arg[1] : 'default'; $this->sortkey = isset($arg[2]) ? array_slice($arg, 2) : array(); $configpagename = ':config/plugin/tracker/' . $config; $configdata = Plugin_tracker::Page2data(Page::getinstance($configpagename)); $this->type2name = array(); foreach ($configdata['form'] as $name => $line) { if (mb_ereg('\\[(.+?)\\]', $line[0], $m)) { $this->type2name[$m[1]] = $name; } } $this->selectorder = $this->getselectorderlist($configdata); $bgcolorlist = $this->getbgcolorlist($configdata); $list = array(); $db = DataBase::getinstance(); $query = 'SELECT pagename, source FROM page'; $query .= ' WHERE pagename like \'' . $db->escape($base) . '%\''; $query .= ' ORDER BY timestamp DESC'; $result = $db->query($query); while ($row = $db->fetch($result)) { if (!mb_ereg('^' . mb_ereg_quote($base) . '/(\\d+)/(.+)$', $row[0], $m)) { continue; } $item = array(); $item['var']['_page'] = $row[0]; $item['var']['_num'] = $m[1]; $item['var']['_title'] = $m[2]; foreach (explode("\n", $row[1]) as $line) { if (mb_ereg('^[-ー・](.+?)[\\t ]*[::][\\t ]*(.+?)[\\t ]*$', $line, $m)) { if (!isset($item[$m[1]])) { $item['var'][$m[1]] = $m[2]; $item['bgcolor'][$m[1]] = isset($bgcolorlist[$m[1]][$m[2]]) ? $bgcolorlist[$m[1]][$m[2]] : null; } } } $list[] = $item; } usort($list, array($this, 'cmp')); $smarty = $this->getSmarty(); $smarty->assign('list', $list); if (trim($param2) == '') { return '<p class="warning">表示項目を指定してください</p>'; } $smarty->assign('varname', array_map('trim', explode(',', $param2))); return $smarty->fetch('trackerlist.tpl.htm'); }
function do_url() { if (!isset(Vars::$get['page'])) { throw new PluginException('パラメータが足りません。', $this); } $page = Page::getinstance(Vars::$get['page']); if (isset(Vars::$post['url']) && count(Vars::$post['url']) > 0 && isset(Vars::$post['password'])) { if (md5(Vars::$post['password']) == ADMINPASS) { return $this->delete($page, Vars::$post['url']); } else { return $this->show($page, Vars::$post['url']); } } return $this->show($page); }
function update($obj, $arg) { if (is_array($arg) && $arg[0] == 'write') { $page = $arg[1]; if ($page->isexist(0) && !$page->isexist(1)) { //新規の場合 if (mb_ereg('^(.*)/.+?$', $page->getpagename(), $m)) { $parent = Page::getinstance($m[1]); $template = Page::getinstance(self::template); if (!$parent->isexist() && $template->isexist()) { $parent->write($template->getsource()); } } } } }
private function write() { if (!keys_exists(Vars::$post, 'title', 'url', 'comment')) { return $this->makeerrormessage_url('引数が足りません。'); } $title = trim(Vars::$post['title']); $url = trim(Vars::$post['url']); $comment = trim(Vars::$post['comment']); if ($title == '') { $title = 'no title'; } $page = Page::getinstance($this->pagename_prefix . '/' . date('Y-m-d')); $source[] = ':' . mb_ereg_replace(':', ':', $title) . ':' . $url; $source[] = mb_ereg_replace("[\r\n]+", "\n", $comment); $page->write($page->getsource() . "\n" . linetrim(join("\n", $source))); redirect($page); }
protected function rename($page, $newname) { if (!isset(Vars::$post['password']) || md5(Vars::$post['password']) != ADMINPASS) { return $this->showform($page, Vars::$post['newname']); } $newpage = Page::getinstance(Vars::$post['newname']); $smarty = $this->getSmarty(); $smarty->assign('pagename', $page->getpagename()); $smarty->assign('newname', $newpage->getpagename()); $ret['title'] = 'ページ名の変更'; if ($this->_rename($page, $newpage)) { $ret['body'] = $smarty->fetch('success.tpl.htm'); } else { $ret['body'] = $smarty->fetch('failed.tpl.htm'); } return $ret; }
function do_inline($page, $param1, $param2) { mb_ereg('^(.*?)(?:\\s*,\\s*(.*?))?$', trim($param1), $m); $file = $m[1]; $page = $m[2] == '' ? $page : Page::getinstance($m[2]); if (!Attach::getinstance($page)->isexist($file)) { return '<span class="warning">ファイルがありません</span>'; } if (!mb_ereg('\\.(.+?)$', $file, $m) || !isset(Plugin_image::$type[$m[1]])) { return '<span class="warning">.' . htmlspecialchars($m[1]) . 'には対応していません</span>'; } $url = SCRIPTURL . '?plugin=image&page=' . rawurlencode($page->getpagename()) . '&file=' . rawurlencode($file); if ($m[1] == 'swf') { $smarty = new PluginSmarty('image'); $smarty->assign('url', $url); return $smarty->fetch('swf.tpl.htm'); } else { return '<img src="' . $url . '" />'; } }
function do_block($page, $param1, $param2) { $home = trim($param1) != '' ? Page::getinstance(trim($param1)) : Page::getinstance(dirname($page->getpagename())); if ($home->isnull()) { throw new PluginException('パラメータが正しくありません', $this); } $db = DataBase::getinstance(); $_home = $db->escape($home->getpagename()); $query = "SELECT pagename FROM page"; $query .= " WHERE pagename like '{$_home}/%'"; $query .= " ORDER BY pagename ASC"; $result = $db->query($query); $list = array(); while ($row = $db->fetch($result)) { $list[] = $row['pagename']; } if ($list == array()) { return ''; } natsort($list); $here = array_search($page->getpagename(), $list); if ($here === false) { throw new PluginException('現在のページが見つかりません', $this); } $prev = $here > 0 ? $list[$here - 1] : null; $next = isset($list[$here + 1]) ? $list[$here + 1] : null; $str[] = '<div class="plugin_navi">'; if ($prev != null) { $str[] = '[' . makelink($prev, $this->prevmes) . ']'; } else { $str[] = '[' . htmlspecialchars($this->prevmes) . ']'; } if ($next != null) { $str[] = '[' . makelink($next, $this->nextmes) . ']'; } else { $str[] = '[' . htmlspecialchars($this->nextmes) . ']'; } $str[] = '[' . makelink($home, $this->homemes) . ']'; $str[] = '</div>'; return join("\n", $str); }
public function do_url() { //numはフィードに含める項目数。 //GET引数でrecent(>0)が与えられればnumとして採用。そうでなければnum=15とする。 $num = isset(Vars::$get['recent']) && Vars::$get['recent'] > 0 ? (int) Vars::$get['recent'] : 15; $db = DataBase::getinstance(); $query = "SELECT pagename,timestamp FROM page"; //GET引数に正規表現exp(またはワイルドカードパターンinclude)が設定され、 //かつ空でないなら、exp(またはinclude)と一致するページだけを検索。 if (isset(Vars::$get['exp']) && trim(Vars::$get['exp']) != '') { $_inc = $db->escape(Vars::$get['exp']); $query .= " WHERE php('mb_ereg', '{$_inc}', pagename)"; } else { if (isset(Vars::$get['include']) && trim(Vars::$get['include']) != '') { $_inc = $db->escape(glob2ereg(Vars::$get['include'])); $query .= " WHERE php('mb_ereg', '{$_inc}', pagename)"; } } $query .= " ORDER BY timestamp DESC, pagename ASC LIMIT {$num}"; $result = $db->query($query); $list = array(); while ($row = $db->fetch($result)) { $item['timestamp'] = $row['timestamp']; $item['pagename'] = $row['pagename']; $_p = Page::getinstance($row['pagename']); $item['url'] = getURL($_p); $item['description'] = htmlspecialchars(convert_Page($_p)); $list[] = $item; } $smarty = $this->getSmarty(); $smarty->assign('list', $list); $smarty->assign('rssurl', SCRIPTURL . '?' . htmlspecialchars($_SERVER['QUERY_STRING'])); $smarty->assign('sitename', SITENAME); $smarty->assign('baseurl', SCRIPTURL); header('Content-Type: application/xml; charset=UTF-8'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $item['timestamp'][0]) . ' GMT'); $smarty->display('rss20.tpl.htm'); exit; }
function do_url() { if (!isset(Vars::$post['bbsname']) || Vars::$post['bbsname'] == '') { throw new PluginException('パラメータが足りません。', $this); } if (!isset(Vars::$post['text']) || Vars::$post['text'] == '') { redirect(Page::getinstance(isset(Vars::$post['pagename']) ? Vars::$post['pagename'] : '')); } $db = DataBase::getinstance(); self::$sqlite_pattern = '^' . mb_ereg_quote(Vars::$post['bbsname']) . '/(\\d+)/.+$'; $db->create_aggregate('maxbbsnum', array('Plugin_bbs', 'sqlite_maxbbsnum'), array('Plugin_bbs', 'sqlite_maxbbsnum_finalize'), 1); $row = $db->fetch($db->query("SELECT maxbbsnum(pagename) FROM page")); $num = $row[0] + 1; $subject = isset(Vars::$post['subject']) && trim(Vars::$post['subject']) != '' ? trim(Vars::$post['subject']) : '(無題)'; $page = Page::getinstance(Vars::$post['bbsname'] . "/{$num}/{$subject}"); $smarty = $this->getSmarty(); $smarty->assign('timestamp', time()); $name = isset(Vars::$post['name']) ? trim(Vars::$post['name']) : ''; $smarty->assign('name', $name); $smarty->assign('text', Vars::$post['text']); $page->write($smarty->fetch('bbs.tpl')); setcookie('name', $name, time() + 60 * 60 * 24 * 30); redirect($page); }
/** * つづき元のページに登録する。 */ protected function _write_continue() { if (!mb_ereg('^.+?/.+?/.+$', $this->continuefrom)) { return; } $continueon = "[[{$this->subject}>{$this->pagename}]]"; $page = Page::getinstance($this->continuefrom); $old = $page->getsource(); $old = mb_ereg_replace("(#right{\n)((?:.|\n)+?}\n----\n)", "\\1[{$continueon}]につづく\n\\2", $old); $page->write($old, true); }
protected function change_attach($attach, $arg) { if ($arg[0] == 'rename') { $head = '添付ファイルの名前が変更されました。'; $body[] = '旧ファイル名:' . $arg[1]; $body[] = '新ファイル名:' . $arg[2]; } if ($arg[0] == 'move') { $from = Attach::getinstance(Page::getinstance($arg[1]))->getlist(); $to = Attach::getinstance(Page::getinstance($arg[2]))->getlist(); if ($from == array() && $to == array()) { //添付ファイルがない場合は何もしない return; } $head = '添付ファイルの添付先が変更されました。'; $body[] = '旧ページ名:' . $arg[1]; $body[] = '新ページ名:' . $arg[2]; $body[] = ''; $body[] = '以下のファイルが新ページに添付されています。'; $body[] = join("\n", $to); $body[] = '以下のファイルが旧ページ添付されています。'; $body[] = join("\n", $from); } else { return; } $subject = '[' . SITENAME . '] ' . $attach->getpage()->getpagename(); $text[] = $head; $text[] = $this->geturl($attach->getpage()); $text[] = '----------------------------------------------------------------------'; $text[] = join("\n", $body); sendmail($subject, join("\n", $text)); }
/** * あいまいリンク用ページリストを作り直す。 */ function restruct() { $db = DataBase::getinstance(); $db->begin(); $db->query('DROP TABLE fuzzylink_list'); $db->exec(file_get_contents(HIDEABLE_DIR . 'sql/fuzzylink.sql')); $result = $db->query('SELECT pagename FROM page'); while ($row = $db->fetch($result)) { $this->addpage(Page::getinstance($row['pagename'])); } $this->refresh(); $db->commit(); }
function visitT_InlineTag($e) { try { $plugin = Plugin::getPlugin($e->getpluginname()); return $plugin->do_inlinetag(Page::getinstance($e->getcontext()->pagename), $e->getparam1(), $e->getparam2()); } catch (NoExistPluginException $exc) { return nl2br(htmlspecialchars($e->getsource())); } catch (PluginException $exc) { return '<span class="warning">' . htmlspecialchars($exc->getMessage()) . '</span>'; } }