Xigg「公開待ち」から「公開記事」へ遷移させたい
投稿者: itv | 投稿日時: 2008-7-11 2:26 | 閲覧: 6832回
ホダ塾ディストリビューション(HD-1.0.1b)とXigg1.20を使用しています。
Xiggサイト開設にあたり、
・当初の投票はあまり多くは見込めない。
・記事投稿後無条件に「公開」とすると投票0件の記事がズラリと並ぶ。
という事情より
「登録ユーザ」権限にて投稿直後には「公開待ち」とし
1件でも投票があれば「公開記事」にする
というポリシーでの運営開始を考えています。
しかしながらこの動作がうまく行かないため、対応を教授頂きたく。
【やったこと】
1).登録ユーザ権限で記事を投稿し、「公開待ち」の状態とする。
2).Xigg管理画面「公開待ち記事が公開されるために必要な得票数」の最小値に1 または5を設定可能とする。
xoops_trust_path\modules\Xigg\xoops_version.php ライン245-246
[変更前]
[変更後]
→管理画面で1を設定後、DBの値を参照し1に書き換えられたことを確認。
3).上記変更でも最小値1の場合に公開状態(publish)にするロジックを通過しないようだったので比較式に等号(=)を追加
xoops_trust_path\PEAR\Xigg\Main\SubmitVote.php ライン63
[変更前]
[変更後]
→デバッグにて1件の投票、および2件の投票のいずれの場合も上記if文が真となることを確認
やったことは以上ですが、この状態で1件の投票、および2件の投票いずれでも公開記事へと移動しません。
お手数ですが対応を教授頂ければ幸いです。
Xiggサイト開設にあたり、
・当初の投票はあまり多くは見込めない。
・記事投稿後無条件に「公開」とすると投票0件の記事がズラリと並ぶ。
という事情より
「登録ユーザ」権限にて投稿直後には「公開待ち」とし
1件でも投票があれば「公開記事」にする
というポリシーでの運営開始を考えています。
しかしながらこの動作がうまく行かないため、対応を教授頂きたく。
【やったこと】
1).登録ユーザ権限で記事を投稿し、「公開待ち」の状態とする。
2).Xigg管理画面「公開待ち記事が公開されるために必要な得票数」の最小値に1 または5を設定可能とする。
xoops_trust_path\modules\Xigg\xoops_version.php ライン245-246
[変更前]
'default' => 10,
'options' => array('10' => 10, '20' => 20, '30' => 30, '50' => 50, '100' => 100, '200' => 200, '500' => 500, '1000' => 1000)
[変更後]
'default' => 1,
'options' => array('1' => 1, '5' => 5, '10' => 10, '20' => 20, '30' => 30, '50' => 50, '100' => 100, '200' => 200, '500' => 500, '1000' => 1000)
→管理画面で1を設定後、DBの値を参照し1に書き換えられたことを確認。
3).上記変更でも最小値1の場合に公開状態(publish)にするロジックを通過しないようだったので比較式に等号(=)を追加
xoops_trust_path\PEAR\Xigg\Main\SubmitVote.php ライン63
[変更前]
if ($node_votes > $context->application->config->get('numberOfVotesForPopular')) {
[変更後]
if ($node_votes >= $context->application->config->get('numberOfVotesForPopular')) {
→デバッグにて1件の投票、および2件の投票のいずれの場合も上記if文が真となることを確認
やったことは以上ですが、この状態で1件の投票、および2件の投票いずれでも公開記事へと移動しません。
お手数ですが対応を教授頂ければ幸いです。
コメント(4)
新しいものから |
古いものから |
ネスト表示 |
Re: Xigg「公開待ち」から「公開記事」へ遷移させたい
Re: Xigg「公開待ち」から「公開記事」へ遷移させたい
Re: Xigg「公開待ち」から「公開記事」へ遷移させたい
しかしながら、記事右上の投票数欄が0のままで1になりません。
テーブルを見たところ
**_xigg_voteには投票したレコードが追加されていたのですが
**_xigg_nodeのフィールド「node_vote_count」が0のままでした。
この件ですが、$nodeを再度読み込む必要がありました。
ちょっと修正箇所が増えますが、
xoops_trust_path/PEAR/Xigg/Main.phpを下記のように修正
function &getNodeById(&$context, $nodeIdVar = 'node_id', $clearCache = false)
{
$ret = false;
if (0 < $node_id = $context->request->getAsInt($nodeIdVar)) {
$model =& $context->application->locator->getService('Model');
$node_r =& $model->getRepository('Node');
if ($clearCache) {
$node_r->clearCache();
}
if (false !== $node =& $node_r->fetchById($node_id)) {
$ret =& $node;
}
}
return $ret;
}
xoops_trust_path/PEAR/Xigg/Main/SubmitVote.phpの下記箇所
$node_votes = $node->countVotes();
下記のように変更
// reload node
if (!$node =& $this->_parent->getNodeById($context, 'node_id', true)) {
$context->response->setError(_('An error occurred'));
return;
}
$node_votes = $node->getVoteCount();
これで大丈夫ではないかと思います。
Re: Xigg「公開待ち」から「公開記事」へ遷移させたい


