Combined sections in date order

7 posts by 2 authors in: Forums > CMS Builder
Last Post: December 23, 2020   (RSS)

By mbareara - December 22, 2020 - edited: December 22, 2020

Hi, and thank you in advance for your help. 

I have two sections combined in one main page with this code... but i would put them in a date order... and i don't know how. Any suggestion?

// load records
list($approfondimentiRecords, $approfondimentiMetaData) = getRecords(array(
'tableName' => 'approfondimenti',
'perPage' => '15',
'leftJoin' => array(
// foreign table => local field (that matches num in foreign table)
'autori' => 'autori',
),
));

list($attualitaRecords, $attualitaMetaData) = getRecords(array(
'tableName' => 'attualita',
'limit' => '5',
'leftJoin' => array(
// foreign table => local field (that matches num in foreign table)
'autori' => 'autori',
),
));

$allRecords = array_merge(
$attualitaRecords,
$approfondimentiRecords

);

?>

By hans - December 22, 2020 - edited: December 22, 2020

Hello, is it okay if you give me the schema files for both of these tables? The schema files can be found in /data/schema/approfondimenti.php and /data/schema/attualita.php

If you can't, then you should try to do a UNION of both of those tables, and use the mysql_get_query() to run the SQL query.

Hans Marcon
PHP Programmer (In Training)
interactivetools.com
<?php /* This is a PHP data file */ if (!@$LOADSTRUCT) { die("This is not a program file."); }
return array (
  '_detailPage' => '/approfondimenti/articolo.php',
  '_disableAdd' => '0',
  '_disableErase' => '0',
  '_disableModify' => '0',
  '_disablePreview' => '0',
  '_disableView' => '1',
  '_filenameFields' => 'title',
  '_hideRecordsFromDisabledAccounts' => '0',
  '_indent' => '0',
  '_listPage' => 'index.php',
  '_maxRecords' => '',
  '_maxRecordsPerUser' => '',
  '_previewPage' => '',
  '_requiredPlugins' => '',
  '_tableName' => 'approfondimenti',
  'listPageFields' => 'dragSortOrder, title, data, hits',
  'listPageOrder' => 'dragSortOrder DESC',
  'listPageSearchFields' => '_all_',
  'menuHidden' => '0',
  'menuName' => 'Approfondimenti',
  'menuOrder' => '0000000004',
  'menuType' => 'multi',
  'num' => array(
    'order' => 1,
    'type' => 'none',
    'label' => 'Record Number',
    'isSystemField' => '1',
  ),
  'createdDate' => array(
    'order' => 2,
    'type' => 'none',
    'label' => 'Created',
    'isSystemField' => '1',
  ),
  'createdByUserNum' => array(
    'order' => 3,
    'type' => 'none',
    'label' => 'Created By',
    'isSystemField' => '1',
  ),
  'updatedDate' => array(
    'order' => 4,
    'type' => 'none',
    'label' => 'Last Updated',
    'isSystemField' => '1',
  ),
  'updatedByUserNum' => array(
    'order' => 5,
    'type' => 'none',
    'label' => 'Last Updated By',
    'isSystemField' => '1',
  ),
  'dragSortOrder' => array(
    'order' => 6,
    'label' => 'Order',
    'type' => 'none',
  ),
  'title' => array(
    'order' => 7,
    'label' => 'Title',
    'type' => 'textfield',
    'defaultValue' => '',
    'description' => '',
    'fieldWidth' => '',
    'isPasswordField' => '0',
    'isRequired' => '1',
    'isUnique' => '0',
    'minLength' => '',
    'maxLength' => '',
    'charsetRule' => '',
    'charset' => '',
  ),
  'data' => array(
    'order' => 8,
    'label' => 'Data ',
    'type' => 'date',
    'fieldPrefix' => '',
    'description' => '',
    'isRequired' => '0',
    'isUnique' => '0',
    'defaultDate' => '',
    'defaultDateString' => '2011-01-01 00:00:00',
    'showTime' => '0',
    'showSeconds' => '0',
    'use24HourFormat' => '0',
    'yearRangeStart' => '2009',
    'yearRangeEnd' => '2025',
  ),
  'publishDate' => array(
    'order' => 9,
    'label' => 'PublishDate',
    'type' => 'date',
    'fieldPrefix' => '',
    'description' => '',
    'isRequired' => '0',
    'isUnique' => '0',
    'defaultDate' => '',
    'defaultDateString' => '2013-01-01 00:00:00',
    'showTime' => '1',
    'showSeconds' => '0',
    'use24HourFormat' => '0',
    'yearRangeStart' => '2011',
    'yearRangeEnd' => '2030',
  ),
  'categoria' => array(
    'order' => 10,
    'label' => 'Categoria',
    'type' => 'list',
    'defaultValue' => '',
    'fieldPrefix' => '',
    'description' => '',
    'isRequired' => '0',
    'isUnique' => '0',
    'listType' => 'pulldownMulti',
    'optionsType' => 'table',
    'optionsTablename' => 'categorie',
    'optionsValueField' => 'name',
    'optionsLabelField' => 'name',
  ),
  'autori' => array(
    'order' => 11,
    'label' => 'Autore',
    'type' => 'list',
    'defaultValue' => '',
    'fieldPrefix' => '',
    'description' => '',
    'isRequired' => '0',
    'isUnique' => '0',
    'listType' => 'pulldown',
    'optionsType' => 'query',
    'optionsQuery' => 'SELECT num, CONCAT(cognome," ",nome)  FROM `<?php echo $TABLE_PREFIX ?>autori` ORDER BY cognome ASC ',
  ),
  'immagine_piccola' => array(
    'order' => 12,
    'label' => 'immagine piccola',
    'type' => 'textfield',
    'defaultValue' => '',
    'fieldPrefix' => '',
    'description' => '',
    'fieldWidth' => '',
    'isPasswordField' => '0',
    'isRequired' => '0',
    'isUnique' => '0',
    'minLength' => '',
    'maxLength' => '',
    'charsetRule' => '',
    'charset' => '',
  ),
  'sommario' => array(
    'order' => 13,
    'label' => 'Sommario',
    'type' => 'textbox',
    'defaultContent' => '',
    'fieldPrefix' => '',
    'description' => '',
    'isRequired' => '0',
    'isUnique' => '0',
    'minLength' => '',
    'maxLength' => '',
    'fieldHeight' => '',
    'autoFormat' => '1',
  ),
  'content' => array(
    'order' => 14,
    'label' => 'Content',
    'type' => 'textbox',
    'defaultContent' => '',
    'fieldPrefix' => '',
    'description' => '',
    'isRequired' => '0',
    'isUnique' => '0',
    'minLength' => '',
    'maxLength' => '',
    'fieldHeight' => '300',
    'autoFormat' => '1',
  ),
  'allegati' => array(
    'order' => 15,
    'label' => 'Allegati',
    'type' => 'upload',
    'fieldPrefix' => '',
    'description' => '',
    'isRequired' => '0',
    'allowedExtensions' => 'pdf',
    'checkMaxUploadSize' => '1',
    'maxUploadSizeKB' => '5120',
    'checkMaxUploads' => '1',
    'maxUploads' => '25',
    'resizeOversizedImages' => '1',
    'maxImageHeight' => '800',
    'maxImageWidth' => '600',
    'createThumbnails' => '1',
    'maxThumbnailHeight' => '150',
    'maxThumbnailWidth' => '150',
    'createThumbnails2' => '0',
    'maxThumbnailHeight2' => '150',
    'maxThumbnailWidth2' => '150',
    'createThumbnails3' => '0',
    'maxThumbnailHeight3' => '150',
    'maxThumbnailWidth3' => '150',
    'createThumbnails4' => '0',
    'maxThumbnailHeight4' => '150',
    'maxThumbnailWidth4' => '150',
    'useCustomUploadDir' => '0',
    'customUploadDir' => '',
    'customUploadUrl' => '',
    'infoField1' => 'Title',
    'infoField2' => 'Caption',
    'infoField3' => '',
    'infoField4' => '',
    'infoField5' => '',
  ),
  'immagine' => array(
    'order' => 16,
    'label' => 'Immagine',
    'type' => 'upload',
    'fieldPrefix' => '',
    'description' => '',
    'isRequired' => '0',
    'allowedExtensions' => 'gif,jpg,png',
    'checkMaxUploadSize' => '1',
    'maxUploadSizeKB' => '5120',
    'checkMaxUploads' => '1',
    'maxUploads' => '1',
    'resizeOversizedImages' => '1',
    'maxImageHeight' => '600',
    'maxImageWidth' => '800',
    'createThumbnails' => '1',
    'maxThumbnailHeight' => '150',
    'maxThumbnailWidth' => '150',
    'createThumbnails2' => '1',
    'maxThumbnailHeight2' => '400',
    'maxThumbnailWidth2' => '600',
    'createThumbnails3' => '1',
    'maxThumbnailHeight3' => '1365',
    'maxThumbnailWidth3' => '2048',
    'createThumbnails4' => '0',
    'maxThumbnailHeight4' => '150',
    'maxThumbnailWidth4' => '150',
    'useCustomUploadDir' => '0',
    'customUploadDir' => '',
    'customUploadUrl' => '',
    'infoField1' => 'Title',
    'infoField2' => 'Caption',
    'infoField3' => '',
    'infoField4' => '',
    'infoField5' => '',
  ),
  'hits' => array(
    'order' => 17,
    'label' => 'hits',
    'type' => 'textfield',
    'isSystemField' => '1',
    'defaultValue' => '',
    'fieldPrefix' => '',
    'description' => '',
    'fieldWidth' => '',
    'isPasswordField' => '0',
    'isRequired' => '0',
    'isUnique' => '0',
    'minLength' => '',
    'maxLength' => '',
    'charsetRule' => '',
    'charset' => '',
  ),
  'autore' => array(
    'order' => '18',
    'label' => 'autore',
    'type' => 'textfield',
    'isSystemField' => '1',
    'indexed' => '0',
    'defaultValue' => '',
    'fieldPrefix' => '',
    'description' => '',
    'fieldWidth' => '',
    'isPasswordField' => '0',
    'isRequired' => '0',
    'isUnique' => '0',
    'minLength' => '',
    'maxLength' => '',
    'charsetRule' => '',
    'charset' => '',
  ),
);
?>

By hans - December 22, 2020 - edited: December 22, 2020

The table prefix is "cmsb_" correct? I need this to make the UNION query.

EDIT:

As it turns out, I do not need to make this a union. I can simply do a sorting from php's end. In any case:

foreach($allRecords as $key => $record){
		$date = $record['publishData'];
		$allRecords[$key]['timestamp'] = intval(strtotime($date));
	}

	function sorterAsc($a,$b){
		if($a['timestamp'] === $b['timestamp']){
			return 0;
		}
		return ($a['timestamp'] < $b['timestamp']) ? -1 : 1;
	}

	function sorterDesc($a,$b){
		if($a['timestamp'] === $b['timestamp']){
			return 0;
		}
		return ($a['timestamp'] > $b['timestamp']) ? -1 : 1;
	}

	uasort($allRecords, 'sorterDesc');

Add that code below the $allRecords variable, and the sorting should work barring other issues. There is a proxy method to sort called sorterDesc() which does the comparison for the publishDate timestamp.

I'll just be here if you have any questions.

Hans Marcon
PHP Programmer (In Training)
interactivetools.com

Great solution! It works perfectly!

By hans - December 23, 2020

Alright, glad to know it works for you.

Hans Marcon
PHP Programmer (In Training)
interactivetools.com