E-mail
パスワード
次回から自動ログインする
パスワード紛失
新規登録
ホーム
|
新着情報
|
研究室
|
掲示板
|
ぶろぐ
|
Wiki
|
お問合せ
|
アルバム
|
リンク
|
サイトマップ
|
|
一覧
検索
最新
ヘルプ
ページへ戻る
履歴
リンク元
印刷
inc/d3com_auth_plugin
をテンプレートにして作成
xpwiki
:inc/d3com_auth_plugin をテンプレートにして作成
開始行:
* d3コメント統合の、元記事閲覧権限連動ハック Plugin版
元ネタ:d3コメント統合の、元記事閲覧権限連動ハック
上記のハックでは、d3forum本体がバージョンアップした場合に...
wyeさんから、ハック無しで同様の閲覧権限反映ができるsmarty...
** 機能・内容
*** コメント元記事の閲覧権限の継承
メインとなる機能です。 D3コメント統合を行った各モジュー...
+ listtopics ページ、 listtopics_over_categories ページ
+ listtopicsブロック、listpostsブロック
+ forum検索 ページ
+ Global 検索 ページ → 各ユーザーの投稿ログページには...
となっています。
各モジュールへの問い合わせた結果は、そのモジュールのD3com...
但し、listtopics ページと listtopics_over_categories ...
理由は、どこか表示しておかないと、元記事が削除されたり...
&font(Red){今回のpluginによる副作用として、このような迷...
*** Plugin 本体
以下のソースを、「(xoops_root_path)/class/smarty/plugins/...
#code(php,1-){{
<?php
function smarty_modifier_d3com_validate_id($d3forum_dir, ...
{
$db =& Database::getInstance();
// ルート側のd3forumのディレクトリチェック
if (empty($d3forum_dir)) {
return TRUE;
}
if (!is_dir(XOOPS_ROOT_PATH .'/modules/'. $d3forum_dir)) {
return TRUE;
}
// $GLOBALS の post_id をチェック
if (!empty($post_id) && isset($GLOBALS['d3com_'. $d3foru...
return $GLOBALS['d3com_'. $d3forum_dir . '_post_id_' . ...
}
// $topic_idがない場合、post_id から topic_id を取得
if (empty($topic_id)) {
if (empty($post_id)) {
return TRUE;
}
$sql = "SELECT `topic_id` FROM `"
. $db->prefix(mysql_real_escape_string($d3forum_dir."...
. "` WHERE `post_id`=" . intval($post_id);
$result_row = $db->fetchArray($db->query($sql));
if (!empty($result_row['topic_id'])) {
$topic_id = intval($result_row['topic_id']);
} else {
return TRUE;
}
}
// $GLOBALS の topic_id をチェック
if (!empty($post_id) && isset($GLOBALS['d3com_'. $d3foru...
return $GLOBALS['d3com_'. $d3forum_dir . '_topic_id_' ....
}
// topic_id から topic_external_link_id を取得
$sql = "SELECT `topic_external_link_id`, `forum_id` FROM...
. $db->prefix(mysql_real_escape_string($d3forum_dir."_...
. "` WHERE `topic_id`=" . intval($topic_id);
$result_row = $db->fetchArray($db->query($sql));
if (empty($result_row['topic_external_link_id'])) {
return TRUE;
}
$topic_external_link_id = intval($result_row['topic_exte...
// forum_id
if (($forum_id = $result_row['forum_id']) == '') {
return TRUE;
}
if (isset($GLOBALS['d3com_'. $d3forum_dir . '_forum_id_'...
$obj = $GLOBALS['d3com_'. $d3forum_dir . '_forum_id_' ....
} else {
// forum_id から forum_external_link_format を取得
$sql = "SELECT `forum_external_link_format` FROM `"
. $db->prefix(mysql_real_escape_string($d3forum_dir."...
. "` WHERE `forum_id`=". intval($forum_id);
$result_row = $db->fetchArray($db->query($sql));
if (empty($result_row['forum_external_link_format'])) {
return TRUE;
}
require_once XOOPS_TRUST_PATH . '/modules/d3forum/inclu...
$obj =& d3forum_main_get_comment_object($d3forum_dir, $...
if (!is_object($obj)) {
return TRUE;
}
$GLOBALS['d3com_'. $d3forum_dir . '_forum_id_' . $forum...
}
// validate_id()メソッドで権限チェックする
if (!method_exists($obj, 'validate_id')) {
return TRUE;
}
$check_result = $obj->validate_id($topic_external_link_i...
// $GLOBALS に post_id, topic_id で権限チェックをいれて...
if (!empty($post_id)) $GLOBALS['d3com_'. $d3forum_dir . ...
if (!empty($topic_id)) $GLOBALS['d3com_'. $d3forum_dir ....
return $check_result;
}
}}
*** テンプレート (d3forum)_main_listtopics.html
92行目 あたりと、118行目あたりを、以下のように編集します。
<{if 'd3forum'|d3com_validate_id:$post.post_id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
なお、フォーラムの管理者・モデレータには、迷子記事にはタ...
#code(html,92-){{
<{foreach item=topic from=$topics}>
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
<{assign var="topic_permission_ok" value="0"}>
<{else}>
<{assign var="topic_permission_ok" value="1"}>
<{/if}>
<{if $topic_permission_ok || $forum.isadminormod}>
<{if $topic.sticky}>
<{assign var="topic_icon_src" value="`$mod_imageurl`/top...
<{assign var="topic_icon_alt" value=$smarty.const._MD_D3...
<{elseif $topic.invisible}>
}}
#code(html,124-){{
<a href="<{$mod_url}>/index.php?topic_id=<{$topic.id}>">...
<{if !$topic_permission_ok}>
<font color="red">Lost Contents ?</font>
<{/if}></td>
<td><{$topic.replies}></td>
<td><{$topic.views}></td>
<{if $mod_config.use_vote}>
<td><{$topic.votes_count}></td>
<td><{$topic.votes_avg|string_format:"%.2f"}></td>
<{/if}>
<td class="d3f_posters"><{$topic.first_post_time_formatt...
<{$topic.first_post_uname}> <a href="<{$mod_url}>/index....
<td class="d3f_posters"><{if $topic.replies>0}><{$topic....
<{$topic.last_post_uname}> <a href="<{$mod_url}>/index.p...
</tr>
<{/if}>
<{/foreach}>
<!-- end forum topic -->
}}
*** テンプレート (d3forum)_main_listtopics_over_categorie...
47行目 あたりと、91行目あたりを、以下のように編集します。
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
#code(html,47-){{
<{foreach item=topic from=$topics}>
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
<{assign var="topic_permission_ok" value="0"}>
<{else}>
<{assign var="topic_permission_ok" value="1"}>
<{/if}>
<{if $topic_permission_ok}>
<{if $topic.sticky}>
<{assign var="topic_icon_src" value="`$mod_imageurl`/top...
<{assign var="topic_icon_alt" value=$smarty.const._MD_D3...
<{elseif $topic.invisible}>
}}
#code(html,91-){{
<{/strip}>
</tr>
<{/if}>
<{/foreach}>
<!-- end forum topic -->
}}
*** テンプレート (d3forum)_block_list_topics.html
12行目 あたりと、35行目あたり、60行目あたりを、以下のよ...
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
(09-11-20修正:stripタグの重複を削除。[[thx Maria:http://...
#code(html,12-){{
<{foreach item=topic from=$block.topics}>
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
<{assign var="topic_permission_ok" value="0"}>
<{else}>
<{assign var="topic_permission_ok" value="1"}>
<{/if}>
<{if $topic_permission_ok}>
<{strip}>
<tr class="<{cycle values="even,odd"}>">
<td><a href="<{$block.mod_url}>/index.php?forum_id=<{$to...
}}
#code(html,35-){{
</tr>
<{/strip}>
<{/if}>
<{/foreach}>
</table>
}}
#code(html,60-){{
<ol style="padding:3px;margin:0;">
<{foreach item=topic from=$block.topics}>
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
<{assign var="topic_permission_ok" value="0"}>
<{else}>
<{assign var="topic_permission_ok" value="1"}>
<{/if}>
<{if $topic_permission_ok}>
<li><a href="<{$block.mod_url}>/index.php?topic_id=<{$to...
<{/if}>
<{/foreach}>
</ol>
<{/if}>
}}
*** テンプレート (d3forum)_block_list_posts.html
以下のように編集します。
<{if 'd3forum'|d3com_validate_id:$post.id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
#code(html,1-){{
<ol style="padding:3px;margin:0;">
<{foreach item=post from=$block.posts}>
<{if 'd3forum'|d3com_validate_id:$post.id ===FALSE}>
<{assign var="post_permission_ok" value="0"}>
<{else}>
<{assign var="post_permission_ok" value="1"}>
<{/if}>
<{if $post_permission_ok}>
<li style="margin:1px;"><a href="<{$block.mod_url}>/inde...
<{/if}>
<{/foreach}>
</ol>
}}
*** テンプレート (d3forum)_main_search.html
75行目あたりを、以下のように編集します。
<{if 'd3forum'|d3com_validate_id:$post.post_id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
#code(html,75-){{
<{foreach from=$results item=post}>
<{if 'd3forum'|d3com_validate_id:$post.post_id ===FALSE}>
<{assign var="post_permission_ok" value="0"}>
<{else}>
<{assign var="post_permission_ok" value="1"}>
<{/if}>
<{if $post_permission_ok}>
<tr>
<td class="even d3f_topictitle"><a href="<{$mod_url}>/in...
<td class="odd d3f_topictitle"><a href="<{$mod_url}>/ind...
<td class="even"><a href="<{$xoops_url}>/userinfo.php?ui...
<td class="odd"><{if $mod_config.use_vote}><{$post.votes...
<td class="even"><{$post.post_time_formatted}></td>
</tr><{/if}>
<{/foreach}>
}}
*** テンプレート legacy_search_result.html
コアがXCLの場合、このテンプレートの6行目あたりからを、以...
<{if 'd3forum'|d3com_validate_id:$post_id ===FALSE}>
の 'd3forum'の部分は、インストールディレクトリ名に変更し...
#code(html,6-){{
<!-- start results item loop -->
<ul style="list-style:none;margin-left:10px;">
<{foreach item=result from=$module.results}>
<{assign var="post_id" value=$result.link|replace:'http:/...
<{if 'd3forum'|d3com_validate_id:$post_id ===FALSE}>
<{assign var="post_permission_ok" value="0"}>
<{else}>
<{assign var="post_permission_ok" value="1"}>
<{/if}>
<{if $post_permission_ok}>
<li><img src="<{$result.image}>" alt="<{$module.name}...
<span style="font-size:small;">
<{if $result.uid > 0}>
<a href="<{$smarty.const.XOOPS_URL}>/userinfo.php...
<{/if}>
(<{$result.time|xoops_formattimestampGMT:l}>)
</span></li>
<{/if}>
<{/foreach}>
}}
** 謝辞
すばらしいpluginを作ってくださいました、wyeさんに感謝致し...
d3forumの当該ソースはもちろんのこと、その他のソースも参考...
** 改変履歴
2009/11/20修正:stripタグの重複を削除。[[thx Maria:http:/...
2009/08/09公開
終了行:
* d3コメント統合の、元記事閲覧権限連動ハック Plugin版
元ネタ:d3コメント統合の、元記事閲覧権限連動ハック
上記のハックでは、d3forum本体がバージョンアップした場合に...
wyeさんから、ハック無しで同様の閲覧権限反映ができるsmarty...
** 機能・内容
*** コメント元記事の閲覧権限の継承
メインとなる機能です。 D3コメント統合を行った各モジュー...
+ listtopics ページ、 listtopics_over_categories ページ
+ listtopicsブロック、listpostsブロック
+ forum検索 ページ
+ Global 検索 ページ → 各ユーザーの投稿ログページには...
となっています。
各モジュールへの問い合わせた結果は、そのモジュールのD3com...
但し、listtopics ページと listtopics_over_categories ...
理由は、どこか表示しておかないと、元記事が削除されたり...
&font(Red){今回のpluginによる副作用として、このような迷...
*** Plugin 本体
以下のソースを、「(xoops_root_path)/class/smarty/plugins/...
#code(php,1-){{
<?php
function smarty_modifier_d3com_validate_id($d3forum_dir, ...
{
$db =& Database::getInstance();
// ルート側のd3forumのディレクトリチェック
if (empty($d3forum_dir)) {
return TRUE;
}
if (!is_dir(XOOPS_ROOT_PATH .'/modules/'. $d3forum_dir)) {
return TRUE;
}
// $GLOBALS の post_id をチェック
if (!empty($post_id) && isset($GLOBALS['d3com_'. $d3foru...
return $GLOBALS['d3com_'. $d3forum_dir . '_post_id_' . ...
}
// $topic_idがない場合、post_id から topic_id を取得
if (empty($topic_id)) {
if (empty($post_id)) {
return TRUE;
}
$sql = "SELECT `topic_id` FROM `"
. $db->prefix(mysql_real_escape_string($d3forum_dir."...
. "` WHERE `post_id`=" . intval($post_id);
$result_row = $db->fetchArray($db->query($sql));
if (!empty($result_row['topic_id'])) {
$topic_id = intval($result_row['topic_id']);
} else {
return TRUE;
}
}
// $GLOBALS の topic_id をチェック
if (!empty($post_id) && isset($GLOBALS['d3com_'. $d3foru...
return $GLOBALS['d3com_'. $d3forum_dir . '_topic_id_' ....
}
// topic_id から topic_external_link_id を取得
$sql = "SELECT `topic_external_link_id`, `forum_id` FROM...
. $db->prefix(mysql_real_escape_string($d3forum_dir."_...
. "` WHERE `topic_id`=" . intval($topic_id);
$result_row = $db->fetchArray($db->query($sql));
if (empty($result_row['topic_external_link_id'])) {
return TRUE;
}
$topic_external_link_id = intval($result_row['topic_exte...
// forum_id
if (($forum_id = $result_row['forum_id']) == '') {
return TRUE;
}
if (isset($GLOBALS['d3com_'. $d3forum_dir . '_forum_id_'...
$obj = $GLOBALS['d3com_'. $d3forum_dir . '_forum_id_' ....
} else {
// forum_id から forum_external_link_format を取得
$sql = "SELECT `forum_external_link_format` FROM `"
. $db->prefix(mysql_real_escape_string($d3forum_dir."...
. "` WHERE `forum_id`=". intval($forum_id);
$result_row = $db->fetchArray($db->query($sql));
if (empty($result_row['forum_external_link_format'])) {
return TRUE;
}
require_once XOOPS_TRUST_PATH . '/modules/d3forum/inclu...
$obj =& d3forum_main_get_comment_object($d3forum_dir, $...
if (!is_object($obj)) {
return TRUE;
}
$GLOBALS['d3com_'. $d3forum_dir . '_forum_id_' . $forum...
}
// validate_id()メソッドで権限チェックする
if (!method_exists($obj, 'validate_id')) {
return TRUE;
}
$check_result = $obj->validate_id($topic_external_link_i...
// $GLOBALS に post_id, topic_id で権限チェックをいれて...
if (!empty($post_id)) $GLOBALS['d3com_'. $d3forum_dir . ...
if (!empty($topic_id)) $GLOBALS['d3com_'. $d3forum_dir ....
return $check_result;
}
}}
*** テンプレート (d3forum)_main_listtopics.html
92行目 あたりと、118行目あたりを、以下のように編集します。
<{if 'd3forum'|d3com_validate_id:$post.post_id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
なお、フォーラムの管理者・モデレータには、迷子記事にはタ...
#code(html,92-){{
<{foreach item=topic from=$topics}>
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
<{assign var="topic_permission_ok" value="0"}>
<{else}>
<{assign var="topic_permission_ok" value="1"}>
<{/if}>
<{if $topic_permission_ok || $forum.isadminormod}>
<{if $topic.sticky}>
<{assign var="topic_icon_src" value="`$mod_imageurl`/top...
<{assign var="topic_icon_alt" value=$smarty.const._MD_D3...
<{elseif $topic.invisible}>
}}
#code(html,124-){{
<a href="<{$mod_url}>/index.php?topic_id=<{$topic.id}>">...
<{if !$topic_permission_ok}>
<font color="red">Lost Contents ?</font>
<{/if}></td>
<td><{$topic.replies}></td>
<td><{$topic.views}></td>
<{if $mod_config.use_vote}>
<td><{$topic.votes_count}></td>
<td><{$topic.votes_avg|string_format:"%.2f"}></td>
<{/if}>
<td class="d3f_posters"><{$topic.first_post_time_formatt...
<{$topic.first_post_uname}> <a href="<{$mod_url}>/index....
<td class="d3f_posters"><{if $topic.replies>0}><{$topic....
<{$topic.last_post_uname}> <a href="<{$mod_url}>/index.p...
</tr>
<{/if}>
<{/foreach}>
<!-- end forum topic -->
}}
*** テンプレート (d3forum)_main_listtopics_over_categorie...
47行目 あたりと、91行目あたりを、以下のように編集します。
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
#code(html,47-){{
<{foreach item=topic from=$topics}>
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
<{assign var="topic_permission_ok" value="0"}>
<{else}>
<{assign var="topic_permission_ok" value="1"}>
<{/if}>
<{if $topic_permission_ok}>
<{if $topic.sticky}>
<{assign var="topic_icon_src" value="`$mod_imageurl`/top...
<{assign var="topic_icon_alt" value=$smarty.const._MD_D3...
<{elseif $topic.invisible}>
}}
#code(html,91-){{
<{/strip}>
</tr>
<{/if}>
<{/foreach}>
<!-- end forum topic -->
}}
*** テンプレート (d3forum)_block_list_topics.html
12行目 あたりと、35行目あたり、60行目あたりを、以下のよ...
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
(09-11-20修正:stripタグの重複を削除。[[thx Maria:http://...
#code(html,12-){{
<{foreach item=topic from=$block.topics}>
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
<{assign var="topic_permission_ok" value="0"}>
<{else}>
<{assign var="topic_permission_ok" value="1"}>
<{/if}>
<{if $topic_permission_ok}>
<{strip}>
<tr class="<{cycle values="even,odd"}>">
<td><a href="<{$block.mod_url}>/index.php?forum_id=<{$to...
}}
#code(html,35-){{
</tr>
<{/strip}>
<{/if}>
<{/foreach}>
</table>
}}
#code(html,60-){{
<ol style="padding:3px;margin:0;">
<{foreach item=topic from=$block.topics}>
<{if 'd3forum'|d3com_validate_id:$topic.id ===FALSE}>
<{assign var="topic_permission_ok" value="0"}>
<{else}>
<{assign var="topic_permission_ok" value="1"}>
<{/if}>
<{if $topic_permission_ok}>
<li><a href="<{$block.mod_url}>/index.php?topic_id=<{$to...
<{/if}>
<{/foreach}>
</ol>
<{/if}>
}}
*** テンプレート (d3forum)_block_list_posts.html
以下のように編集します。
<{if 'd3forum'|d3com_validate_id:$post.id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
#code(html,1-){{
<ol style="padding:3px;margin:0;">
<{foreach item=post from=$block.posts}>
<{if 'd3forum'|d3com_validate_id:$post.id ===FALSE}>
<{assign var="post_permission_ok" value="0"}>
<{else}>
<{assign var="post_permission_ok" value="1"}>
<{/if}>
<{if $post_permission_ok}>
<li style="margin:1px;"><a href="<{$block.mod_url}>/inde...
<{/if}>
<{/foreach}>
</ol>
}}
*** テンプレート (d3forum)_main_search.html
75行目あたりを、以下のように編集します。
<{if 'd3forum'|d3com_validate_id:$post.post_id ===FALSE}>
の、'd3forum'の部分は、インストールディレクトリ名にあわせ...
#code(html,75-){{
<{foreach from=$results item=post}>
<{if 'd3forum'|d3com_validate_id:$post.post_id ===FALSE}>
<{assign var="post_permission_ok" value="0"}>
<{else}>
<{assign var="post_permission_ok" value="1"}>
<{/if}>
<{if $post_permission_ok}>
<tr>
<td class="even d3f_topictitle"><a href="<{$mod_url}>/in...
<td class="odd d3f_topictitle"><a href="<{$mod_url}>/ind...
<td class="even"><a href="<{$xoops_url}>/userinfo.php?ui...
<td class="odd"><{if $mod_config.use_vote}><{$post.votes...
<td class="even"><{$post.post_time_formatted}></td>
</tr><{/if}>
<{/foreach}>
}}
*** テンプレート legacy_search_result.html
コアがXCLの場合、このテンプレートの6行目あたりからを、以...
<{if 'd3forum'|d3com_validate_id:$post_id ===FALSE}>
の 'd3forum'の部分は、インストールディレクトリ名に変更し...
#code(html,6-){{
<!-- start results item loop -->
<ul style="list-style:none;margin-left:10px;">
<{foreach item=result from=$module.results}>
<{assign var="post_id" value=$result.link|replace:'http:/...
<{if 'd3forum'|d3com_validate_id:$post_id ===FALSE}>
<{assign var="post_permission_ok" value="0"}>
<{else}>
<{assign var="post_permission_ok" value="1"}>
<{/if}>
<{if $post_permission_ok}>
<li><img src="<{$result.image}>" alt="<{$module.name}...
<span style="font-size:small;">
<{if $result.uid > 0}>
<a href="<{$smarty.const.XOOPS_URL}>/userinfo.php...
<{/if}>
(<{$result.time|xoops_formattimestampGMT:l}>)
</span></li>
<{/if}>
<{/foreach}>
}}
** 謝辞
すばらしいpluginを作ってくださいました、wyeさんに感謝致し...
d3forumの当該ソースはもちろんのこと、その他のソースも参考...
** 改変履歴
2009/11/20修正:stripタグの重複を削除。[[thx Maria:http:/...
2009/08/09公開
ページ名:
ぺージ情報
ぺージ名 :
inc/d3com_auth_plugin
ページ別名 :
未設定
ページ作成 :
なーお
閲覧可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
編集可
グループ :
なし
ユーザー :
なし
Counter: 0, today: 0, yesterday: 0
Go Page Top
Powered by
XOOPS Cube
2.2 © 2001-2012
XOOPS Cube Project
, theme design by
BCOOL
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
新規登録
メインメニュー
ホーム
なーお'nぶろぐ
フォーラム
なーお'n研究室
xpwiki
最新ページ一覧
全ページ一覧
ヘルプ
新着情報
マイアルバム
ラン記録
大会リスト
シューズリスト
画像マネージャ
マイフレンド
WEBリンク集