PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.1.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.1.0
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
103 lines 1.9 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 $inner_html = apply_filters( 'surecart/dashboard/subscription/inner_html', $inner_html, $this->tag, $this->data );
78 return "<$this->tag id='$this->id'>$inner_html</$this->tag>";
79 }
80
81 /**
82 * Forward call to method
83 *
84 * @param string $method Method to call.
85 * @param mixed $params Method params.
86 */
87 public function __call( $method, $params ) {
88 return call_user_func_array( [ $this, $method ], $params );
89 }
90
91 /**
92 * Static Facade Accessor
93 *
94 * @param string $method Method to call.
95 * @param mixed $params Method params.
96 *
97 * @return mixed
98 */
99 public static function __callStatic( $method, $params ) {
100 return call_user_func_array( [ new static(), $method ], $params );
101 }
102 }
103