public static function buildSitePagerConditions(&$q, &$joins, $is_module = false, $is_linked = false, $first_join = null, $ltype = null) { $join = 'site'; if ($is_module) { $m = 'm'; $linked = ''; $main_join = $m . '.associations'; $linked_join = $m . '.LinkedAssociation'; if (isset($joins['site_id'])) { $q->leftJoin($main_join . ' lt'); if (isset($joins['site_id_has'])) { $q->addWhere("lt.type = 'tt'"); } } if (isset($joins['subsite_id'])) { $q->leftJoin($linked_join . ' ltt'); if (isset($joins['subsite_id_has'])) { $q->addWhere("ltt.type = 'tt'"); } } } else { $m = 'lt'; if ($is_linked) { $linked = 'Linked'; $main_join = $m . 'MainMainAssociation'; $linked_join = $m . '.LinkedAssociation'; } else { $linked = ''; $main_join = $m . 'MainAssociation'; $linked_join = $m . '.LinkedLinkedAssociation'; } $join_id = $join . '_id'; if (isset($joins[$join_id])) { self::joinOnMulti($q, $joins, $join_id, $first_join . " {$m}", 5); if (isset($joins[$join_id . '_has'])) { $q->addWhere($m . "1.type = '{$ltype}'"); } } if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_idi18n']) || isset($joins[$join . '_i18n'])) { $q->leftJoin($first_join . " {$m}"); if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_i18n'])) { if ($ltype) { $q->addWhere($m . ".type = '{$ltype}'"); } } if (isset($joins[$join])) { $q->leftJoin($m . '.' . $linked . 'Site t'); } } } if (isset($joins[$join . '_i18n'])) { $q->leftJoin($m . '.' . $linked . 'SiteI18n ti'); } if (isset($joins['join_tbook'])) { Book::buildBookPagerConditions($q, $joins, false, 't', false, $main_join, 'bt'); } if (isset($joins['join_tarticle'])) { Article::buildArticlePagerConditions($q, $joins, false, 't', false, $linked_join, 'tc'); } }
public static function buildAreaPagerConditions(&$q, &$joins, $is_module = false, $is_linked = false, $first_join = null, $ltype = null) { $join = 'area'; if ($is_module) { $m = 'm'; $linked = ''; $main_join = $m . '.geoassociations'; $linked_join = $m . '.LinkedAssociation'; } else { $m = 'lo.'; if ($is_linked) { $linked = 'Linked'; $main_join = $m . '.MainMainAssociation'; $linked_join = $m . '.LinkedAssociation'; } else { $linked = ''; $main_join = $m . '.MainAssociation'; $linked_join = $m . '.LinkedLinkedAssociation'; } $join_id = $join . '_id'; if (isset($joins[$join_id])) { self::joinOnMulti($q, $joins, $join_id, $first_join . " {$m}", 5); if (isset($joins[$join_id . '_has'])) { $q->addWhere($m . "1.type = '{$ltype}'"); } } if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_idi18n']) || isset($joins[$join . '_i18n'])) { $q->leftJoin($first_join . " {$m}"); if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_i18n'])) { if ($ltype) { if ($ltype) { $q->addWhere($m . ".type = '{$ltype}'"); } } } if (isset($joins[$join])) { $q->leftJoin($m . '.' . $linked . 'Area a'); } } } if (isset($joins[$join . '_i18n'])) { $q->leftJoin($m . '.' . $linked . 'AreaI18n ai'); } if (isset($joins['join_aarticle'])) { Article::buildArticlePagerConditions($q, $joins, false, 'a', false, $linked_join, 'ac'); } }
public static function buildImagePagerConditions(&$q, &$joins, $is_module = false, $ltype = null, $from_users = false) { $join = 'image'; if ($is_module) { $m = 'm'; $main_join = $m . '.associations'; } else { $m = 'li'; $join_id = $join . '_id'; if (!$from_users) { $main_join = $m . '.MainMainAssociation'; if (isset($joins[$join_id])) { self::joinOnMulti($q, $joins, $join_id, "m.LinkedAssociation {$m}", 5); if (isset($joins[$join_id . '_has'])) { $q->addWhere($m . "1.type = '{$ltype}'"); } } } else { $m = $m . '1'; $main_join = $m . '.MainAssociation'; $q->leftJoin("m.history_metadata hm")->leftJoin("hm.versions {$m}")->addWhere("{$m}.version = 1"); if (isset($joins[$join . '_id_has'])) { $q->leftJoin("{$m}.LinkedAssociation li2")->addWhere("li2.type = '{$ltype}'"); } } if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_idi18n']) || isset($joins[$join . '_i18n'])) { if (!$from_users) { $q->leftJoin("m.LinkedAssociation {$m}"); if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_i18n'])) { if ($ltype) { $q->addWhere($m . ".type = '{$ltype}'"); } } } if (isset($joins[$join])) { $q->leftJoin($m . '.' . 'Image i'); } } } if (isset($joins[$join . '_i18n'])) { $q->leftJoin($m . '.' . 'ImageI18n ii'); } if (isset($joins['join_iarticle'])) { Article::buildArticlePagerConditions($q, $joins, false, 'i', false, $main_join, 'ci'); } }
public static function buildUserPagerConditions(&$q, &$joins, $is_module = false, $is_linked = false, $first_join = null, $ltype = null) { $join = 'user'; if ($is_module) { $m = 'm'; $linked = ''; $main_join = $m . '.associations'; $linked_join = $m . '.LinkedAssociation'; $private_data = 'private_data'; } else { $m = 'lu'; $private_data = 'UserPrivateData'; if ($is_linked) { $linked = 'Linked'; $main_join = $m . '.MainMainAssociation'; $linked_join = $m . '.LinkedAssociation'; } else { $linked = ''; $main_join = $m . '.MainAssociation'; $linked_join = $m . '.LinkedLinkedAssociation'; } $join_id = $join . '_id'; if (isset($joins[$join_id])) { self::joinOnMulti($q, $joins, $join_id, $first_join . " {$m}", 5); if (isset($joins[$join_id . '_has'])) { $q->addWhere($m . "1.type = '{$ltype}'"); } } if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_idi18n']) || isset($joins[$join . '_i18n'])) { $q->leftJoin($first_join . " {$m}"); if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_i18n'])) { if ($ltype) { $q->addWhere($m . ".type = '{$ltype}'"); } } if (isset($joins[$join])) { $q->leftJoin($m . '.' . $linked . 'User u'); } } } if (isset($joins[$join . '_pd'])) { $q->leftJoin($m . '.' . $linked . $private_data . ' upd'); } if (isset($joins[$join . '_i18n'])) { $q->leftJoin($m . '.' . $linked . 'UserI18n ui'); } if (isset($joins['join_uarticle'])) { Article::buildArticlePagerConditions($q, $joins, false, 'u', false, $linked_join, 'uc'); } }
public static function buildBookPagerConditions(&$q, &$joins, $is_module = false, $prefix = '', $is_linked = false, $first_join = null, $ltype = null) { $join = $prefix . 'book'; if ($is_module) { $m = 'm'; $linked = ''; $linked2 = ''; $linked_join = $m . '.associations'; } else { $m = 'l' . $prefix . 'b'; if ($is_linked) { $linked = 'Linked'; $linked2 = ''; } else { $linked = ''; $linked2 = 'Linked'; } $linked_join = $m . '.' . $linked2 . 'LinkedAssociation'; $join_id = $join . '_id'; if (isset($joins[$join_id])) { self::joinOnMulti($q, $joins, $join_id, $first_join . " {$m}", 5); if (isset($joins[$join_id . '_has'])) { $q->addWhere($m . "1.type = '{$ltype}'"); } } if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_idi18n']) || isset($joins[$join . '_i18n'])) { $q->leftJoin($first_join . " {$m}"); if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_i18n'])) { if ($ltype) { $q->addWhere($m . ".type = '{$ltype}'"); } } if (isset($joins[$join])) { $q->leftJoin($m . '.' . $linked . 'Book ' . $prefix . 'b'); } } } if (isset($joins[$join . '_i18n'])) { $q->leftJoin($m . '.' . $linked . 'BookI18n ' . $prefix . 'bi'); } if (isset($joins['join_' . $prefix . 'barticle'])) { Article::buildArticlePagerConditions($q, $joins, false, $prefix . 'b', false, $linked_join, 'bc'); } }
public static function buildParkingPagerConditions(&$q, &$joins, $is_module = false, $is_linked = false, $first_join = null, $ltype = null, $p = 'p') { $join = 'parking'; if ($is_module) { $m = 'm'; $linked = ''; $main_join = $m . '.associations'; $linked_join = $m . '.LinkedAssociation'; if (isset($joins['parking_id'])) { $q->leftJoin($main_join . ' lp'); if (isset($joins['parking_id_has'])) { $q->addWhere("lp.type = 'pp'"); } } if (isset($joins['subparking_id'])) { $q->leftJoin($linked_join . ' lpp'); if (isset($joins['subparking_id_has'])) { $q->addWhere("lpp.type = 'pp'"); } } } else { $m = 'lp'; if ($is_linked) { $linked = 'Linked'; $main_join = $m . '.MainMainAssociation'; $linked_join = $m . '.LinkedAssociation'; } else { $linked = ''; $main_join = $m . '.MainAssociation'; $linked_join = $m . '.LinkedLinkedAssociation'; } $join_id = $join . '_id'; if (isset($joins[$join_id])) { self::joinOnMulti($q, $joins, $join_id, $first_join . " {$m}", 5); if (isset($joins[$join_id . '_has'])) { $q->addWhere($m . "1.type = '{$ltype}'"); } } if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_idi18n']) || isset($joins[$join . '_i18n'])) { $q->leftJoin($first_join . " {$m}"); if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_i18n'])) { if ($ltype) { $q->addWhere($m . ".type = '{$ltype}'"); } } if (isset($joins[$join])) { $q->leftJoin($m . '.' . $linked . 'Parking p'); } } } if (isset($joins[$join . '_i18n'])) { $q->leftJoin($m . '.' . $linked . 'ParkingI18n pi'); } if (isset($joins['join_pbook'])) { Book::buildBookPagerConditions($q, $joins, false, 'p', false, $main_join, 'bp'); } if (isset($joins['join_particle'])) { Article::buildArticlePagerConditions($q, $joins, false, 'p', false, $linked_join, 'pc'); } }
public static function buildPagerConditions(&$q, $criteria) { $conditions = $criteria[0]; $values = $criteria[1]; $joins = $criteria[2]; $route_join = 'm.associations'; $route_ltype = 'rc'; $summit_join = 'm.associations'; $summit_ltype = 'sc'; $hut_join = 'm.associations'; $hut_ltype = 'hc'; $parking_join = 'm.associations'; $parking_ltype = 'pc'; $site_join = 'm.associations'; $site_ltype = 'tc'; self::joinOnLinkedDocMultiRegions($q, $joins); self::joinOnMulti($q, $joins, 'user_id', 'm.associations u', 4); if (isset($joins['cdoc'])) { $q->leftJoin('m.associations lcd'); } // join with article tables only if needed if (isset($joins['join_article'])) { Article::buildArticlePagerConditions($q, $joins, true); } // join with book tables only if needed if (isset($joins['join_cbook'])) { Book::buildBookPagerConditions($q, $joins, false, 'c', false, $main_join, 'bc'); } // join with outing tables only if needed if (isset($joins['join_outing'])) { Outing::buildOutingPagerConditions($q, $joins, false, false, 'm.associations', 'oc'); $route_join = 'lo.MainAssociation'; $route_ltype = 'ro'; $summit_join = 'lr.MainAssociation'; $summit_ltype = 'sr'; $hut_join = 'lr.MainAssociation'; $hut_ltype = 'hr'; $parking_join = 'lr.MainAssociation'; $parking_ltype = 'pr'; $site_join = 'lo.MainAssociation'; $site_ltype = 'to'; if (isset($joins['join_summit']) || isset($joins['join_hut']) || isset($joins['join_parking'])) { $joins['join_route'] = true; $joins['post_route'] = true; } } // join with route tables only if needed if (isset($joins['join_route'])) { Route::buildRoutePagerConditions($q, $joins, false, false, $route_join, $route_ltype); $summit_join = 'lr.MainAssociation'; $summit_ltype = 'sr'; $hut_join = 'lr.MainAssociation'; $hut_ltype = 'hr'; $parking_join = 'lr.MainAssociation'; $parking_ltype = 'pr'; } // join with summit tables only if needed if (isset($joins['join_summit'])) { Summit::buildSummitPagerConditions($q, $joins, false, false, $summit_join, $summit_ltype); } // join with hut tables only if needed if (isset($joins['join_hut'])) { Hut::buildHutPagerConditions($q, $joins, false, false, $hut_join, $hut_ltype); } // join with parking tables only if needed if (isset($joins['join_parking'])) { Parking::buildParkingPagerConditions($q, $joins, false, false, $parking_join, $parking_ltype); } // join with site tables only if needed if (isset($joins['join_site'])) { Site::buildSitePagerConditions($q, $joins, false, false, $site_join, $site_ltype); } // join with image tables only if needed if (isset($joins['join_image'])) { Image::buildImagePagerConditions($q, $joins, false, 'ci'); } if (!empty($conditions)) { $q->addWhere(implode(' AND ', $conditions), $values); } }
public static function buildHutPagerConditions(&$q, &$joins, $is_module = false, $is_linked = false, $first_join = null, $ltype = null) { $join = 'hut'; if ($is_module) { $m = 'm'; $linked = ''; $linked2 = ''; $main_join = $m . '.associations'; $linked_join = $m . '.LinkedAssociation'; } else { $m = 'lh'; if ($is_linked) { $linked = 'Linked'; $main_join = $m . '.MainMainAssociation'; $linked_join = $m . '.LinkedAssociation'; } else { $linked = ''; $main_join = $m . '.MainAssociation'; $linked_join = $m . '.LinkedLinkedAssociation'; } $join_id = $join . '_id'; if (isset($joins[$join_id])) { self::joinOnMulti($q, $joins, $join_id, $first_join . " {$m}", 5); if (isset($joins[$join_id . '_has'])) { $q->addWhere($m . "1.type = '{$ltype}'"); } } if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_idi18n']) || isset($joins[$join . '_i18n'])) { $q->leftJoin($first_join . " {$m}"); if (isset($joins['post_' . $join]) || isset($joins[$join]) || isset($joins[$join . '_i18n'])) { if ($ltype) { $q->addWhere($m . ".type = '{$ltype}'"); } } if (isset($joins[$join])) { $q->leftJoin($m . '.' . $linked . 'Hut h'); } } } if (isset($joins[$join . '_i18n'])) { $q->leftJoin($m . '.' . $linked . 'HutI18n hi'); } if (isset($joins['join_hbook'])) { Book::buildBookPagerConditions($q, $joins, false, 'h', false, $main_join, 'bh'); } if (isset($joins['join_harticle'])) { Article::buildArticlePagerConditions($q, $joins, false, 'h', false, $linked_join, 'hc'); } }