PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.4.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.4.1
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 All 281 releases
surecart / app / src / Models / Component.php
Component.php
102 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SureCart\Models;
4
5 class Component {
6 /**
7 * Holds the data for the component.
8 *
9 * @var array
10 */
11 protected $data = [];
12
13 /**
14 * Holds the component tag.
15 *
16 * @var string
17 */
18 protected $tag = '';
19
20 /**
21 * Holds the component id selector.
22 *
23 * @var string
24 */
25 protected $id = '';
26
27 /**
28 * Prevent php warnings.
29 */
30 final public function __construct() {}
31
32 /**
33 * Data to pass to the component.
34 *
35 * @param array $args Args to pass.
36 * @return this
37 */
38 protected function with( $args ) {
39 $this->data = apply_filters( 'surecart/components/props', array_merge( $this->data, $args ), $this->tag, $this );
40 return $this;
41 }
42
43 /**
44 * Set the tag for the component.
45 *
46 * @param string $tag Tag for the component.
47 * @return this
48 */
49 protected function tag( $tag ) {
50 $this->tag = $tag;
51 return $this;
52 }
53
54 /**
55 * Set the id for the component.
56 *
57 * @param string $id The id to set.
58 * @return this
59 */
60 protected function id( $id ) {
61 $this->id = $id;
62 return $this;
63 }
64
65 /**
66 * Render the component.
67 *
68 * @param string $inner_html Inner html for the component.
69 * @return string
70 */
71 protected function render( $inner_html = '' ) {
72 \SureCart::assets()->addComponentData(
73 $this->tag,
74 "#$this->id",
75 $this->data
76 );
77 return "<$this->tag id='$this->id'>$inner_html</$this->tag>";
78 }
79
80 /**
81 * Forward call to method
82 *
83 * @param string $method Method to call.
84 * @param mixed $params Method params.
85 */
86 public function __call( $method, $params ) {
87 return call_user_func_array( [ $this, $method ], $params );
88 }
89
90 /**
91 * Static Facade Accessor
92 *
93 * @param string $method Method to call.
94 * @param mixed $params Method params.
95 *
96 * @return mixed
97 */
98 public static function __callStatic( $method, $params ) {
99 return call_user_func_array( [ new static(), $method ], $params );
100 }
101 }
102