XPressME Integration Kit

フォーラム

Re: single.phpにいいねモジュールを組み込む

#3269
toemon
キーマスター

追加実験

iine/function.phpの111行目

<code>$sql = sprintf("SELECT COUNT(*) FROM %s WHERE content_id = '%u' AND dirname = '%s' AND ip = '%s'",</code>

の部分(バッククオートがうまく表示できません)に AND uid = 0 を加えて

<code>$sql = sprintf("SELECT COUNT(*) FROM %s WHERE content_id = '%u' AND dirname = '%s' AND ip = '%s' AND uid = 0",</code>

のように修正し、ゲストアクセス時の投票有無判断から、ユーザIDのあるデータを除外することで、少なくとも、iineモジュールのゲストアクセス権限を有効にしてある状態での動作上の不具合は解消されるのではないでしょうか?

アクセス権限の問題に関しては、よくわかりませんが、

iineモジュールのアクセス権限に合わせるのであれば

<code>global $module_handler,$xoopsUser;<br />
<br />
if (is_object($xoopsUser)) {<br />
$user_groupe = $xoopsUser->getGroups();<br />
} else {<br />
$user_groupe = array(XOOPS_GROUP_ANONYMOUS);<br />
}<br />
$iine_module =& $module_handler->getByDirname( 'iine' ) ;<br />
$iine_modid =  $iine_module->mid();<br />
$sysperm_handler =& xoops_gethandler('groupperm');<br />
if (!$sysperm_handler->checkRight('module_read', $iine_modid, $user_groupe)){<br />
iineモジュールアクセス権限なし時の処理<br />
} else {<br />
iineモジュールアクセス権限あり時の処理<br />
}</code>

単にログインユーザとゲストの判断をしたいのであれば

<code>global $xoopsUser;<br />
<br />
if (is_object($xoopsUser)) {<br />
// ログインユーザ時の処理<br />
} else {<br />
// ゲスト時の処理<br />
}</code>

みたいな感じで分岐させれば良いのではないでしょうか?