Enhancement(機能追加・改善) #2578
Yuya Watanabe さんが約13年前に更新
h3. 概要 コミュニティ数が著しく多い場合にインフォメーションボックスを表示しやすくする. 例えばコミュニティ数が10000ほどあった場合にphp.iniのmax_execution_timeで設定されている時間を超えて表示できない場合がある. 例えばコミュニティ数が10000ほどあった場合にメモリが不十分で表示できない場合がある. これをOpenPNE側で対応する. h3. 修正案 下記部分でコミュニティIDのみを取得するようにする. <pre><code class="diff"> diff --git a/lib/model/doctrine/CommunityMemberTable.class.php b/lib/model/doctrine/CommunityMemberTable.class.php index 28e378b..067ed94 100644 --- a/lib/model/doctrine/CommunityMemberTable.class.php +++ b/lib/model/doctrine/CommunityMemberTable.class.php @@ -105,12 +105,16 @@ class CommunityMemberTable extends opAccessControlDoctrineTable public function getCommunityIdsOfAdminByMemberId($memberId) { - $objects = Doctrine::getTable('CommunityMemberPosition')->findByMemberIdAndName($memberId, 'admin'); + $objects = Doctrine::getTable('CommunityMemberPosition')->createQuery() + ->select('community_id') + ->where('member_id = ?', $memberId) + ->andWhere('name = ?', 'admin') + ->execute(array(), Doctrine_Core::HYDRATE_NONE); $results = array(); foreach ($objects as $obj) { - $results[] = $obj->getCommunityId(); + $results[] = $obj[0]; } return $results; } </code></pre>