public static function getUnlimitedRowCount($callerClass, $filter = "", $join = "") { // Init some vars $oTable = $table = DataObjectHelper::getTableForClass($callerClass); if (Object::has_extension($callerClass, 'Versioned')) { $stage = Versioned::current_stage(); $table = $oTable . ($stage == 'Live' ? '_' . $stage : ''); } $wSQL = ""; //$sql = "SELECT COUNT(*) as total FROM ".$table; $sql = "SELECT COUNT(*) as total FROM " . SS_SITE_DATABASE_NAME . '.' . $table; // join if ($join) { $sql .= " " . $join; } if ($oTable != $callerClass && DataObjectHelper::tableExists($callerClass)) { $sql .= " LEFT JOIN " . $callerClass . " ON " . $table . ".ID = " . $callerClass . ".ID"; } // Add caller class filter if its on a shared table if ($callerClass != $oTable) { $wSQL .= $wSQL ? " AND " : " WHERE "; $wSQL .= "(" . $table . ".ClassName='" . $callerClass . "'"; if ($subclasses = DataObjectHelper::getSubclassesOf($callerClass)) { foreach ($subclasses as $subclass) { $wSQL .= " OR " . $table . ".ClassName='" . $subclass . "'"; } } $wSQL .= ")"; } // Filter if ($filter) { $wSQL .= $wSQL ? " AND " : " WHERE "; $wSQL .= "(" . $filter . ")"; } //finalise $sql .= $wSQL; return self::getUnlimitedRowCountForSQL($sql); }