PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.8.0
GiveWP – Donation Plugin and Fundraising Platform v3.8.0
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / Views / View.php
give / src / Framework / Views Last commit date
View.php 2 years ago
View.php
88 lines
1 <?php
2
3 namespace Give\Framework\Views;
4
5 use InvalidArgumentException;
6
7 /**
8 * Helper class responsible for loading views.
9 */
10 class View
11 {
12 /**
13 * Default domain
14 */
15 const DEFAULT_DOMAIN = 'FormBuilder';
16
17 /**
18 * @since 3.0.0
19 *
20 * @param array $templateParams Arguments for template.
21 * @param bool $echo
22 *
23 * @param string $view Template name
24 * When using multiple domains within this plugin, the domain directory can be set by using "." in the template name.
25 * String before the "." character is domain directory, and everything after is the template file path
26 * Example usage: View::render( 'DomainName.templateName' );
27 * This will try to load src/DomainName/resources/view/templateName.php file
28 *
29 * @return string|void
30 * @throws InvalidArgumentException if template file not exist
31 *
32 */
33 public static function load($view, $templateParams = [], $echo = false)
34 {
35 // Get domain and file path
36 list ($domain, $file) = static::getPaths($view);
37 $template = GIVE_PLUGIN_DIR . "src/{$domain}/resources/views/{$file}.php";
38
39 if ( ! file_exists($template)) {
40 throw new InvalidArgumentException("View template file {$template} does not exist");
41 }
42
43 ob_start();
44 extract($templateParams);
45 include $template;
46 $content = ob_get_clean();
47
48 if ( ! $echo) {
49 return $content;
50 }
51
52 echo $content;
53 }
54
55 /**
56 * @since 3.0.0
57 *
58 * @param array $vars
59 *
60 * @param string $view
61 */
62 public static function render($view, $vars = [])
63 {
64 static::load($view, $vars, true);
65 }
66
67 /**
68 * Get domain and template file path
69 *
70 * @since 3.0.0
71 *
72 * @param string $path
73 *
74 * @return array
75 */
76 private static function getPaths($path)
77 {
78 // Check for . delimiter
79 if (false === strpos($path, '.')) {
80 return [
81 self::DEFAULT_DOMAIN,
82 $path,
83 ];
84 }
85
86 return explode('.', $path, 2);
87 }
88 }