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

Changeset 6662


Ignore:
Timestamp:
Apr 19, 2008, 10:27:35 PM (12 years ago)
Author:
ebihara
Message:

SNS内の情報を小窓として出力することのできる機構を追加してみた

openpne_forward() を最大限利用する方針だが、

  • openpne_display_error() がコールされた瞬間にアウト
  • リクエスト変数の受け渡しが微妙すぎる

など諸々の理由から諦めた方がよいような気もしてきた

Location:
OpenPNE/branches/work/ebihara/prj_sns_cmd/webapp
Files:
10 added
2 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/work/ebihara/prj_sns_cmd/webapp/lib/controller.php

    r6527 r6662  
    214214            $smarty->ext_display("{$action}.tpl");
    215215        }
     216    } elseif ($result == 'render_var') {
     217        return $smarty->ext_fetch("{$action}.tpl");
    216218    }
    217219    // ----------------------------------------------
  • OpenPNE/branches/work/ebihara/prj_sns_cmd/webapp/lib/smarty_plugins/modifier.t_url2cmd.php

    r6527 r6662  
    2323    $url = str_replace('&', '&', $matches[0]);
    2424    $cmd = $matches[1];
     25
     26    // SNS内を指す小窓URLかどうかをチェックする
     27    $openpne_url_matches = array();
     28    $parts = parse_url(OPENPNE_URL);
     29    $openpne_url = $parts['host'] . $parts['path'];
     30    $url_pattern = sprintf('/^(https?:\/\/%s)(?:index.php)?\?m=(\w+)&a=(\w+)((?:[a-zA-Z0-9_=]|&)*)$/', preg_quote($openpne_url, '/'));
     31    if (preg_match($url_pattern, $url, $openpne_url_matches)) {
     32        return _smarty_modifier_t_url2cmd_make_sns_cmd($openpne_url_matches);
     33    }
    2534
    2635    $file = $cmd . '.js';
     
    4958}
    5059
     60function _smarty_modifier_t_url2cmd_make_sns_cmd($matches)
     61{
     62    $url = $matches[0];
     63    $module = $matches[2];
     64    $action = $matches[3];
     65    $params = explode('&', $matches[3]);
     66
     67    $cmd_action = $module . '_' . $action;
     68    $cmd_action_templates_path = 'cmd/templates/' . $cmd_action . '.tpl';
     69    $cmd_action_page_path = 'cmd/page/' . $cmd_action . '.php';
     70
     71    if (openpne_ext_search($cmd_action_templates_path) && openpne_ext_search($cmd_action_templates_path)) {
     72        $_REQUEST['url'] = $url;
     73        foreach ($params as $value) {
     74            $parts = explode('=', $value, 2);
     75            $_REQUEST[$parts[0]] = $parts[1];
     76        }
     77        $result = openpne_forward('cmd', 'page', $cmd_action);
     78        if (!is_bool($result)) {
     79            return $result;
     80        }
     81    }
     82
     83    return $url;
     84}
     85
    5186?>
Note: See TracChangeset for help on using the changeset viewer.