diff --git a/src/admin/common/abstract/model/join.php b/src/admin/common/abstract/model/join.php new file mode 100644 index 0000000..e039a99 --- /dev/null +++ b/src/admin/common/abstract/model/join.php @@ -0,0 +1,62 @@ +alias; + } + + public function getTableName() + { + return $this->tablename; + } + + public function getOnCondition() + { + return $this->condition; + } + + public function getColumns() + { + return $this->columns; + } + + /** + * + * @param JDatabaseQuery $q + */ + public function join($q) + { + $str = "{$this->tablename} AS {$this->alias}"; + if(isset($this->condition)) + $str .= " ON {$this->condition}"; + $this->addJoin($q, $str); + + foreach($this->columns as $c) + { + $qc = $q->q("{$this->alias}." . $c->getColumn(), $c->getAlias()); + $q->select($qc); + } + } + + /** + * + * @param JDatabaseQuery $q + * @param String $str + */ + protected abstract function addJoin($q, $str); + +} diff --git a/src/admin/common/models/join/innner.php b/src/admin/common/models/join/innner.php new file mode 100644 index 0000000..4b30dbd --- /dev/null +++ b/src/admin/common/models/join/innner.php @@ -0,0 +1,12 @@ +innerJoin($str); + } +} diff --git a/src/admin/common/models/join/left.php b/src/admin/common/models/join/left.php new file mode 100644 index 0000000..dfaa740 --- /dev/null +++ b/src/admin/common/models/join/left.php @@ -0,0 +1,12 @@ +leftJoin($str); + } +} diff --git a/src/admin/common/models/join/outer.php b/src/admin/common/models/join/outer.php new file mode 100644 index 0000000..dfe527d --- /dev/null +++ b/src/admin/common/models/join/outer.php @@ -0,0 +1,12 @@ +outerJoin($str); + } +} diff --git a/src/admin/common/models/join/right.php b/src/admin/common/models/join/right.php new file mode 100644 index 0000000..9758e17 --- /dev/null +++ b/src/admin/common/models/join/right.php @@ -0,0 +1,12 @@ +rightJoin($str); + } +}