$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>