svnno****@sourc*****
svnno****@sourc*****
2010年 1月 28日 (木) 02:45:28 JST
Revision: 822 http://sourceforge.jp/projects/p2-php/svn/view?view=rev&revision=822 Author: rsk Date: 2010-01-28 02:45:27 +0900 (Thu, 28 Jan 2010) Log Message: ----------- expack: - P2Util::fileDownload()ã§fsockopen()ã®è¦åãåºããªãããã«å¤æ´ã - æºå¸¯ç¨ã¢ã¯ã»ã¹ãã¼ã®åæåå¦çãå¤æ´ãéiPhoneããiPhoneç¨ãã¥ã¼ã 使ã£ã¦ããã¨ãã¯accesskeyå±æ§ãä»å ããããã«ããã Modified Paths: -------------- p2ex/trunk/js/iphone.js p2ex/trunk/lib/P2Util.php p2ex/trunk/lib/bootstrap.php -------------- next part -------------- Modified: p2ex/trunk/js/iphone.js =================================================================== --- p2ex/trunk/js/iphone.js 2010-01-27 15:05:59 UTC (rev 821) +++ p2ex/trunk/js/iphone.js 2010-01-27 17:45:27 UTC (rev 822) @@ -43,7 +43,12 @@ * xNbNÌR[obNÖRei * @type {Object} */ - 'labelActions': {} + 'labelActions': {}, + /** + * accesskey®«¿ÌAJ[vfRei + * @type {Object} + */ + 'accessKeys': {} }; // }}} @@ -315,6 +320,95 @@ } }; +// }}} +// {{{ setAccessKeys() + +/** + * wèL[ + [0-9*#] ÌgÝí¹ÌL[oChðo^·é + * + * ìèݪâÌÅóB + * + * @param {Node|String} contextNode + * @return void + */ +iutil.setAccessKeys = function(contextNode) { + var anchors, anchor, accessKey, hashKey, i, l; + + switch (typeof contextNode) { + case 'string': + contextNode = document.getElementById(contextNode); + break; + case 'undefined': + contextNode = document.body; + break; + } + if (!contextNode) { + return; + } + + anchors = document.evaluate('.//a[@accesskey]', + contextNode, null, + XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); + l = anchors.snapshotLength; + + for (i = 0; i < l; i++) { + anchor = anchors.snapshotItem(i); + accessKey = anchor.getAttribute('accesskey'); + hashKey = 'a' + accessKey.charCodeAt(0).toString(); + iutil.accessKeys[hashKey] = anchor; + } + + window.addEventListener('keypress', function (event) { + var accessKey, hashKey, keyCode, clickEvent; + + event = event || window.event; + if (!(event.ctrlKey || event.metaKey)) { + return true; + } + + keyCode = event.keyCode; + if (48 <= keyCode && keyCode <= 57) { // [0-9] + accessKey = (keyCode - 48).toString(); + } else if (keyCode === 45) { // '-' ð '*' É}bv + accessKey = '*'; + } else if (keyCode === 126) { // '~' ð '#' É}bv + accessKey = '#'; + } else { + return true; + } + + hashKey = 'a' + accessKey.charCodeAt(0).toString(); + if (typeof iutil.accessKeys[hashKey] === 'undefined') { + return true; + } + + iutil.stopEvent(event); + + clickEvent = document.createEvent('MouseEvents'); + clickEvent.initMouseEvent( + 'click', // type + true, // bubbles + true, // cancelable + window, // view + 1, // detail + 0, // screenX + 0, // screenY + 0, // clientX + 0, // clientY + false, // ctrlKey + false, // altKey + false, // shiftKey + false, // metaKey + 0, // button + null // relatedTarget + ); + iutil.accessKeys[hashKey].dispatchEvent(clickEvent); + + return false; + }, false); +}; + +// ]}} // {{{ adjustTextareaSize() /** @@ -1065,6 +1159,11 @@ //iutil.setHashScrool(document.body); } + // accesskeyðoCh·é + //if (!iutil.iphone && typeof window.iui === 'undefined') { + // iutil.setAccessKeys(document.body); + //} + // textareaÌð²® iutil.adjustTextareaSize(); Modified: p2ex/trunk/lib/P2Util.php =================================================================== --- p2ex/trunk/lib/P2Util.php 2010-01-27 15:05:59 UTC (rev 821) +++ p2ex/trunk/lib/P2Util.php 2010-01-27 17:45:27 UTC (rev 822) @@ -256,6 +256,7 @@ // DL $wap_ua = new WapUserAgent(); $wap_ua->setTimeout($_conf['http_conn_timeout'], $_conf['http_read_timeout']); + $wap_ua->setAtFsockopen(true); $wap_req = new WapRequest(); $wap_req->setUrl($url); $wap_req->setModified($modified); Modified: p2ex/trunk/lib/bootstrap.php =================================================================== --- p2ex/trunk/lib/bootstrap.php 2010-01-27 15:05:59 UTC (rev 821) +++ p2ex/trunk/lib/bootstrap.php 2010-01-27 17:45:27 UTC (rev 822) @@ -469,57 +469,34 @@ } // gÑpugbvÉßévNÆaccesskey + +// ftHgl +$accesskeys = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#'); +$_conf['k_accesskey_at'] = array(); +foreach ($accesskeys as $key) { + $_conf['k_accesskey_at'][$key] = " accesskey=\"{$key}\""; +} +$_conf['k_accesskey_st'] = array_combine($accesskeys, array_fill(0, count($accesskeys), '')); + if ($_conf['ktai']) { // iPhone if ($_conf['iphone']) { - $_conf['k_accesskey_at'] = array_fill(0, 10, ''); - $_conf['k_accesskey_at']['*'] = ''; - $_conf['k_accesskey_at']['#'] = ''; - foreach ($_conf['k_accesskey'] as $name => $key) { - $_conf['k_accesskey_at'][$name] = ''; + // §iPhoner [ÈOÍaccesskeyðgíÈ¢ + if ($_conf['client_type'] == 'i') { + $_conf['k_accesskey_at'] = $_conf['k_accesskey_st']; } - - $_conf['k_accesskey_st'] = $_conf['k_accesskey_at']; - $_conf['k_to_index_ht'] = <<<EOP -<a href="index.php{$_conf['k_at_q']}" class="button">TOP</a> +<a href="index.php{$_conf['k_at_q']}" class="button"{$_conf['k_accesskey_at'][0]}>TOP</a> EOP; // »Ì¼ } else { - // SoftBank Mobile + // SoftBank Mobile ^[ if ($_conf['accesskey'] == 'DIRECTKEY') { - $_conf['k_accesskey_at'] = array( - '0' => ' directkey="0" nonumber', - '1' => ' directkey="1" nonumber', - '2' => ' directkey="2" nonumber', - '3' => ' directkey="3" nonumber', - '4' => ' directkey="4" nonumber', - '5' => ' directkey="5" nonumber', - '6' => ' directkey="6" nonumber', - '7' => ' directkey="7" nonumber', - '8' => ' directkey="8" nonumber', - '9' => ' directkey="9" nonumber', - '*' => ' directkey="*" nonumber', - '#' => ' directkey="#" nonumber', - ); - - // »Ì¼ - } else { - $_conf['k_accesskey_at'] = array( - '0' => ' accesskey="0"', - '1' => ' accesskey="1"', - '2' => ' accesskey="2"', - '3' => ' accesskey="3"', - '4' => ' accesskey="4"', - '5' => ' accesskey="5"', - '6' => ' accesskey="6"', - '7' => ' accesskey="7"', - '8' => ' accesskey="8"', - '9' => ' accesskey="9"', - '*' => ' accesskey="*"', - '#' => ' accesskey="#"', - ); + $_conf['k_accesskey_at'] = array(); + foreach ($accesskeys as $key) { + $_conf['k_accesskey_at'][$key] = " directkey=\"{$key}\" nonumber"; + } } switch ($_conf['mobile.display_accesskey']) { @@ -529,44 +506,30 @@ } $emoji = p2_get_emoji($mobile); //$emoji = p2_get_emoji(Net_UserAgent_Mobile::factory('KDDI-SA31 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0')); - $_conf['k_accesskey_st'] = array( - '0' => $emoji[0], - '1' => $emoji[1], - '2' => $emoji[2], - '3' => $emoji[3], - '4' => $emoji[4], - '5' => $emoji[5], - '6' => $emoji[6], - '7' => $emoji[7], - '8' => $emoji[8], - '9' => $emoji[9], - '*' => $emoji['*'], - '#' => $emoji['#'], - ); + $_conf['k_accesskey_st'] = array(); + foreach ($accesskeys as $key) { + $_conf['k_accesskey_st'][$key] = $emoji[$key]; + } break; case 0: - $_conf['k_accesskey_st'] = array_fill(0, 10, ''); - $_conf['k_accesskey_st']['*'] = ''; - $_conf['k_accesskey_st']['#'] = ''; break; case 1: default: - $_conf['k_accesskey_st'] = array( - 0 => '0.', 1 => '1.', 2 => '2.', 3 => '3.', 4 => '4.', - 5 => '5.', 6 => '6.', 7 => '7.', 8 => '8.', 9 => '9.', - '*' => '*.', '#' => '#.' - ); + $_conf['k_accesskey_st'] = array(); + foreach ($accesskeys as $key) { + $_conf['k_accesskey_st'][$key] = $key . '.'; + } } - foreach ($_conf['k_accesskey'] as $name => $key) { - $_conf['k_accesskey_at'][$name] = $_conf['k_accesskey_at'][$key]; - $_conf['k_accesskey_st'][$name] = $_conf['k_accesskey_st'][$key]; - } - $_conf['k_to_index_ht'] = <<<EOP <a href="index.php{$_conf['k_at_q']}"{$_conf['k_accesskey_at'][0]}>{$_conf['k_accesskey_st'][0]}TOP</a> EOP; } + + foreach ($_conf['k_accesskey'] as $name => $key) { + $_conf['k_accesskey_at'][$name] = $_conf['k_accesskey_at'][$key]; + $_conf['k_accesskey_st'][$name] = $_conf['k_accesskey_st'][$key]; + } } // }}}