プロジェクト

全般

プロフィール

Enhancement(機能追加・改善) #2578

未完了

コミュニティ数が著しく多い場合にインフォメーションボックスを表示しやすくする

Yuya Watanabe さんが約13年前に追加. 12年以上前に更新.

ステータス:
Pending Review(レビュー待ち)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2011-11-01
期日:
進捗率:

50%

予定工数:

説明

概要

コミュニティ数が著しく多い場合にインフォメーションボックスを表示しやすくする.
例えばコミュニティ数が10000ほどあった場合にphp.iniのmax_execution_timeで設定されている時間を超えて表示できない場合がある.
これをOpenPNE側で対応する.

修正案

下記部分でコミュニティIDのみを取得するようにする.

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;
   }

他の形式にエクスポート: Atom PDF