PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 2.1.4
JetFormBuilder — Dynamic Blocks Form Builder v2.1.4
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / includes / db-queries / views / relation.php
jetformbuilder / includes / db-queries / views Last commit date
post-meta-view.php 3 years ago relation.php 3 years ago view-base-count-trait.php 3 years ago view-base.php 3 years ago view-custom-table-base.php 3 years ago
relation.php
69 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Db_Queries\Views;
5
6
7 class Relation {
8
9 /** @var object */
10 public $local;
11
12 /** @var object */
13 public $foreign;
14
15 public $condition = '';
16 protected $type = 'INNER';
17
18 public function type( string $type ): Relation {
19 $this->type = $type;
20
21 return $this;
22 }
23
24 public function local( View_Base $view_base, string $foreign_key ): Relation {
25 if ( ! $this->local ) {
26 $this->local = (object) array(
27 'table' => $view_base->table(),
28 'key' => $foreign_key
29 );
30 }
31
32 return $this;
33 }
34
35 public function foreign( View_Base $view_base, string $primary_key = 'id' ): Relation {
36 if ( ! $this->foreign ) {
37 $this->foreign = (object) array(
38 'table' => $view_base->table(),
39 'key' => $primary_key
40 );
41 }
42
43 return $this;
44 }
45
46 public function condition( string $condition ): Relation {
47 $this->condition = $condition;
48
49 return $this;
50 }
51
52 public function parse_condition( string $condition ): string {
53 return str_replace(
54 array( '@local', '@foreign' ),
55 array( $this->local->table, $this->foreign->table ),
56 $condition
57 );
58 }
59
60 public function get_result() {
61 $foreign = $this->foreign->table;
62
63 $left = "`{$this->local->table}`.`{$this->local->key}`";
64 $right = "`{$foreign}`.`{$this->foreign->key}`";
65
66 return "{$this->type} JOIN `{$foreign}` ON {$left} = {$right} {$this->parse_condition( $this->condition )}";
67 }
68
69 }