ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 1080


Ignore:
Timestamp:
Dec 8, 2006, 10:35:14 AM (14 years ago)
Author:
ogawa
Message:

merged with trunk(r1078)

Location:
OpenPNE/branches/ogawa/prj_new_tpl_structure
Files:
14 edited
20 copied

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/lib/db/api.php

    r1033 r1080  
    1515    }
    1616}
    17 
    18 ?>
    19 <?php
    20 /**
    21  * @copyright 2005-2006 OpenPNE Project
    22  * @license   http://www.php.net/license/3_01.txt PHP License 3.01
    23  */
    2417
    2518function db_api_insert_token($c_member_id, $token = '')
     
    6457}
    6558
     59
     60//API‚ðˆê‚Ž擾
     61function db_api_get_c_api_one($name)
     62{
     63    $sql = 'SELECT * FROM c_api WHERE name = ?';
     64    $params = array(strval($name));
     65
     66    return db_get_row($sql, $params);
     67}
     68
     69//API‚ª‹–‰Â‚µ‚Ä‚¢‚éIP‚©‚Ç‚¤‚©ƒ`ƒFƒbƒN‚·‚é
     70function db_api_check_ip($name, $ip)
     71{
     72    $api = db_api_get_c_api_one($name);
     73    if ($api['ip'] == '*' || $api['ip'] == $ip) {
     74        return true;
     75    } else {
     76        return false;
     77    }
     78}
     79
     80
     81
    6682?>
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/lib/db/diary.php

    r1033 r1080  
    931931}
    932932
    933 ?>
    934 <?php
    935 /**
    936  * @copyright 2005-2006 OpenPNE Project
    937  * @license   http://www.php.net/license/3_01.txt PHP License 3.01
    938  */
    939 
    940933//--- diary
    941934
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/lib/db/etc.php

    r1033 r1080  
    702702}
    703703
     704//小窓の使用範囲をチェック
     705function db_is_use_cmd($src, $type)
     706{
     707    $sql = 'SELECT * FROM c_cmd WHERE name = ?';
     708    $params = array(strval($src));
     709    $c_cmd = db_get_row($sql, $params);
     710
     711    $permit_list = db_get_permit_list();
     712
     713    foreach ($permit_list as $key => $name) {
     714        if (($c_cmd['permit'] & $key)
     715         && preg_match('/'.$c_cmd['name'].'/', $src)
     716         && $name == $type) {
     717            return true;
     718        }
     719    }
     720
     721    return false;
     722}
     723
     724//小窓の使用範囲のリスト
     725function db_get_permit_list()
     726{
     727    return array(
     728        '1' => 'community',
     729        '2' => 'diary',
     730        '4' => 'profile',
     731    );
     732}
     733
    704734?>
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/lib/smarty_plugins/modifier.t_cmd.php

    r291 r1080  
    55 */
    66
    7 function smarty_modifier_t_cmd($string)
     7function smarty_modifier_t_cmd($string, $type = '')
    88{
    99    if (!OPENPNE_USE_CMD_TAG) {
    1010        return $string;
    1111    }
     12
    1213    $regexp = '/&lt;cmd\s+src="([\w\.]+)"\s+args="([\w-\+%]+(,[\w-\+%]+)*)"\s*&gt;/i';
    13     $string = preg_replace_callback($regexp, '_smarty_modifier_t_cmd_make_js', $string);
    14     return $string;
     14    $GLOBALS['_CMD']['type'] = $type;
     15
     16    return preg_replace_callback($regexp, '_smarty_modifier_t_cmd_make_js', $string);
    1517
    1618}
     
    1820function _smarty_modifier_t_cmd_make_js($matches)
    1921{
     22    if (!db_is_use_cmd($matches[1], $GLOBALS['_CMD']['type'])) {
     23        return $matches[0];
     24    }
    2025
    2126    $src  = $matches[1];
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/lib/smarty_plugins/modifier.t_url2cmd.php

    r339 r1080  
    55 */
    66
    7 function smarty_modifier_t_url2cmd($string)
     7function smarty_modifier_t_url2cmd($string, $type = '')
    88{
    99    // "(&quot;) と '(&#039;) を元に戻す
     
    1313
    1414    $url_pattern = "/https?:\/\/([a-zA-Z0-9-.]+)\/?[\w\-.,:;\~\^\/?\@&=+\$%#!()]*/";
     15    $GLOBALS['_CMD']['type'] = $type;
     16
    1517    return preg_replace_callback($url_pattern, '_smarty_modifier_t_cmd_make_url_js', $string);
    1618}
     
    2224    $path = './cmd/' . $file;
    2325
    24     if (!OPENPNE_USE_CMD_TAG || !is_readable($path)) {
     26    if (!OPENPNE_USE_CMD_TAG || !db_is_use_cmd($matches[1], $GLOBALS['_CMD']['type']) || !is_readable($path)) {
    2527        // t_url2a
    2628        return pne_url2a($url);
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/admin/lib/db_admin.php

    r1033 r1080  
    18571857}
    18581858
     1859//APIを全て取得(ページャー付き)
     1860function db_admin_get_c_api_all($page, $page_size, &$pager)
     1861{
     1862    $sql = 'SELECT * FROM c_api ORDER BY c_api_id';
     1863
     1864    $list = db_get_all_page($sql, $page, $page_size, $params);
     1865
     1866    $sql = 'SELECT count(*) FROM c_api';
     1867    $total_num = db_get_one($sql, $params);
     1868    $pager = admin_make_pager($page, $page_size, $total_num);
     1869
     1870    return $list;
     1871}
     1872
     1873//APIを編集
     1874function db_admin_update_c_api($c_api_id, $name, $ip)
     1875{
     1876    $data = array(
     1877        'name' => strval($name),
     1878        'ip' => strval($ip),
     1879    );
     1880    $where = array('c_api_id' => intval($c_api_id));
     1881    return db_update('c_api', $data, $where);
     1882}
     1883
     1884
     1885
     1886/*--------------------------------
     1887ここからCMD
     1888---------------------------------*/
     1889
     1890//CMDを追加
     1891function db_admin_insert_c_cmd($name, $permit)
     1892{
     1893    $data = array(
     1894        'name' => strval($name),
     1895        'permit' => intval($permit),
     1896    );
     1897    return db_insert('c_cmd', $data);
     1898}
     1899
     1900//CMDを編集
     1901function db_admin_update_c_cmd($c_cmd_id, $name, $permit)
     1902{
     1903    $data = array(
     1904        'name' => strval($name),
     1905        'permit' => intval($permit),
     1906    );
     1907    $where = array('c_cmd_id' => intval($c_cmd_id));
     1908    return db_update('c_cmd', $data, $where);
     1909}
     1910
     1911//CMDを削除
     1912function db_admin_delete_c_cmd($c_cmd_id)
     1913{
     1914    $sql = "DELETE FROM c_cmd WHERE c_cmd_id = ?";
     1915    $params = array(intval($c_cmd_id));
     1916    return db_query($sql, $params);
     1917}
     1918
     1919
     1920//CMDを全て取得(ページャー付き)
     1921function db_admin_get_c_cmd_all($page, $page_size, &$pager)
     1922{
     1923    $sql = 'SELECT * FROM c_cmd ORDER BY c_cmd_id';
     1924
     1925    $list = db_get_all_page($sql, $page, $page_size, $params);
     1926
     1927    $sql = 'SELECT count(*) FROM c_cmd';
     1928    $total_num = db_get_one($sql, $params);
     1929    $pager = admin_make_pager($page, $page_size, $total_num);
     1930
     1931    return $list;
     1932}
     1933
     1934//CMDを一つ取得
     1935function db_admin_get_c_cmd_one($c_cmd_id)
     1936{
     1937    $sql = 'SELECT * FROM c_cmd WHERE c_cmd_id = ?';
     1938    $params = array(intval($c_cmd_id));
     1939
     1940    return db_get_row($sql, $params);
     1941}
     1942
     1943
    18591944?>
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/admin/lib/etc_admin.php

    r1033 r1080  
    3434function admin_make_pager($page, $page_size, $total_num)
    3535{
     36    if ($total_num == 0) {
     37        return;
     38    }
    3639    $pager = array(
    3740        'page' => $page,
     
    114117}
    115118
     119//IPアドレスとして正しいか
     120//例:XXX.XXX.XXX.XXX
     121function admin_is_ip($ip)
     122{
     123    return preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/',$ip);
     124}
     125
     126//APIを許容するIPアドレスとして正しいか
     127//XXX.XXX.XXX.XXX or *(アスタリスク) or 空
     128function admin_api_is_ip($ip)
     129{
     130    if (!$ip || $ip == '*') {
     131        return true;
     132    } else {
     133        return admin_is_ip($ip);
     134    }
     135}
     136
    116137?>
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/admin/templates/inc_header.tpl

    r1033 r1080  
    6969<li><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('edit_c_banner')})" title="バナー管理: トップバナー、サイドバナー追加、任意HTML挿入">バナー管理</a></li>
    7070<li><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('limit_domain')})" title="ドメイン制限: ドメイン制限追加、編集、削除">ドメイン制限</a></li>
     71<li><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_api')})" title="OpenPNE API設定: API通信を許可するIPアドレスの設定">OpenPNE API設定</a></li>
     72<li><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_cmd')})" title="CMD設定: CMDを許可するページの設定">CMD設定</a></li>
    7173</ul>
    7274
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/api/auth.inc

    r2 r1080  
    55 */
    66
    7 // IP制限
    8 if (!in_array('any', (array)$GLOBALS['_OPENPNE_API_IP_LIST'])) {
    9     $ip = $_SERVER[SERVER_IP_KEY];
    10     if (!in_array($ip, (array)$GLOBALS['_OPENPNE_API_IP_LIST'])) {
    11         exit('Access Denied');
    12     }
    13 }
     7
    148
    159?>
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/api/do/xmlrpc.php

    r2 r1080  
    2727                    include_once realpath("$dir/$file");
    2828                    $name = substr($file, 0, -4);
    29                     $dispMap[$name] = array('function' => 'xmlrpc_' . $name);
     29                    if (db_api_check_ip($name,$_SERVER[SERVER_IP_KEY])) {
     30                        $dispMap[$name] = array('function' => 'xmlrpc_' . $name);
     31                    } else {
     32                        $dispMap[$name] = array('function' => 'xmlrpc_deny');
     33                    }
    3034                }
    3135                closedir($dh);
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/pc/templates/c_event_detail.tpl

    r1033 r1080  
    304304<div class="padding_s lh_120">
    305305
    306 ({$c_topic.body|nl2br|t_url2cmd|t_cmd})
     306({$c_topic.body|nl2br|t_url2cmd:'community'|t_cmd:'community'})
    307307
    308308</div>
     
    594594
    595595<div class="padding_s lh_120">
    596 ({$item.body|nl2br|t_url2cmd|t_cmd})
     596({$item.body|nl2br|t_url2cmd:'community'|t_cmd:'community'})
    597597</div>
    598598
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/pc/templates/c_topic_detail.tpl

    r1033 r1080  
    103103
    104104<div class="padding_s lh_120">
    105 ({$c_topic.body|nl2br|t_url2cmd|t_cmd})
     105({$c_topic.body|nl2br|t_url2cmd:'community'|t_cmd:'community'})
    106106</div>
    107107
     
    242242
    243243<div class="padding_s lh_120">
    244 ({$item.body|nl2br|t_url2cmd|t_cmd})
     244({$item.body|nl2br|t_url2cmd:'community'|t_cmd:'community'})
    245245</div>
    246246
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/pc/templates/fh_diary.tpl

    r1054 r1080  
    445445
    446446<div class="lh_120" id="DOM_fh_diary_body">
    447 ({$target_diary.body|nl2br|t_url2cmd|t_cmd})
     447({$target_diary.body|nl2br|t_url2cmd:'diary'|t_cmd:'diary'})
    448448</div>
    449449
     
    612612({/if})
    613613
    614 ({$item.body|nl2br|t_url2cmd|t_cmd})
     614({$item.body|nl2br|t_url2cmd:'diary'|t_cmd:'diary'})
    615615
    616616</div>
  • OpenPNE/branches/ogawa/prj_new_tpl_structure/webapp/modules/pc/templates/inc_f_home_h_prof.tpl

    r1033 r1080  
    902902
    903903({if $item.form_type == 'textarea'})
    904     ({$item.value|nl2br|t_url2cmd|t_cmd})
     904    ({$item.value|nl2br|t_url2cmd:'profile'|t_cmd:'profile'})
    905905({elseif $item.form_type == 'checkbox'})
    906906    ({$item.value|@t_implode:", "})
Note: See TracChangeset for help on using the changeset viewer.