1 | <?php |
||
23 | abstract class View_Template extends Template { |
||
24 | /** |
||
25 | * Prefix for filter names. |
||
26 | * @var string |
||
27 | */ |
||
28 | protected $filter_prefix = 'gravityview/template/views'; |
||
29 | |||
30 | /** |
||
31 | * Directory name where custom templates for this plugin should be found in the theme. |
||
32 | * @var string |
||
33 | */ |
||
34 | protected $theme_template_directory = 'gravityview/views/'; |
||
35 | |||
36 | /** |
||
37 | * Directory name where the default templates for this plugin are found. |
||
38 | * @var string |
||
39 | */ |
||
40 | protected $plugin_template_directory = 'templates/views/'; |
||
41 | |||
42 | /** |
||
43 | * @var \GV\View The view connected to this template. |
||
44 | */ |
||
45 | public $view; |
||
46 | |||
47 | /** |
||
48 | * @var \GV\Entry_Collection The entries that need to be rendered. |
||
49 | */ |
||
50 | public $entries; |
||
51 | |||
52 | /** |
||
53 | * @var \GV\Request The request context. |
||
54 | */ |
||
55 | public $request; |
||
56 | |||
57 | /** |
||
58 | * @var string The template slug to be loaded (like "table", "list") |
||
59 | */ |
||
60 | public static $slug; |
||
61 | |||
62 | /** |
||
63 | * Initializer. |
||
64 | * |
||
65 | * @param \GV\View $view The View connected to this template. |
||
66 | * @param \GV\Entry_Collection $entries A collection of entries for this view. |
||
67 | * @param \GV\Request $request The request context. |
||
68 | */ |
||
69 | 2 | public function __construct( View $view, Entry_Collection $entries, Request $request ) { |
|
79 | |||
80 | 2 | public function __destruct() { |
|
83 | |||
84 | /** |
||
85 | * Enable granular template overrides based on current post, view, form, etc. |
||
86 | * |
||
87 | * The loading order is: |
||
88 | * |
||
89 | * - post-[ID of post or page where view is embedded]-view-[View ID]-table-footer.php |
||
90 | * - post-[ID of post or page where view is embedded]-table-footer.php |
||
91 | * - view-[View ID]-table-footer.php |
||
92 | * - form-[Form ID]-table-footer.php |
||
93 | * - table-footer.php |
||
94 | * |
||
95 | * @see Gamajo_Template_Loader::get_template_file_names() Where the filter is |
||
96 | * @param array $templates Existing list of templates. |
||
97 | * @param string $slug Name of the template base, example: `table`, `list`, `datatables`, `map` |
||
98 | * @param string $name Name of the template part, example: `body`, `footer`, `head`, `single` |
||
99 | * |
||
100 | * @return array $templates Modified template array, merged with existing $templates values |
||
101 | */ |
||
102 | 2 | public function add_id_specific_templates( $templates, $slug, $name ) { |
|
103 | |||
104 | 2 | $specifics = array(); |
|
105 | |||
106 | 2 | list( $slug_dir, $slug_name ) = self::split_slug( $slug, $name ); |
|
107 | |||
108 | 2 | global $post; |
|
109 | |||
110 | 2 | if ( ! $this->request->is_view() && $post ) { |
|
111 | $specifics []= sprintf( '%spost-%d-view-%d-%s.php', $slug_dir, $post->ID, $this->view->ID, $slug_name ); |
||
|
|||
112 | $specifics []= sprintf( '%spost-%d-%s.php', $slug_dir, $post->ID, $slug_name ); |
||
113 | } |
||
114 | |||
115 | |||
116 | 2 | $specifics []= sprintf( '%sview-%d-%s.php', $slug_dir, $this->view->ID, $slug_name ); |
|
117 | 2 | $specifics []= sprintf( '%sform-%d-%s.php', $slug_dir, $this->view->form->ID, $slug_name ); |
|
118 | |||
119 | 2 | return array_merge( $specifics, $templates ); |
|
120 | } |
||
121 | |||
122 | /** |
||
123 | * Output some HTML. |
||
124 | * |
||
125 | * @return void |
||
126 | */ |
||
127 | 2 | public function render() { |
|
152 | } |
||
153 | |||
158 |
Since your code implements the magic getter
_get
, this function will be called for any read access on an undefined variable. You can add the@property
annotation to your class or interface to document the existence of this variable.If the property has read access only, you can use the @property-read annotation instead.
Of course, you may also just have mistyped another name, in which case you should fix the error.
See also the PhpDoc documentation for @property.