protected function getCopyrights($upload_pk, $item, $uploadTreeTableName, $agentId, $type, $filter) { $offset = GetParm('iDisplayStart', PARM_INTEGER); $limit = GetParm('iDisplayLength', PARM_INTEGER); $tableName = $this->getTableName($type); $orderString = $this->getOrderString(); list($left, $right) = $this->uploadDao->getLeftAndRight($item, $uploadTreeTableName); if ($filter == "") { $filter = "none"; } $sql_upload = ""; if ('uploadtree_a' == $uploadTreeTableName) { $sql_upload = " AND UT.upload_fk={$upload_pk} "; } $join = ""; $filterQuery = ""; if ($type == 'statement' && $filter == "nolic") { $noLicStr = "No_license_found"; $voidLicStr = "Void"; $join = " INNER JOIN license_file AS LF on cp.pfile_fk=LF.pfile_fk "; $filterQuery = " AND LF.rf_fk IN (SELECT rf_pk FROM license_ref WHERE rf_shortname IN ('{$noLicStr}','{$voidLicStr}')) "; } else { // No filter, nothing to do } $params = array($left, $right, $type, $agentId); $filterParms = $params; $searchFilter = $this->addSearchFilter($filterParms); $unorderedQuery = "FROM {$tableName} AS cp " . "INNER JOIN {$uploadTreeTableName} AS UT ON cp.pfile_fk = UT.pfile_fk " . $join . "WHERE cp.content!='' " . "AND ( UT.lft BETWEEN \$1 AND \$2 ) " . "AND cp.type = \$3 " . "AND cp.agent_fk= \$4 " . $sql_upload; $totalFilter = $filterQuery . " " . $searchFilter; $grouping = " GROUP BY content "; $countQuery = "SELECT count(*) FROM (SELECT content, count(*) {$unorderedQuery} {$totalFilter} {$grouping}) as K"; $iTotalDisplayRecordsRow = $this->dbManager->getSingleRow($countQuery, $filterParms, __METHOD__ . $tableName . ".count"); $iTotalDisplayRecords = $iTotalDisplayRecordsRow['count']; $countAllQuery = "SELECT count(*) FROM (SELECT content, count(*) {$unorderedQuery}{$grouping}) as K"; $iTotalRecordsRow = $this->dbManager->getSingleRow($countAllQuery, $params, __METHOD__, $tableName . "count.all"); $iTotalRecords = $iTotalRecordsRow['count']; $range = ""; $filterParms[] = $offset; $range .= ' OFFSET $' . count($filterParms); $filterParms[] = $limit; $range .= ' LIMIT $' . count($filterParms); $sql = "SELECT content, hash, count(*) as copyright_count " . $unorderedQuery . $totalFilter . " GROUP BY content, hash " . $orderString . $range; $statement = __METHOD__ . $filter . $tableName . $uploadTreeTableName; $this->dbManager->prepare($statement, $sql); $result = $this->dbManager->execute($statement, $filterParms); $rows = $this->dbManager->fetchAll($result); $this->dbManager->freeResult($result); return array($rows, $iTotalDisplayRecords, $iTotalRecords); }