if((isset($_GET['roomwide_search_type']) and in_array(CS_MATERIAL_TYPE, $_GET['roomwide_search_type'])) or !isset($_GET['roomwide_search_type'])){
	foreach($context_array as $context){
		$rubric_manager = $environment->getManager(CS_MATERIAL_TYPE);
	   $rubric_manager->setContextLimit($context);
	   if(!empty($_GET['search'])){
	      $rubric_manager->setSearchLimit($_GET['search']);
	   }
      $rubric_manager->showNoNotActivatedEntries();
	   $rubric_manager->select();
	   $item_list = $rubric_manager->get();
	   $complete_list->addList($item_list);
	}
}

$complete_list->sortby('modification_date');
$complete_list->reverse();

$count = $complete_list->getCount();

$number_of_pages = 0;
if($count % $interval == 0){
   $number_of_pages = ($count / $interval)-1;
} else {
   $number_of_pages = (($count - ($count % $interval)) / $interval);
}
if($number_of_pages == -1){
	$number_of_pages++;
}

$result_page = $_GET['page'];
if($result_page > $number_of_pages){
Пример #2
0
	// get all rooms
	echo "Lade Rauminformationen..."; nl(); nl();
	$roomManager = $environment->getRoomManager();
	$roomManager->setContextLimit($oldPortalId);
	$roomManager->select();
	$roomList = $roomManager->get();

	// determine rooms to move
	$moveList = new cs_list();
	$moveIdArray = array();
	$roomListItem = $roomList->getFirst();
	while ($roomListItem) {
		if (in_array($roomListItem->getItemID(), $csvContent)) {
			// ensure community rooms are listed before project rooms
			if ($roomListItem->isCommunityRoom()) {
				$moveList->reverse();
				$moveList->add($roomListItem);
				$moveList->reverse();
			} else {
				$moveList->add($roomListItem);
			}

			$moveIdArray[] = $roomListItem->getItemID();
		}
		
		$roomListItem = $roomList->getNext();
	}
	
	$numRoomsMoved = $moveList->getCount();

	// check for rooms, that were unable to find
 public function actionQuery()
 {
     $return = array("items" => array());
     $start = $this->_data["options"]["start"];
     $numEntries = $this->_data["options"]["numEntries"];
     $itemManager = $this->_environment->getItemManager();
     $currentUser = $this->_environment->getCurrentUserItem();
     // collection room ids
     $room_id_array = array();
     $grouproom_list = $currentUser->getUserRelatedGroupList();
     if (isset($grouproom_list) and $grouproom_list->isNotEmpty()) {
         $grouproom_list->reverse();
         $grouproom_item = $grouproom_list->getFirst();
         while ($grouproom_item) {
             $project_room_id = $grouproom_item->getLinkedProjectItemID();
             if (in_array($project_room_id, $room_id_array)) {
                 $room_id_array_temp = array();
                 foreach ($room_id_array as $value) {
                     $room_id_array_temp[] = $value;
                     if ($value == $project_room_id) {
                         $room_id_array_temp[] = $grouproom_item->getItemID();
                     }
                 }
                 $room_id_array = $room_id_array_temp;
             }
             $grouproom_item = $grouproom_list->getNext();
         }
     }
     $project_list = $currentUser->getUserRelatedProjectList();
     if (isset($project_list) and $project_list->isNotEmpty()) {
         $project_item = $project_list->getFirst();
         while ($project_item) {
             $room_id_array[] = $project_item->getItemID();
             $project_item = $project_list->getNext();
         }
     }
     $community_list = $currentUser->getUserRelatedCommunityList();
     if (isset($community_list) and $community_list->isNotEmpty()) {
         $community_item = $community_list->getFirst();
         while ($community_item) {
             $room_id_array[] = $community_item->getItemID();
             $community_item = $community_list->getNext();
         }
     }
     $room_id_array_without_privateroom = $room_id_array;
     $itemManager->setOrderLimit(true);
     if (isset($room_id_array_without_privateroom) && !empty($room_id_array_without_privateroom)) {
         $new_entry_array = $itemManager->getAllNewPrivateRoomEntriesOfRoomList($room_id_array_without_privateroom);
         $new_entry_list = $itemManager->getPrivateRoomHomeItemList($new_entry_array);
     } else {
         $new_entry_list = new cs_list();
     }
     // sort list
     $new_entry_list->sortby("modification_date");
     $new_entry_list->reverse();
     // prepare return
     $entry = $new_entry_list->getFirst();
     $count = 0;
     while ($entry) {
         if ($count >= $start && $count < $start + $numEntries) {
             $type = $entry->getItemType();
             if ($type == CS_LABEL_TYPE) {
                 $labelManager = $this->_environment->getLabelManager();
                 $entry = $labelManager->getItem($entry->getItemID());
                 $type = $entry->getLabelType();
             } else {
                 $manager = $this->_environment->getManager($type);
                 $entry = $manager->getItem($entry->getItemID());
             }
             if (isset($entry) and !empty($entry)) {
                 // skip portfolio
                 if ($entry->getType() !== CS_PORTFOLIO_TYPE) {
                     $moddate = $entry->getModificationDate();
                     if (mb_strstr($moddate, '9999-00-00')) {
                         $mod_date = "'";
                     } else {
                         if ($entry->getCreationDate() != $entry->getModificationDate()) {
                             $mod_date = $this->_environment->getTranslationObject()->getDateInLang($entry->getModificationDate());
                         } else {
                             $mod_date = $this->_environment->getTranslationObject()->getDateInLang($entry->getCreationDate());
                         }
                     }
                     if ($type === CS_MATERIAL_TYPE) {
                         $versionId = $entry->getVersionID();
                     } else {
                         $versionId = null;
                     }
                     $return["items"][] = array("itemId" => $entry->getItemID(), "contextId" => $entry->getContextID(), "module" => Type2Module($type), "title" => $entry->getTitle(), "image" => $this->getUtils()->getLogoInformationForType($type), "fileCount" => $entry->getFileList()->getCount(), "modificationDate" => $mod_date, "creator" => $entry->getCreatorItem()->getFullName(), "versionId" => $versionId);
                 }
             }
         }
         if (isset($entry) && !empty($entry) && $entry->getType() !== CS_PORTFOLIO_TYPE) {
             $count++;
         }
         $entry = $new_entry_list->getNext();
     }
     $return["total"] = $count;
     $this->setSuccessfullDataReturn($return);
     echo $this->_return;
 }
 public function actionQuery()
 {
     $return = array("items" => array());
     $start = $this->_data["options"]["start"];
     $numEntries = $this->_data["options"]["numEntries"];
     $query = $this->_data["query"];
     if (isset($this->_data["options"]["filter"])) {
         $filter = $this->_data["options"]["filter"];
     } else {
         $filter = array();
     }
     $currentUserItem = $this->_environment->getCurrentUserItem();
     $privateRoomItem = $currentUserItem->getOwnRoom();
     // collect data of interest
     $roomIdArray = array();
     $roomNameArray = array();
     $rubricArray = array();
     if (!empty($filter)) {
         foreach ($filter["rooms"] as $filterRoom) {
             if ($filterRoom["active"]) {
                 $roomIdArray[] = $filterRoom["id"];
                 $roomNameArray[$filterRoom["id"]] = $filterRoom["title"];
             }
         }
     } else {
         // project and group rooms
         $projectRoomList = $currentUserItem->getUserRelatedProjectList();
         $projectRoomItem = $projectRoomList->getFirst();
         while ($projectRoomItem) {
             $roomIdArray[] = $projectRoomItem->getItemID();
             $roomNameArray[$projectRoomItem->getItemID()] = $projectRoomItem->getTitle();
             $projectRoomItem = $projectRoomList->getNext();
         }
         // community rooms
         $communityRoomList = $currentUserItem->getUserRelatedCommunityList();
         $communityRoomItem = $communityRoomList->getFirst();
         while ($communityRoomItem) {
             $roomIdArray[] = $communityRoomItem->getItemID();
             $roomNameArray[$communityRoomItem->getItemID()] = $communityRoomItem->getTitle();
             $communityRoomItem = $communityRoomList->getNext();
         }
         // private room
         //$roomIdArray[] = $privateRoomItem->getItemID();
         //$roomNameArray[$privateRoomItem->getItemID()] = $privateRoomItem->getTitle();
     }
     // determe the rubrics to search in
     if (!empty($filter)) {
         foreach ($filter["rubrics"] as $filterRubric) {
             if ($filterRubric["active"] && in_array($filterRubric["type"], array(CS_DISCUSSION_TYPE, CS_DATE_TYPE, CS_TODO_TYPE))) {
                 $rubricArray[] = $filterRubric["type"];
             }
         }
     } else {
         $rubricArray[] = CS_DISCUSSION_TYPE;
         $rubricArray[] = CS_DATE_TYPE;
         $rubricArray[] = CS_TODO_TYPE;
     }
     /*
      * only three rubrics are handled in the following foreach loop
      * maybe these are the only managers that are able to handle context arrays???
      * however, setting context array limits in other managers seems not to work
      */
     // get search results from all relevant managers
     $searchResults = new cs_list();
     foreach ($rubricArray as $rubric) {
         $manager = $this->_environment->getManager($rubric);
         $manager->setContextArrayLimit($roomIdArray);
         if ($rubric == CS_DATE_TYPE) {
             $manager->setWithoutDateModeLimit();
         }
         if (!empty($query)) {
             $manager->setSearchLimit($query);
         }
         $manager->showNoNotActivatedEntries();
         $manager->select();
         $searchResults->addList($manager->get());
     }
     // redefine rubric array
     if (!empty($filter)) {
         $rubricArray = array();
         foreach ($filter["rubrics"] as $filterRubric) {
             if ($filterRubric["active"] && in_array($filterRubric["type"], array(CS_MATERIAL_TYPE, CS_ANNOUNCEMENT_TYPE, CS_TOPIC_TYPE))) {
                 $rubricArray[] = $filterRubric["type"];
             }
         }
     } else {
         $rubricArray = array(CS_MATERIAL_TYPE, CS_ANNOUNCEMENT_TYPE, CS_TOPIC_TYPE);
     }
     // materials
     foreach ($roomIdArray as $roomId) {
         foreach ($rubricArray as $rubric) {
             $rubricManager = $this->_environment->getManager($rubric);
             $rubricManager->setContextLimit($roomId);
             if (!empty($query)) {
                 $rubricManager->setSearchLimit($query);
             }
             $rubricManager->showNoNotActivatedEntries();
             $rubricManager->select();
             $searchResults->addList($rubricManager->get());
         }
     }
     // announcements
     foreach ($roomIdArray as $roomId) {
         $annoucementManager = $this->_environment->getManager(CS_ANNOUNCEMENT_TYPE);
         $annoucementManager->setContextLimit($roomId);
     }
     // sort list
     $searchResults->sortby("modification_date");
     $searchResults->reverse();
     // prepare return
     $entry = $searchResults->getFirst();
     $count = 0;
     while ($entry) {
         if ($count >= $start && $count < $start + $numEntries) {
             $type = $entry->getItemType();
             if ($type == CS_LABEL_TYPE) {
                 $labelManager = $this->_environment->getLabelManager();
                 $entry = $labelManager->getItem($entry->getItemID());
                 $type = $entry->getLabelType();
             } else {
                 $manager = $this->_environment->getManager($type);
                 $entry = $manager->getItem($entry->getItemID());
             }
             if (isset($entry) and !empty($entry)) {
                 // skip portfolio
                 if ($entry->getType() !== CS_PORTFOLIO_TYPE) {
                     $moddate = $entry->getModificationDate();
                     if ($entry->getCreationDate() != $entry->getModificationDate() && !strstr($moddate, '9999-00-00')) {
                         $mod_date = $this->_environment->getTranslationObject()->getDateInLang($entry->getModificationDate());
                     } else {
                         $mod_date = $this->_environment->getTranslationObject()->getDateInLang($entry->getCreationDate());
                     }
                     if ($type === CS_MATERIAL_TYPE) {
                         $versionId = $entry->getVersionID();
                     } else {
                         $versionId = null;
                     }
                     $return["items"][] = array("itemId" => $entry->getItemID(), "contextId" => $entry->getContextID(), "module" => Type2Module($type), "title" => $entry->getTitle(), "image" => $this->getUtils()->getLogoInformationForType($type), "fileCount" => $entry->getFileList()->getCount(), "modificationDate" => $mod_date, "creator" => $entry->getCreatorItem()->getFullName(), "versionId" => $versionId, "roomName" => $roomNameArray[$entry->getContextID()]);
                 }
             }
         }
         if (isset($entry) && !empty($entry) && $entry->getType() !== CS_PORTFOLIO_TYPE) {
             $count++;
         }
         $entry = $searchResults->getNext();
     }
     $return["total"] = $count;
     $this->setSuccessfullDataReturn($return);
     echo $this->_return;
 }