protected function addJoins(\Zend_DB_Select $select)
{
// add fielcollection's
$fieldCollections = $this->model->getFieldCollections();
if (!empty($fieldCollections)) {
foreach ($fieldCollections as $fc) {
// join info
$table = 'object_collection_' . $fc['type'] . '_' . $this->model->getClassId();
$name = $fc['type'];
if (!empty($fc['fieldname'])) {
$name .= "~" . $fc['fieldname'];
}
// set join condition
$condition = <<<CONDITION
1
AND {$this->db->quoteIdentifier($name)}.o_id = {$this->db->quoteIdentifier($this->getTableName())}.o_id
CONDITION;
if (!empty($fc['fieldname'])) {
$condition .= <<<CONDITION
AND {$this->db->quoteIdentifier($name)}.fieldname = "{$fc['fieldname']}"
CONDITION;
}
// add join
$select->joinLeft([$name => $table], $condition, '');
}
}
// add brick's
$objectbricks = $this->model->getObjectbricks();
if (!empty($objectbricks)) {
foreach ($objectbricks as $ob) {
// join info
$table = 'object_brick_query_' . $ob . '_' . $this->model->getClassId();
$name = $ob;
// add join
$select->joinLeft([$name => $table], <<<CONDITION
1
AND {$this->db->quoteIdentifier($name)}.o_id = {$this->db->quoteIdentifier($this->getTableName())}.o_id
CONDITION
, '');
}
}
return $this;
}