diff -u -ru typo3_src-4.0/t3lib/stddb/tables.sql typo3_src-4.0.em/t3lib/stddb/tables.sql --- typo3_src-4.0/t3lib/stddb/tables.sql 2006-04-07 02:18:29.000000000 +0200 +++ typo3_src-4.0.em/t3lib/stddb/tables.sql 2006-08-15 13:57:08.452249000 +0200 @@ -96,6 +96,33 @@ ); # +# Table structure for table 'cache_extensions' +# +CREATE TABLE cache_extensions ( + extkey varchar(60) NOT NULL default '', + version varchar(10) NOT NULL default '', + alldownloadcounter int(11) unsigned NOT NULL default '0', + downloadcounter int(11) unsigned NOT NULL default '0', + title varchar(150) NOT NULL default '', + description mediumtext NOT NULL, + state int(4) NOT NULL default '0', + reviewstate int(4) unsigned NOT NULL default '0', + category int(4) NOT NULL default '0', + lastuploaddate int(11) unsigned NOT NULL default '0', + dependencies mediumtext NOT NULL, + authorname varchar(100) NOT NULL default '', + authoremail varchar(100) NOT NULL default '', + ownerusername varchar(50) NOT NULL default '', + t3xfilemd5 varchar(35) NOT NULL default '', + uploadcomment mediumtext NOT NULL, + authorcompany varchar(100) NOT NULL default '', + intversion int(11) NOT NULL default '0', + lastversion int(3) NOT NULL default '0', + lastreviewedversion int(3) NOT NULL default '0', + PRIMARY KEY (extkey,version) +); + +# # Table structure for table 'cache_hash' # CREATE TABLE cache_hash ( diff -u -ru typo3_src-4.0/typo3/mod/tools/em/class.em_index.php typo3_src-4.0.em/typo3/mod/tools/em/class.em_index.php --- typo3_src-4.0/typo3/mod/tools/em/class.em_index.php 2006-04-07 02:18:29.000000000 +0200 +++ typo3_src-4.0.em/typo3/mod/tools/em/class.em_index.php 2006-08-14 22:29:32.873768750 +0200 @@ -201,6 +201,8 @@ var $maxUploadSize = 31457280; // Max size in bytes of extension upload to repository var $kbMax = 500; // Max size in kilobytes for files to be edited. var $doPrintContent = true; // If set (default), the function printContent() will echo the content which was collected in $this->content. You can set this to FALSE in order to echo content from elsewhere, fx. when using outbut buffering + var $listingLimit = 500; // List that many extension maximally at one time (fixing memory problems) + var $listingLimitAuthor = 250; // List that many extension maximally at one time (fixing memory problems) /** * Internal variable loaded with extension categories (for display/listing). Should reflect $categories above @@ -761,18 +763,25 @@ $this->detailCols[1]+=6; // see if we have an extensionlist at all - $this->xmlhandler->loadExtensionsXML(); - if (!count($this->xmlhandler->extensionsXML)) { + $this->extensionCount = $this->xmlhandler->countExtensions(); + if (!$this->extensionCount) { $content .= $this->fetchMetaData('extensions'); } + if($this->MOD_SETTINGS['listOrder']=='author_company') { + $this->listingLimit = $this->listingLimitAuthor; + } + + $this->pointer = intval(t3lib_div::_GP('pointer')); + $offset = $this->listingLimit*$this->pointer; + if($this->MOD_SETTINGS['display_own'] && strlen($this->fe_user['username'])) { - $this->xmlhandler->searchExtensionsXML($this->listRemote_search, $this->fe_user['username']); + $this->xmlhandler->searchExtensionsXML($this->listRemote_search, $this->fe_user['username'], $this->MOD_SETTINGS['listOrder']); } else { - $this->xmlhandler->searchExtensionsXML($this->listRemote_search); + $this->xmlhandler->searchExtensionsXML($this->listRemote_search, '', $this->MOD_SETTINGS['listOrder'], false, false, $offset, $this->listingLimit); } if (count($this->xmlhandler->extensionsXML)) { - list($list,$cat) = $this->prepareImportExtList(); + list($list,$cat) = $this->prepareImportExtList(true); // Available extensions if (is_array($cat[$this->MOD_SETTINGS['listOrder']])) { @@ -815,9 +824,11 @@ } $lines[]=$this->extensionListRow($extKey,$ext,array('