サマリ | google gadget for your website の埋め込み |
---|---|
リビジョン | 0.5 |
対応バージョン | 1.4.x |
投稿者 | hnagoya@gmail.com |
投稿日 | 2006-10-06 (金) 14:18:28 |
Google Gadgets For Your Webpage を特定のページに埋め込みたかったのででっちあげてみたのですが、ようは生のHTMLコードをそのまま吐いているだけなので、引数チェックこれでいいのかな…セキュリティ面がよくわかりません。
<?php // googlegadgets.inc.php // License: GPL v2 // $Revision: 0.5 $ $Date: 2006-10-10 18:53:09+09 $ // ------------------------------------------------------------------- // Reference: http://www.google.com/ig/directory?synd=open // How to use: &googlegadgets(<script src="..."></script>); // ------------------------------------------------------------------- // 誰でもこのプラグインを使ってよければ A を、そうでなければ B を有効にする //define(PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK, FALSE); // A define(PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK, TRUE); // B function plugin_googlegadgets_init() { // nop } // B が有効の場合のアクセス権チェック // * pukiwiki がリードオンリー設定で運用されている // * 該当ページが凍結されている // * 該当ページが編集可能である // のいずれかが成立していれば OK function plugin_googlegadgets_securitycheck_ok() { global $vars; $page = $vars['page']; return (PKWK_READONLY || is_freeze($page) || edit_auth($page, TRUE, FALSE)); } function plugin_googlegadgets_convert() { return plugin_googlegadgets_sub(func_get_args()); } function plugin_googlegadgets_inline() { return plugin_googlegadgets_sub(func_get_args()); } function plugin_googlegadgets_action() { return plugin_googlegadgets_sub(func_get_args()); } function plugin_googlegadgets_sub($a) { global $vars; if (PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK && !plugin_googlegadgets_securitycheck_ok()) { return FALSE; } $m = array(); return preg_match('{^(<script\ src= "http://gmodules.com/ig/ifr\?(?:[\w:\./\+\-%&=]+)" ></script>)$}x', trim($a[0]), &$m) ? $m[0] : FALSE; } ?>