Exemple #1
0
 /**
  * boardを全て読み込む
  */
 public static function read_brds()
 {
     $brd_menus_dir = BrdCtl::read_brd_dir();
     $brd_menus_online = BrdCtl::read_brd_online();
     $brd_menus = array_merge($brd_menus_dir, $brd_menus_online);
     return $brd_menus;
 }
Exemple #2
0
     <a href="iv2.php" target="_blank">画像キャッシュ一覧</a><br>
     <a href="ic2_setter.php">アップローダ</a>
        (<a href="#" onclick="return OpenSubWin('ic2_setter.php?popup=1', 480, 320, 1, 1);">p</a>)<br>
     <a href="ic2_getter.php">ダウンローダ</a>
        (<a href="#" onclick="return OpenSubWin('ic2_getter.php?popup=1', 480, 320, 1, 1);">p</a>)<br>
     <a href="ic2_manager.php">データベース管理</a>
    </div>
</div>
EOP;
}
//==============================================================
// ■カテゴリと板を表示
//==============================================================
// brd読み込み
$brd_menus_dir = BrdCtl::read_brd_dir();
$brd_menus_online = BrdCtl::read_brd_online();
$brd_menus = array_merge($brd_menus_dir, $brd_menus_online);
//===========================================================
// ■プリント
//===========================================================
// {{{ 検索ワードがあれば
if (isset($word) && strlen($word) > 0) {
    $msg_ht .= '<p>';
    if (empty($GLOBALS['ita_mikke']['num'])) {
        if (empty($GLOBALS['threti_match_ita_num'])) {
            $msg_ht .= "\"{$hd['word']}\"を含む板は見つかりませんでした。\n";
        }
    } else {
        $match_cates = array();
        $match_cates[0] = new BrdMenuCate("&quot;{$hd['word']}&quot;を含む板 {$GLOBALS['ita_mikke']['num']}hit!\n");
        $match_cates[0]->is_open = true;
Exemple #3
0
/**
 * p2 - 携帯用インデックスをHTMLプリントする関数
 *
 * @access  public
 * @return  void
 */
function index_print_k()
{
    global $_conf, $_login;
    $menuKLinkHtmls = getIndexMenuKLinkHtmls(getIndexMenuKIni());
    $ptitle = $_conf['p2name'] . 'iPhone';
    // ログインユーザ情報
    $auth_user_ht = sprintf('<p>ログインユーザ: %s - %s</p>', hs($_login->user_u), date('Y/m/d (D) G:i:s'));
    // p2ログイン用URL
    $login_url = rtrim(dirname(UriUtil::getMyUri()), '/') . '/';
    $login_url_pc = UriUtil::buildQueryUri($login_url, array(UA::getQueryKey() => 'pc'));
    $login_url_k = UriUtil::buildQueryUri($login_url, array(UA::getQueryKey() => 'k', 'user' => $_login->user_u));
    // 前回のログイン情報
    if ($_conf['login_log_rec'] && $_conf['last_login_log_show']) {
        if (false !== ($log = P2Util::getLastAccessLog($_conf['login_log_file']))) {
            $log_hs = array_map('htmlspecialchars', $log);
            $htm['last_login'] = <<<EOP
<font color="#888888">
前回のログイン情報 - {$log_hs['date']}<br>
ユーザ:   {$log_hs['user']}<br>
IP:     {$log_hs['ip']}<br>
HOST:   {$log_hs['host']}<br>
UA:     {$log_hs['ua']}<br>
REFERER: {$log_hs['referer']}
</font>
EOP;
        }
    }
    // 古いセッションIDがキャッシュされていることを考慮して、ユーザ情報を付加しておく
    // (リファラを考慮して、つけないほうがいい場合もあるので注意)
    $narabikae_uri = UriUtil::buildQueryUri('edit_indexmenui.php', array('user' => $_login->user_u, UA::getQueryKey() => UA::getQueryValue()));
    require_once P2_LIB_DIR . '/BrdCtl.php';
    $search_form_htm = BrdCtl::getMenuKSearchFormHtml('menu_i.php');
    $body_at = P2View::getBodyAttrK();
    $hr = P2View::getHrHtmlK();
    //=========================================================
    // 携帯用 HTML出力
    //=========================================================
    P2Util::headerNoCache();
    P2View::printDoctypeTag();
    ?>
<html>
<head>
<?php 
    P2View::printExtraHeadersHtml();
    ?>
<script type="text/javascript"> 
<!-- 
window.onload = function() { 
setTimeout(scrollTo, 100, 0, 1); 
} 
// --> 
</script> 
<style type="text/css" media="screen">@import "./iui/iui.css";</style>
    <title><?php 
    eh($ptitle);
    ?>
</title>
</head>
<body>
    <div class="toolbar">
<h1 id="pageTitle"><?php 
    eh($ptitle);
    ?>
</h1>
    <a class="button" href="<?php 
    eh($narabikae_uri);
    ?>
">並替</a>
    </div>
    <ul id="home">
    <li class="group">メニュー</li>
<?php 
    P2Util::printInfoHtml();
    foreach ($menuKLinkHtmls as $v) {
        ?>
<li><?php 
        echo $v;
        ?>
</li><?php 
    }
    ?>
<li class="group">検索</li>
<?php 
    echo $search_form_htm;
    ?>
</ul>
<br>
</body>
</html>
<?php 
}
Exemple #4
0
 /**
  * brdファイルを生成する
  *
  * @access  public
  * @return  string|false  成功したら生成したbrdファイルのパスを返す
  */
 function makeBrdFile($cachefile)
 {
     global $_conf;
     $cont = '';
     $data = file($cachefile);
     $this->setBrdMatch($cachefile);
     // パターンマッチ形式を登録
     $this->setBrdList($data);
     // カテゴリーと板をセット
     if ($this->categories) {
         foreach ($this->categories as $cate) {
             if ($cate->num > 0) {
                 $cont .= $cate->name . "\t0\n";
                 foreach ($cate->menuitas as $mita) {
                     $cont .= "\t{$mita->host}\t{$mita->bbs}\t{$mita->itaj}\n";
                 }
             }
         }
     }
     if (!$cont) {
         // 2008/07/14 なぜここでこんな条件が必要だったのか不明。コメントアウトしてみる。
         //if (strlen($GLOBALS['word']) > 0) {
         P2Util::pushInfoHtml(sprintf("<p>p2 error: %s から板メニューを生成することはできませんでした。</p>\n", hs($cachefile)));
         //}
         unlink($cachefile);
         return false;
     }
     $p2brdfile = BrdCtl::getP2BrdFile($cachefile);
     if (false === FileCtl::make_datafile($p2brdfile, $_conf['p2_perm'])) {
         return false;
     }
     if (false === FileCtl::filePutRename($p2brdfile, $cont)) {
         die(sprintf('p2 error: %s を更新できませんでした', hs($p2brdfile)));
         return false;
     }
     return $p2brdfile;
 }
Exemple #5
0
/**
 * キーワードにマッチした板リストを表示する
 *
 * @param string $word
 * @return void
 */
function menu_iphone_show_matched_boards($word)
{
    global $_conf;
    $brd_menus = BrdCtl::read_brds();
    $word_ht = p2h($word);
    $title = $word_ht . ' (板)';
    if (!$brd_menus) {
        echo "<div class=\"panel\" title=\"{$title}\">板リストは空です。</div>\n";
        return;
    }
    if ($GLOBALS['ita_mikke']['num'] == 0) {
        echo "<div class=\"panel\" title=\"{$title}\">", "&quot;{$word_ht}&quot; にマッチする板はありませんでした。</div>\n";
        return;
    }
    printf('<ul id="foundbrd%u" title="%s">', crc32($word . microtime()), $title);
    foreach ($brd_menus as $a_brd_menu) {
        foreach ($a_brd_menu->categories as $category) {
            $t = false;
            foreach ($category->menuitas as $mita) {
                if (!$t) {
                    echo "<li class=\"group\">{$category->name}</li>";
                    $t = true;
                }
                echo "<li><a href=\"{$_conf['subject_php']}?host={$mita->host}&amp;bbs={$mita->bbs}", "&amp;itaj_en={$mita->itaj_en}\" target=\"_self\">{$mita->itaj_ht}</a></li>";
                $i++;
            }
        }
    }
    echo "</ul>\n";
}
Exemple #6
0
/**
 * p2 - 携帯用インデックスをHTMLプリントする関数
 */
function index_print_k()
{
    global $_conf, $_login;
    $newtime = date('gis');
    $body = "";
    $ptitle = "rep2phone";
    // ログインユーザ情報
    $htm['auth_user'] = "******" . date("Y/m/d (D) G:i:s") . "</p>\n";
    // p2ログイン用URL
    $login_url = rtrim(dirname(P2Util::getMyUrl()), '/') . '/';
    $login_url_pc = $login_url . '?b=pc';
    $login_url_pc_hs = hs($login_url_pc);
    $login_url_k = $login_url . '?b=k&user='******'login_log_rec'] && $_conf['last_login_log_show']) {
        if (($log = P2Util::getLastAccessLog($_conf['login_log_file'])) !== false) {
            $log_hd = array_map('htmlspecialchars', $log);
            $htm['last_login'] = <<<EOP
<font color="#888888">
前回のログイン情報 - {$log_hd['date']}<br>
ユーザ:   {$log_hd['user']}<br>
IP:     {$log_hd['ip']}<br>
HOST:   {$log_hd['host']}<br>
UA:     {$log_hd['ua']}<br>
REFERER: {$log_hd['referer']}
</font>
EOP;
        }
    }
    // 古いセッションIDがキャッシュされていることを考慮して、ユーザ情報を付加しておく
    // (リファラを考慮して、つけないほうがいい場合もあるので注意)
    $user_at_a = '&amp;user='******'?user='******'/brdctl.class.php';
    $search_form_htm = BrdCtl::getMenuKSearchFormHtml('menu_k.php');
    //=========================================================
    // 携帯用 HTML プリント
    //=========================================================
    P2Util::header_nocache();
    echo $_conf['doctype'];
    echo <<<EOP
<html>
<head>
    {$_conf['meta_charset_ht']}
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
<script type="text/javascript"> 
<!-- 
window.onload = function() { 
setTimeout(scrollTo, 100, 0, 1); 
} 
// --> 
</script> 
<style type="text/css" media="screen">@import "./iui/iui.css";@import "./iui/index.css";</style>
    <title>{$ptitle}</title>
</head>
<body>
    <div class="toolbar">
<h1 id="pageTitle">{$ptitle}</h1>
<a class="button" href="editpref_i.php?dummy=1{$user_at_a}{$_conf['k_at_a']}">設定管理 </a>
</div>
EOP;
    P2Util::printInfoHtml();
    echo <<<EOP
<ul id="other" class="hidden">
    <li class="group">その他</li>
    <li><a href="subject.php?spmode=res_hist{$_conf['k_at_a']}{$user_at_a}">書込履歴</a> </li>
    <li><a href="read_res_hist.php?nt={$newtime}{$_conf['k_at_a']}">ログ</a></li>
    <li><a href="subject.php?spmode=palace&amp;norefresh=1{$_conf['k_at_a']}{$user_at_a}">スレの殿堂</a></li>
    <li><a href="editfavita_i.php?k=1">お気に入り編集</a></li>
    <li><a href="setting.php?dummy=1{$user_at_a}{$_conf['k_at_a']}">ログイン管理</a></li>
<li class="group">板検索</li>
{$search_form_htm} 
</ul>
<ul id="fav" class="hidden">
EOP;
    printFavItaHtml();
    echo <<<EOP

</ul>
    
<ul id="home">
    <li class="group">メニュー</li>
    <li><a href="menu_k.php?view=cate{$_conf['k_at_a']}{$user_at_a}">板リスト</a></li>
     <li><a href="subject.php?spmode=fav&amp;norefresh=1{$_conf['k_at_a']}{$user_at_a}">お気にスレの全て</a></li>
    <li><a href="subject.php?spmode=fav&amp;sb_view=shinchaku{$_conf['k_at_a']}{$user_at_a}">お気にスレの新着</a></li>
    <li><a href="subject.php?spmode=recent&amp;sb_view=shinchaku{$_conf['k_at_a']}{$user_at_a}">最近読んだスレの新着</a></li>
    <li><a href="subject.php?spmode=recent&amp;norefresh=1{$_conf['k_at_a']}{$user_at_a}">最近読んだスレの全て</a></li>
</ul>
<div id="foot">
 <div class="foot_index">
<span class="top"><a onclick="all.item('home').style.visibility='visible';all.item('other').style.visibility='hidden';all.item('fav').style.visibility='hidden'">Top</a></span>
<span class="fav"><a onclick="all.item('fav').style.visibility='visible';all.item('home').style.visibility='hidden';all.item('other').style.visibility='hidden'">Top</a></span>
<span class="other"><a onclick="all.item('other').style.visibility='visible';all.item('home').style.visibility='hidden';all.item('fav').style.visibility='hidden'">Top</a></span>
 </div>
</div>
</body>
</html>
EOP;
}
Exemple #7
0
<div class="toolbar"><h1 id="pageTitle">{$ptitle}</h1></div>
EEE;
P2Util::printInfoHtml();
// お気に板をHTML表示する
if ($get['view'] == 'favita') {
    $aShowBrdMenuK->printFavItaHtml();
    echo '<p><a id="backButton"class="button" href="iphone.php">TOP</a></p>';
    // それ以外ならbrd読み込み
} else {
    $brd_menus = BrdCtl::readBrdMenus();
}
// 板検索フォームをHTML表示
if ($get['view'] != 'favita' && $get['view'] != 'rss' && empty($_GET['cateid'])) {
    echo '<ul><li class="group">検索</li></ul>';
    echo '<div id="usage" class="panel"><filedset>';
    echo BrdCtl::getMenuKSearchFormHtml();
    echo '</filedset></div>';
}
//===========================================================
// 検索結果をHTML表示
//===========================================================
// {{{ 検索ワードがあれば
if (strlen($GLOBALS['word']) > 0) {
    $word_hs = htmlspecialchars($word, ENT_QUOTES);
    if ($GLOBALS['ita_mikke']['num']) {
        $hit_ht = "\"{$word_hs}\" {$GLOBALS['ita_mikke']['num']}hit!";
    }
    echo '<div id="usage" class="panel">';
    echo "<h2>板リスト検索結果{$hit_ht}</h2>";
    echo '</div>';
    // 板名を検索して表示する
Exemple #8
0
eh($_conf['subject_php']);
?>
?spmode=palace&amp;norefresh=1" title="DAT落ちしたスレ用のお気に入り">スレの殿堂</a><br>
     <a href="setting.php">ログイン管理</a><br>
     <a href="<?php 
eh($_conf['editpref_php']);
?>
">設定管理</a><br>
     <a href="http://find.2ch.net/" target="_blank" title="find.2ch.net">2ch検索</a>
    </div>
</div>
<?php 
//==============================================================
// カテゴリと板をHTML表示
//==============================================================
$brd_menus = BrdCtl::readBrdMenus();
// {{{ 検索ワードがあれば
if (strlen($GLOBALS['word'])) {
    $msg_ht = '<p>';
    if (empty($GLOBALS['ita_mikke']['num'])) {
        if (empty($GLOBALS['threti_match_ita_num'])) {
            $msg_ht .= sprintf('"%s"を含む板は見つかりませんでした。', hs($word));
        }
    } else {
        $msg_ht .= sprintf('"%s"を含む板 %shit!', hs($word), hs($GLOBALS['ita_mikke']['num']));
        // 検索結果が一つなら、自動で板一覧を開く
        if ($GLOBALS['ita_mikke']['num'] == 1) {
            $msg_ht .= '(自動オープンするよ)';
            $location_uri = UriUtil::buildQueryUri($_conf['subject_php'], array('host' => $GLOBALS['ita_mikke']['host'], 'bbs' => $GLOBALS['ita_mikke']['bbs'], 'itaj_en' => $GLOBALS['ita_mikke']['itaj_en']));
            $msg_ht .= <<<EOP
<script type="text/javascript">
Exemple #9
0
EOP;
P2Util::printInfoHtml();
//==============================================================
// お気に板をプリントする
//==============================================================
if ($_GET['view'] == "favita") {
    $aShowBrdMenuK->printFavIta();
    //RSSリスト読み込み
} elseif ($_GET['view'] == "rss" && $_conf['expack.rss.enabled']) {
    if ($_conf['view_forced_by_query']) {
        output_add_rewrite_var('b', $_conf['b']);
    }
    require_once P2EX_LIB_DIR . '/rss/menu.inc.php';
    // それ以外ならbrd読み込み
} else {
    $brd_menus = BrdCtl::read_brds();
}
//===========================================================
// 板検索
//===========================================================
if ($_GET['view'] != "favita" && $_GET['view'] != "rss" && !$_GET['cateid']) {
    $kensaku_form_ht = <<<EOFORM
<form method="GET" action="{$_SERVER['SCRIPT_NAME']}" accept-charset="{$_conf['accept_charset']}">
    <input type="hidden" name="nr" value="1">
    <input type="text" id="word" name="word" value="{$word}" size="12">
    <input type="submit" name="submit" value="板検索">
    {$_conf['detect_hint_input_ht']}{$_conf['k_input_ht']}
</form>

EOFORM;
    echo $kensaku_form_ht;
Exemple #10
0
 /**
  * オンライン板リストを読み込む
  *
  * @static
  * @access  private
  * @return  array
  */
 function readBrdOnline()
 {
     global $_conf;
     if (!$_conf['brdfile_online']) {
         return array();
     }
     $brd_menus = array();
     $cachefile = P2Util::cacheFileForDL($_conf['brdfile_online']);
     $noDL = false;
     $isNewDL = false;
     $read_html_flag = false;
     $p2brdfile = BrdCtl::getP2BrdFile($cachefile);
     // キャッシュがある場合
     if (file_exists($p2brdfile)) {
         // norefreshならDLしない
         if (!empty($_GET['nr'])) {
             $noDL = true;
             // キャッシュの更新が指定時間以内ならDLしない
         } elseif (filemtime($p2brdfile) > time() - 60 * 60 * $_conf['menu_dl_interval']) {
             $noDL = true;
         }
     }
     // DLしない
     if ($noDL) {
         // DLする
     } else {
         //echo "DL!<br>";//
         $brdfile_online_res = P2Util::fileDownload($_conf['brdfile_online'], $cachefile, array('disp_error' => true, 'use_tmp_file' => true));
         if ($brdfile_online_res and $brdfile_online_res->is_success() && $brdfile_online_res->code != '304') {
             $isNewDL = true;
         }
     }
     // html形式なら
     if (preg_match('/html?$/', $_conf['brdfile_online'])) {
         // 更新されていたら新規キャッシュ作成
         if ($isNewDL) {
             //echo "NEW!<br>"; //
             $aBrdMenu = new BrdMenu();
             $aBrdMenu->makeBrdFile($cachefile);
             // .p2.brdファイルを生成
             $brd_menus[] = $aBrdMenu;
             $read_html_flag = true;
         }
         if (file_exists($p2brdfile)) {
             $cache_brd = $p2brdfile;
         } else {
             $cache_brd = $cachefile;
         }
     } else {
         $cache_brd = $cachefile;
     }
     if (!$read_html_flag) {
         if ($data = file($cache_brd)) {
             $aBrdMenu = new BrdMenu();
             $aBrdMenu->setBrdMatch($cache_brd);
             // パターンマッチ形式を登録
             $aBrdMenu->setBrdList($data);
             // カテゴリーと板をセット
             if ($aBrdMenu->num) {
                 $brd_menus[] = $aBrdMenu;
             } else {
                 P2Util::pushInfoHtml(sprintf("<p>p2 error: %s から板メニューを生成することはできませんでした。</p>\n", hs($cache_brd)));
             }
         } else {
             P2Util::pushInfoHtml(sprintf("<p>p2 error: %s は読み込めませんでした。</p>\n", hs($cachefile)));
         }
     }
     return $brd_menus;
 }