$package_path = $modx->getOption('core_path').'components/Register/model/';
$modx->addPackage('Register', $package_path);
$query = $modx->newQuery('RegOwn');
$query->select('RegOwn.*, RegSeen.*');
$query->sortby('RegOwn.own_bnr','DESC');
$query->sortby('RegOwn.own_date','DESC');
$query->leftJoin('RegSeen', 'RegSeen', array('RegOwn.own_bnr = RegSeen.seen_bnr'));
//$query->prepare();
//$modx->log(xPDO::LOG_LEVEL_ERROR, $query->toSql());
//$output = $query->toSql();
$lines = $modx->getCollection('RegOwn',$query);
foreach ($lines as $line) {
$fields = $line->toArray();
$output .= $modx->getChunk('RegisterMainTableRow', $fields);
}
return $output;
This question has been answered by multiple community members. See the first response.
select id,pagetitle, (select TV.tmplvarid from modx_site_tmplvar_contentvalues as TV where TV.contentid=resource.id order by tmplvarid DESC limit 1) as tmplvarid from modx_site_content as resource order by resource.id
//add package
$package_path = $modx->getOption('core_path').'components/Register/model/';
$modx->addPackage('Register', $package_path);
$bnr=array(); $bootnummer=array(); $velden=array(); $fields=array();
//create query on seen at last event
$vraag = $modx->newQuery('RegLaatst');
$vraag->sortby('laatst_jaar', 'DESC');
$vraag->sortby('laatst_gemeld_tijd', 'DESC');
$allelaatsten = $modx->getCollection('RegLaatst',$query);
//create array with boatnrs lasts seen rows
foreach ($allelaatsten as $eenlaatste) {
if(!in_array($eenlaatste->get('laatst_bnr'),$bnr)){
$bnr[]=$eenlaatste->get('laatst_bnr');
$velden[$eenlaatste->get('laatst_bnr')] = $eenlaatste->toArray();
}
}
//create owner records query
$query = $modx->newQuery('RegOwn');
//$query->groupby('own_bnr');
$query->sortby('own_bnr','DESC');
$query->sortby('own_jaar','DESC');
//write exact query to log
$query->prepare();
$dequery = $query->toSql();
$modx->log(xPDO::LOG_LEVEL_ERROR, $dequery);
//getPage help
$total = $modx->getCount('RegOwn',$query);
$totalVar = $modx->getOption('totalVar', $scriptProperties, 'total');
$modx->setPlaceholder($totalVar,$total);
$limit = $modx->getOption('limit',$scriptProperties,10);
$offset = $modx->getOption('offset',$scriptProperties,0);
$query->limit($limit,$offset);
$regels = $modx->getCollection('RegOwn',$query);
//create array with most recent lines on ownership per boat.
foreach ($regels as $regel) {
if(!in_array($regel->get('own_bnr'),$bootnummer)){
$bootnummer[]=$regel->get('own_bnr');
$fields[$regel->get('own_bnr')] = $regel->toArray();
//merge rows per boat on ownership and last seen
$alles[$regel->get('own_bnr')]= array_merge((array)$fields[$regel->get('own_bnr')],(array)$velden[$regel->get('own_bnr')]);
$output .= $modx->getChunk('RegisterOverzichtTabelRij', $alles[$regel->get('own_bnr')]);
}
}
return $output;
<?xml version="1.0" encoding="UTF-8"?> <model package="Register" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1"> <object class="RegBnaam" table="reg_bnaam" extends="xPDOObject"> <field key="bnaam_id" dbtype="int" precision="6" phptype="integer" null="false" index="pk" generated="native" /> <field key="bnaam_bnr" dbtype="int" precision="3" phptype="integer" null="false" /> <field key="bnaam_bnaam" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="bnaam_jaar" dbtype="int" precision="4" phptype="integer" null="false" /> <field key="bnaam_gemeld_door" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="bnaam_gemeld_tijd" dbtype="int" precision="15" phptype="integer" null="false" /> <index alias="PRIMARY" name="PRIMARY" primary="true" unique="true" type="BTREE" > <column key="bnaam_id" length="" collation="A" null="false" /> </index> </object> <object class="RegBoot" table="reg_boot" extends="xPDOObject"> <field key="boot_id" dbtype="int" precision="6" phptype="integer" null="false" index="pk" generated="native" /> <field key="boot_bnr" dbtype="int" precision="3" phptype="integer" null="false" /> <field key="boot_jaar" dbtype="int" precision="4" phptype="integer" null="false" default="0" /> <field key="boot_mal" dbtype="int" precision="1" phptype="integer" null="false" /> <field key="boot_bouwer" dbtype="varchar" precision="25" phptype="string" null="false" /> <field key="boot_meetbrief" dbtype="int" precision="1" phptype="integer" null="false" /> <field key="boot_rip" dbtype="int" precision="4" phptype="integer" null="false" /> <field key="boot_gemeld_door" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="boot_gemeld_tijd" dbtype="int" precision="15" phptype="integer" null="false" /> <index alias="PRIMARY" name="PRIMARY" primary="true" unique="true" type="BTREE" > <column key="boot_id" length="" collation="A" null="false" /> </index> </object> <object class="RegGear" table="reg_gear" extends="xPDOObject"> <field key="gear_id" dbtype="int" precision="6" phptype="integer" null="false" index="pk" generated="native" /> <field key="gear_bnr" dbtype="int" precision="3" phptype="integer" null="false" /> <field key="gear_wat" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="gear_merk" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="gear_type" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="gear_jaar" dbtype="int" precision="4" phptype="integer" null="false" /> <index alias="PRIMARY" name="PRIMARY" primary="true" unique="true" type="BTREE" > <column key="gear_id" length="" collation="A" null="false" /> </index> </object> <object class="RegLaatst" table="reg_laatst" extends="xPDOObject"> <field key="laatst_id" dbtype="int" precision="6" phptype="integer" null="false" index="pk" generated="native" /> <field key="laatst_bnr" dbtype="int" precision="3" phptype="integer" null="false" /> <field key="laatst_jaar" dbtype="int" precision="4" phptype="integer" null="false" /> <field key="laatst_waar" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="laatst_land" dbtype="varchar" precision="3" phptype="string" null="false" /> <field key="laatst_gemeld_door" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="laatst_gemeld_tijd" dbtype="int" precision="15" phptype="integer" null="false" /> <index alias="PRIMARY" name="PRIMARY" primary="true" unique="true" type="BTREE" > <column key="laatst_id" length="" collation="A" null="false" /> </index> </object> <object class="RegOwn" table="reg_own" extends="xPDOObject"> <field key="own_id" dbtype="int" precision="6" phptype="integer" null="false" index="pk" generated="native" /> <field key="own_bnr" dbtype="int" precision="3" phptype="integer" null="false" /> <field key="own_naam" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="own_club" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="own_land" dbtype="varchar" precision="3" phptype="string" null="false" /> <field key="own_jaar" dbtype="int" precision="4" phptype="integer" null="false" /> <field key="own_gemeld_door" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="own_gemeld_tijd" dbtype="int" precision="15" phptype="integer" null="false" /> <index alias="PRIMARY" name="PRIMARY" primary="true" unique="true" type="BTREE" > <column key="own_id" length="" collation="A" null="false" /> </index> </object> <object class="RegRes" table="reg_res" extends="xPDOObject"> <field key="res_id" dbtype="int" precision="6" phptype="integer" null="false" index="pk" generated="native" /> <field key="res_bnr" dbtype="int" precision="3" phptype="integer" null="false" /> <field key="res_land" dbtype="char" precision="3" phptype="string" null="false" /> <field key="res_stuur" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="res_beman" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="res_wat" dbtype="set" precision="'EURO','NLNAT','UKNAT','RACE','JAARB'" phptype="string" null="false" /> <field key="res_jaar" dbtype="int" precision="4" phptype="integer" null="false" /> <field key="res_plaats" dbtype="int" precision="2" phptype="integer" null="false" /> <field key="res_punten" dbtype="int" precision="4" phptype="integer" null="false" /> <index alias="PRIMARY" name="PRIMARY" primary="true" unique="true" type="BTREE" > <column key="res_id" length="" collation="A" null="false" /> </index> </object> <object class="RegTeam" table="reg_team" extends="xPDOObject"> <field key="team_id" dbtype="int" precision="6" phptype="integer" null="false" index="pk" generated="native" /> <field key="team_bnr" dbtype="int" precision="3" phptype="integer" null="false" /> <field key="team_stuur" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="team_beman" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="team_sorteer" dbtype="int" precision="2" phptype="integer" null="false" /> <field key="team_gemeld_door" dbtype="varchar" precision="50" phptype="string" null="false" /> <field key="team_gemeld_tijd" dbtype="int" precision="15" phptype="integer" null="false" /> <index alias="PRIMARY" name="PRIMARY" primary="true" unique="true" type="BTREE" > <column key="team_id" length="" collation="A" null="false" /> </index> </object> </model>