@@ -19,22 +19,22 @@ |
||
19 | 19 | */ |
20 | 20 | class EspressoEventEditor extends MatchAnyRouteSpecification |
21 | 21 | { |
22 | - /** |
|
23 | - * EspressoEventEditor constructor. |
|
24 | - * |
|
25 | - * @param EspressoEventEditorEdit $edit_event_route_match |
|
26 | - * @param EspressoEventEditorAddNew $create_event_route_match |
|
27 | - * @param RequestInterface $request |
|
28 | - * @throws InvalidEntityException |
|
29 | - */ |
|
30 | - public function __construct( |
|
31 | - EspressoEventEditorEdit $edit_event_route_match, |
|
32 | - EspressoEventEditorAddNew $create_event_route_match, |
|
33 | - RequestInterface $request |
|
34 | - ) { |
|
35 | - parent::__construct( |
|
36 | - array($edit_event_route_match, $create_event_route_match), |
|
37 | - $request |
|
38 | - ); |
|
39 | - } |
|
22 | + /** |
|
23 | + * EspressoEventEditor constructor. |
|
24 | + * |
|
25 | + * @param EspressoEventEditorEdit $edit_event_route_match |
|
26 | + * @param EspressoEventEditorAddNew $create_event_route_match |
|
27 | + * @param RequestInterface $request |
|
28 | + * @throws InvalidEntityException |
|
29 | + */ |
|
30 | + public function __construct( |
|
31 | + EspressoEventEditorEdit $edit_event_route_match, |
|
32 | + EspressoEventEditorAddNew $create_event_route_match, |
|
33 | + RequestInterface $request |
|
34 | + ) { |
|
35 | + parent::__construct( |
|
36 | + array($edit_event_route_match, $create_event_route_match), |
|
37 | + $request |
|
38 | + ); |
|
39 | + } |
|
40 | 40 | } |
@@ -19,22 +19,22 @@ |
||
19 | 19 | */ |
20 | 20 | class EspressoVenueEditor extends MatchAnyRouteSpecification |
21 | 21 | { |
22 | - /** |
|
23 | - * EspressoVenueEditor constructor. |
|
24 | - * |
|
25 | - * @param EspressoVenueEditorEdit $edit_venue_route_match |
|
26 | - * @param EspressoVenueEditorAddNew $create_venue_route_match |
|
27 | - * @param RequestInterface $request |
|
28 | - * @throws InvalidEntityException |
|
29 | - */ |
|
30 | - public function __construct( |
|
31 | - EspressoVenueEditorEdit $edit_venue_route_match, |
|
32 | - EspressoVenueEditorAddNew $create_venue_route_match, |
|
33 | - RequestInterface $request |
|
34 | - ) { |
|
35 | - parent::__construct( |
|
36 | - array($edit_venue_route_match, $create_venue_route_match), |
|
37 | - $request |
|
38 | - ); |
|
39 | - } |
|
22 | + /** |
|
23 | + * EspressoVenueEditor constructor. |
|
24 | + * |
|
25 | + * @param EspressoVenueEditorEdit $edit_venue_route_match |
|
26 | + * @param EspressoVenueEditorAddNew $create_venue_route_match |
|
27 | + * @param RequestInterface $request |
|
28 | + * @throws InvalidEntityException |
|
29 | + */ |
|
30 | + public function __construct( |
|
31 | + EspressoVenueEditorEdit $edit_venue_route_match, |
|
32 | + EspressoVenueEditorAddNew $create_venue_route_match, |
|
33 | + RequestInterface $request |
|
34 | + ) { |
|
35 | + parent::__construct( |
|
36 | + array($edit_venue_route_match, $create_venue_route_match), |
|
37 | + $request |
|
38 | + ); |
|
39 | + } |
|
40 | 40 | } |
@@ -18,22 +18,22 @@ |
||
18 | 18 | */ |
19 | 19 | class EspressoPostTypeEditor extends MatchAnyRouteSpecification |
20 | 20 | { |
21 | - /** |
|
22 | - * EspressoEventEditor constructor. |
|
23 | - * |
|
24 | - * @param EspressoStandardPostTypeEditor $standard_route_match |
|
25 | - * @param EspressoAttendeePostTypeEditor $attendee_route_match |
|
26 | - * @param RequestInterface $request |
|
27 | - * @throws InvalidEntityException |
|
28 | - */ |
|
29 | - public function __construct( |
|
30 | - EspressoStandardPostTypeEditor $standard_route_match, |
|
31 | - EspressoAttendeePostTypeEditor $attendee_route_match, |
|
32 | - RequestInterface $request |
|
33 | - ) { |
|
34 | - parent::__construct( |
|
35 | - array($standard_route_match, $attendee_route_match), |
|
36 | - $request |
|
37 | - ); |
|
38 | - } |
|
21 | + /** |
|
22 | + * EspressoEventEditor constructor. |
|
23 | + * |
|
24 | + * @param EspressoStandardPostTypeEditor $standard_route_match |
|
25 | + * @param EspressoAttendeePostTypeEditor $attendee_route_match |
|
26 | + * @param RequestInterface $request |
|
27 | + * @throws InvalidEntityException |
|
28 | + */ |
|
29 | + public function __construct( |
|
30 | + EspressoStandardPostTypeEditor $standard_route_match, |
|
31 | + EspressoAttendeePostTypeEditor $attendee_route_match, |
|
32 | + RequestInterface $request |
|
33 | + ) { |
|
34 | + parent::__construct( |
|
35 | + array($standard_route_match, $attendee_route_match), |
|
36 | + $request |
|
37 | + ); |
|
38 | + } |
|
39 | 39 | } |
@@ -18,22 +18,22 @@ |
||
18 | 18 | */ |
19 | 19 | class WordPressPageEditor extends MatchAnyRouteSpecification |
20 | 20 | { |
21 | - /** |
|
22 | - * WordPressPostsEditor constructor. |
|
23 | - * |
|
24 | - * @param WordPressPostsEditorEdit $edit_page_route_match |
|
25 | - * @param WordPressPostsEditorAddNew $create_page_route_match |
|
26 | - * @param RequestInterface $request |
|
27 | - * @throws \EventEspresso\core\exceptions\InvalidEntityException |
|
28 | - */ |
|
29 | - public function __construct( |
|
30 | - WordPressPageEditorEdit $edit_page_route_match, |
|
31 | - WordPressPageEditorAddNew $create_page_route_match, |
|
32 | - RequestInterface $request |
|
33 | - ) { |
|
34 | - parent::__construct( |
|
35 | - array($edit_page_route_match, $create_page_route_match), |
|
36 | - $request |
|
37 | - ); |
|
38 | - } |
|
21 | + /** |
|
22 | + * WordPressPostsEditor constructor. |
|
23 | + * |
|
24 | + * @param WordPressPostsEditorEdit $edit_page_route_match |
|
25 | + * @param WordPressPostsEditorAddNew $create_page_route_match |
|
26 | + * @param RequestInterface $request |
|
27 | + * @throws \EventEspresso\core\exceptions\InvalidEntityException |
|
28 | + */ |
|
29 | + public function __construct( |
|
30 | + WordPressPageEditorEdit $edit_page_route_match, |
|
31 | + WordPressPageEditorAddNew $create_page_route_match, |
|
32 | + RequestInterface $request |
|
33 | + ) { |
|
34 | + parent::__construct( |
|
35 | + array($edit_page_route_match, $create_page_route_match), |
|
36 | + $request |
|
37 | + ); |
|
38 | + } |
|
39 | 39 | } |
@@ -76,22 +76,22 @@ discard block |
||
76 | 76 | public function getModelSchemaForFields(array $model_fields, array $schema) |
77 | 77 | { |
78 | 78 | foreach ($model_fields as $field => $model_field) { |
79 | - if (! $model_field instanceof EE_Model_Field_Base) { |
|
79 | + if ( ! $model_field instanceof EE_Model_Field_Base) { |
|
80 | 80 | continue; |
81 | 81 | } |
82 | - $schema['properties'][ $field ] = $model_field->getSchema(); |
|
82 | + $schema['properties'][$field] = $model_field->getSchema(); |
|
83 | 83 | |
84 | 84 | // if this is a primary key field add the primary key item |
85 | 85 | if ($model_field instanceof EE_Primary_Key_Field_Base) { |
86 | - $schema['properties'][ $field ]['primary_key'] = true; |
|
86 | + $schema['properties'][$field]['primary_key'] = true; |
|
87 | 87 | if ($model_field instanceof EE_Primary_Key_Int_Field) { |
88 | - $schema['properties'][ $field ]['readonly'] = true; |
|
88 | + $schema['properties'][$field]['readonly'] = true; |
|
89 | 89 | } |
90 | 90 | } |
91 | 91 | |
92 | 92 | // if this is a foreign key field add the foreign key item |
93 | 93 | if ($model_field instanceof EE_Foreign_Key_Field_Base) { |
94 | - $schema['properties'][ $field ]['foreign_key'] = array( |
|
94 | + $schema['properties'][$field]['foreign_key'] = array( |
|
95 | 95 | 'description' => esc_html__( |
96 | 96 | 'This is a foreign key the points to the given models.', |
97 | 97 | 'event_espresso' |
@@ -115,18 +115,18 @@ discard block |
||
115 | 115 | public function getModelSchemaForRelations(array $relations_on_model, array $schema) |
116 | 116 | { |
117 | 117 | foreach ($relations_on_model as $model_name => $relation) { |
118 | - if (! $relation instanceof EE_Model_Relation_Base) { |
|
118 | + if ( ! $relation instanceof EE_Model_Relation_Base) { |
|
119 | 119 | continue; |
120 | 120 | } |
121 | 121 | $model_name_for_schema = $relation instanceof EE_Belongs_To_Relation |
122 | 122 | ? strtolower($model_name) |
123 | 123 | : EEH_Inflector::pluralize_and_lower($model_name); |
124 | - $schema['properties'][ $model_name_for_schema ] = $relation->getSchema(); |
|
125 | - $schema['properties'][ $model_name_for_schema ]['relation_model'] = $model_name; |
|
124 | + $schema['properties'][$model_name_for_schema] = $relation->getSchema(); |
|
125 | + $schema['properties'][$model_name_for_schema]['relation_model'] = $model_name; |
|
126 | 126 | |
127 | 127 | // links schema |
128 | - $links_key = 'https://api.eventespresso.com/' . strtolower($model_name); |
|
129 | - $schema['properties']['_links']['properties'][ $links_key ] = array( |
|
128 | + $links_key = 'https://api.eventespresso.com/'.strtolower($model_name); |
|
129 | + $schema['properties']['_links']['properties'][$links_key] = array( |
|
130 | 130 | 'description' => esc_html__( |
131 | 131 | 'Array of objects describing the link(s) for this relation resource.', |
132 | 132 | 'event_espresso' |
@@ -24,255 +24,255 @@ |
||
24 | 24 | */ |
25 | 25 | class JsonModelSchema |
26 | 26 | { |
27 | - /** |
|
28 | - * @var EEM_Base |
|
29 | - */ |
|
30 | - protected $model; |
|
27 | + /** |
|
28 | + * @var EEM_Base |
|
29 | + */ |
|
30 | + protected $model; |
|
31 | 31 | |
32 | - /** |
|
33 | - * @var CalculatedModelFields |
|
34 | - */ |
|
35 | - protected $fields_calculator; |
|
32 | + /** |
|
33 | + * @var CalculatedModelFields |
|
34 | + */ |
|
35 | + protected $fields_calculator; |
|
36 | 36 | |
37 | 37 | |
38 | - /** |
|
39 | - * JsonModelSchema constructor. |
|
40 | - * |
|
41 | - * @param EEM_Base $model |
|
42 | - * @param CalculatedModelFields $fields_calculator |
|
43 | - */ |
|
44 | - public function __construct(EEM_Base $model, CalculatedModelFields $fields_calculator) |
|
45 | - { |
|
46 | - $this->model = $model; |
|
47 | - $this->fields_calculator = $fields_calculator; |
|
48 | - } |
|
38 | + /** |
|
39 | + * JsonModelSchema constructor. |
|
40 | + * |
|
41 | + * @param EEM_Base $model |
|
42 | + * @param CalculatedModelFields $fields_calculator |
|
43 | + */ |
|
44 | + public function __construct(EEM_Base $model, CalculatedModelFields $fields_calculator) |
|
45 | + { |
|
46 | + $this->model = $model; |
|
47 | + $this->fields_calculator = $fields_calculator; |
|
48 | + } |
|
49 | 49 | |
50 | 50 | |
51 | - /** |
|
52 | - * Return the schema for a given model from a given model. |
|
53 | - * |
|
54 | - * @return array |
|
55 | - */ |
|
56 | - public function getModelSchema() |
|
57 | - { |
|
58 | - return $this->getModelSchemaForRelations( |
|
59 | - $this->model->relation_settings(), |
|
60 | - $this->getModelSchemaForFields( |
|
61 | - $this->model->field_settings(), |
|
62 | - $this->getInitialSchemaStructure() |
|
63 | - ) |
|
64 | - ); |
|
65 | - } |
|
51 | + /** |
|
52 | + * Return the schema for a given model from a given model. |
|
53 | + * |
|
54 | + * @return array |
|
55 | + */ |
|
56 | + public function getModelSchema() |
|
57 | + { |
|
58 | + return $this->getModelSchemaForRelations( |
|
59 | + $this->model->relation_settings(), |
|
60 | + $this->getModelSchemaForFields( |
|
61 | + $this->model->field_settings(), |
|
62 | + $this->getInitialSchemaStructure() |
|
63 | + ) |
|
64 | + ); |
|
65 | + } |
|
66 | 66 | |
67 | 67 | |
68 | - /** |
|
69 | - * Get the schema for a given set of model fields. |
|
70 | - * |
|
71 | - * @param EE_Model_Field_Base[] $model_fields |
|
72 | - * @param array $schema |
|
73 | - * @return array |
|
74 | - */ |
|
75 | - public function getModelSchemaForFields(array $model_fields, array $schema) |
|
76 | - { |
|
77 | - foreach ($model_fields as $field => $model_field) { |
|
78 | - if (! $model_field instanceof EE_Model_Field_Base) { |
|
79 | - continue; |
|
80 | - } |
|
81 | - $schema['properties'][ $field ] = $model_field->getSchema(); |
|
68 | + /** |
|
69 | + * Get the schema for a given set of model fields. |
|
70 | + * |
|
71 | + * @param EE_Model_Field_Base[] $model_fields |
|
72 | + * @param array $schema |
|
73 | + * @return array |
|
74 | + */ |
|
75 | + public function getModelSchemaForFields(array $model_fields, array $schema) |
|
76 | + { |
|
77 | + foreach ($model_fields as $field => $model_field) { |
|
78 | + if (! $model_field instanceof EE_Model_Field_Base) { |
|
79 | + continue; |
|
80 | + } |
|
81 | + $schema['properties'][ $field ] = $model_field->getSchema(); |
|
82 | 82 | |
83 | - // if this is a primary key field add the primary key item |
|
84 | - if ($model_field instanceof EE_Primary_Key_Field_Base) { |
|
85 | - $schema['properties'][ $field ]['primary_key'] = true; |
|
86 | - if ($model_field instanceof EE_Primary_Key_Int_Field) { |
|
87 | - $schema['properties'][ $field ]['readonly'] = true; |
|
88 | - } |
|
89 | - } |
|
83 | + // if this is a primary key field add the primary key item |
|
84 | + if ($model_field instanceof EE_Primary_Key_Field_Base) { |
|
85 | + $schema['properties'][ $field ]['primary_key'] = true; |
|
86 | + if ($model_field instanceof EE_Primary_Key_Int_Field) { |
|
87 | + $schema['properties'][ $field ]['readonly'] = true; |
|
88 | + } |
|
89 | + } |
|
90 | 90 | |
91 | - // if this is a foreign key field add the foreign key item |
|
92 | - if ($model_field instanceof EE_Foreign_Key_Field_Base) { |
|
93 | - $schema['properties'][ $field ]['foreign_key'] = array( |
|
94 | - 'description' => esc_html__( |
|
95 | - 'This is a foreign key the points to the given models.', |
|
96 | - 'event_espresso' |
|
97 | - ), |
|
98 | - 'type' => 'array', |
|
99 | - 'enum' => $model_field->get_model_class_names_pointed_to(), |
|
100 | - ); |
|
101 | - } |
|
102 | - } |
|
103 | - return $schema; |
|
104 | - } |
|
91 | + // if this is a foreign key field add the foreign key item |
|
92 | + if ($model_field instanceof EE_Foreign_Key_Field_Base) { |
|
93 | + $schema['properties'][ $field ]['foreign_key'] = array( |
|
94 | + 'description' => esc_html__( |
|
95 | + 'This is a foreign key the points to the given models.', |
|
96 | + 'event_espresso' |
|
97 | + ), |
|
98 | + 'type' => 'array', |
|
99 | + 'enum' => $model_field->get_model_class_names_pointed_to(), |
|
100 | + ); |
|
101 | + } |
|
102 | + } |
|
103 | + return $schema; |
|
104 | + } |
|
105 | 105 | |
106 | 106 | |
107 | - /** |
|
108 | - * Get the schema for a given set of model relations |
|
109 | - * |
|
110 | - * @param EE_Model_Relation_Base[] $relations_on_model |
|
111 | - * @param array $schema |
|
112 | - * @return array |
|
113 | - */ |
|
114 | - public function getModelSchemaForRelations(array $relations_on_model, array $schema) |
|
115 | - { |
|
116 | - foreach ($relations_on_model as $model_name => $relation) { |
|
117 | - if (! $relation instanceof EE_Model_Relation_Base) { |
|
118 | - continue; |
|
119 | - } |
|
120 | - $model_name_for_schema = $relation instanceof EE_Belongs_To_Relation |
|
121 | - ? strtolower($model_name) |
|
122 | - : EEH_Inflector::pluralize_and_lower($model_name); |
|
123 | - $schema['properties'][ $model_name_for_schema ] = $relation->getSchema(); |
|
124 | - $schema['properties'][ $model_name_for_schema ]['relation_model'] = $model_name; |
|
107 | + /** |
|
108 | + * Get the schema for a given set of model relations |
|
109 | + * |
|
110 | + * @param EE_Model_Relation_Base[] $relations_on_model |
|
111 | + * @param array $schema |
|
112 | + * @return array |
|
113 | + */ |
|
114 | + public function getModelSchemaForRelations(array $relations_on_model, array $schema) |
|
115 | + { |
|
116 | + foreach ($relations_on_model as $model_name => $relation) { |
|
117 | + if (! $relation instanceof EE_Model_Relation_Base) { |
|
118 | + continue; |
|
119 | + } |
|
120 | + $model_name_for_schema = $relation instanceof EE_Belongs_To_Relation |
|
121 | + ? strtolower($model_name) |
|
122 | + : EEH_Inflector::pluralize_and_lower($model_name); |
|
123 | + $schema['properties'][ $model_name_for_schema ] = $relation->getSchema(); |
|
124 | + $schema['properties'][ $model_name_for_schema ]['relation_model'] = $model_name; |
|
125 | 125 | |
126 | - // links schema |
|
127 | - $links_key = 'https://api.eventespresso.com/' . strtolower($model_name); |
|
128 | - $schema['properties']['_links']['properties'][ $links_key ] = array( |
|
129 | - 'description' => esc_html__( |
|
130 | - 'Array of objects describing the link(s) for this relation resource.', |
|
131 | - 'event_espresso' |
|
132 | - ), |
|
133 | - 'type' => 'array', |
|
134 | - 'readonly' => true, |
|
135 | - 'items' => array( |
|
136 | - 'type' => 'object', |
|
137 | - 'properties' => array( |
|
138 | - 'href' => array( |
|
139 | - 'type' => 'string', |
|
140 | - 'description' => sprintf( |
|
141 | - // translators: placeholder is the model name for the relation. |
|
142 | - esc_html__( |
|
143 | - 'The link to the resource for the %s relation(s) to this entity', |
|
144 | - 'event_espresso' |
|
145 | - ), |
|
146 | - $model_name |
|
147 | - ), |
|
148 | - ), |
|
149 | - 'single' => array( |
|
150 | - 'type' => 'boolean', |
|
151 | - 'description' => sprintf( |
|
152 | - // translators: placeholder is the model name for the relation. |
|
153 | - esc_html__( |
|
154 | - 'Whether or not there is only a single %s relation to this entity', |
|
155 | - 'event_espresso' |
|
156 | - ), |
|
157 | - $model_name |
|
158 | - ), |
|
159 | - ), |
|
160 | - ), |
|
161 | - 'additionalProperties' => false |
|
162 | - ), |
|
163 | - ); |
|
164 | - } |
|
165 | - return $schema; |
|
166 | - } |
|
126 | + // links schema |
|
127 | + $links_key = 'https://api.eventespresso.com/' . strtolower($model_name); |
|
128 | + $schema['properties']['_links']['properties'][ $links_key ] = array( |
|
129 | + 'description' => esc_html__( |
|
130 | + 'Array of objects describing the link(s) for this relation resource.', |
|
131 | + 'event_espresso' |
|
132 | + ), |
|
133 | + 'type' => 'array', |
|
134 | + 'readonly' => true, |
|
135 | + 'items' => array( |
|
136 | + 'type' => 'object', |
|
137 | + 'properties' => array( |
|
138 | + 'href' => array( |
|
139 | + 'type' => 'string', |
|
140 | + 'description' => sprintf( |
|
141 | + // translators: placeholder is the model name for the relation. |
|
142 | + esc_html__( |
|
143 | + 'The link to the resource for the %s relation(s) to this entity', |
|
144 | + 'event_espresso' |
|
145 | + ), |
|
146 | + $model_name |
|
147 | + ), |
|
148 | + ), |
|
149 | + 'single' => array( |
|
150 | + 'type' => 'boolean', |
|
151 | + 'description' => sprintf( |
|
152 | + // translators: placeholder is the model name for the relation. |
|
153 | + esc_html__( |
|
154 | + 'Whether or not there is only a single %s relation to this entity', |
|
155 | + 'event_espresso' |
|
156 | + ), |
|
157 | + $model_name |
|
158 | + ), |
|
159 | + ), |
|
160 | + ), |
|
161 | + 'additionalProperties' => false |
|
162 | + ), |
|
163 | + ); |
|
164 | + } |
|
165 | + return $schema; |
|
166 | + } |
|
167 | 167 | |
168 | 168 | |
169 | - /** |
|
170 | - * Outputs the schema header for a model. |
|
171 | - * |
|
172 | - * @return array |
|
173 | - */ |
|
174 | - public function getInitialSchemaStructure() |
|
175 | - { |
|
176 | - return array( |
|
177 | - '$schema' => 'http://json-schema.org/draft-04/schema#', |
|
178 | - 'title' => $this->model->get_this_model_name(), |
|
179 | - 'type' => 'object', |
|
180 | - 'properties' => array( |
|
181 | - 'link' => array( |
|
182 | - 'description' => esc_html__( |
|
183 | - 'Link to event on WordPress site hosting events.', |
|
184 | - 'event_espresso' |
|
185 | - ), |
|
186 | - 'type' => 'string', |
|
187 | - 'readonly' => true, |
|
188 | - ), |
|
189 | - '_links' => array( |
|
190 | - 'description' => esc_html__( |
|
191 | - 'Various links for resources related to the entity.', |
|
192 | - 'event_espresso' |
|
193 | - ), |
|
194 | - 'type' => 'object', |
|
195 | - 'readonly' => true, |
|
196 | - 'properties' => array( |
|
197 | - 'self' => array( |
|
198 | - 'description' => esc_html__( |
|
199 | - 'Link to this entities resource.', |
|
200 | - 'event_espresso' |
|
201 | - ), |
|
202 | - 'type' => 'array', |
|
203 | - 'items' => array( |
|
204 | - 'type' => 'object', |
|
205 | - 'properties' => array( |
|
206 | - 'href' => array( |
|
207 | - 'type' => 'string', |
|
208 | - ), |
|
209 | - ), |
|
210 | - 'additionalProperties' => false |
|
211 | - ), |
|
212 | - 'readonly' => true |
|
213 | - ), |
|
214 | - 'collection' => array( |
|
215 | - 'description' => esc_html__( |
|
216 | - 'Link to this entities collection resource.', |
|
217 | - 'event_espresso' |
|
218 | - ), |
|
219 | - 'type' => 'array', |
|
220 | - 'items' => array( |
|
221 | - 'type' => 'object', |
|
222 | - 'properties' => array( |
|
223 | - 'href' => array( |
|
224 | - 'type' => 'string' |
|
225 | - ), |
|
226 | - ), |
|
227 | - 'additionalProperties' => false |
|
228 | - ), |
|
229 | - 'readonly' => true |
|
230 | - ), |
|
231 | - ), |
|
232 | - 'additionalProperties' => false, |
|
233 | - ), |
|
234 | - '_calculated_fields' => array_merge( |
|
235 | - $this->fields_calculator->getJsonSchemaForModel($this->model), |
|
236 | - array( |
|
237 | - '_protected' => $this->getProtectedFieldsSchema() |
|
238 | - ) |
|
239 | - ), |
|
240 | - '_protected' => $this->getProtectedFieldsSchema() |
|
241 | - ), |
|
242 | - 'additionalProperties' => false, |
|
243 | - ); |
|
244 | - } |
|
169 | + /** |
|
170 | + * Outputs the schema header for a model. |
|
171 | + * |
|
172 | + * @return array |
|
173 | + */ |
|
174 | + public function getInitialSchemaStructure() |
|
175 | + { |
|
176 | + return array( |
|
177 | + '$schema' => 'http://json-schema.org/draft-04/schema#', |
|
178 | + 'title' => $this->model->get_this_model_name(), |
|
179 | + 'type' => 'object', |
|
180 | + 'properties' => array( |
|
181 | + 'link' => array( |
|
182 | + 'description' => esc_html__( |
|
183 | + 'Link to event on WordPress site hosting events.', |
|
184 | + 'event_espresso' |
|
185 | + ), |
|
186 | + 'type' => 'string', |
|
187 | + 'readonly' => true, |
|
188 | + ), |
|
189 | + '_links' => array( |
|
190 | + 'description' => esc_html__( |
|
191 | + 'Various links for resources related to the entity.', |
|
192 | + 'event_espresso' |
|
193 | + ), |
|
194 | + 'type' => 'object', |
|
195 | + 'readonly' => true, |
|
196 | + 'properties' => array( |
|
197 | + 'self' => array( |
|
198 | + 'description' => esc_html__( |
|
199 | + 'Link to this entities resource.', |
|
200 | + 'event_espresso' |
|
201 | + ), |
|
202 | + 'type' => 'array', |
|
203 | + 'items' => array( |
|
204 | + 'type' => 'object', |
|
205 | + 'properties' => array( |
|
206 | + 'href' => array( |
|
207 | + 'type' => 'string', |
|
208 | + ), |
|
209 | + ), |
|
210 | + 'additionalProperties' => false |
|
211 | + ), |
|
212 | + 'readonly' => true |
|
213 | + ), |
|
214 | + 'collection' => array( |
|
215 | + 'description' => esc_html__( |
|
216 | + 'Link to this entities collection resource.', |
|
217 | + 'event_espresso' |
|
218 | + ), |
|
219 | + 'type' => 'array', |
|
220 | + 'items' => array( |
|
221 | + 'type' => 'object', |
|
222 | + 'properties' => array( |
|
223 | + 'href' => array( |
|
224 | + 'type' => 'string' |
|
225 | + ), |
|
226 | + ), |
|
227 | + 'additionalProperties' => false |
|
228 | + ), |
|
229 | + 'readonly' => true |
|
230 | + ), |
|
231 | + ), |
|
232 | + 'additionalProperties' => false, |
|
233 | + ), |
|
234 | + '_calculated_fields' => array_merge( |
|
235 | + $this->fields_calculator->getJsonSchemaForModel($this->model), |
|
236 | + array( |
|
237 | + '_protected' => $this->getProtectedFieldsSchema() |
|
238 | + ) |
|
239 | + ), |
|
240 | + '_protected' => $this->getProtectedFieldsSchema() |
|
241 | + ), |
|
242 | + 'additionalProperties' => false, |
|
243 | + ); |
|
244 | + } |
|
245 | 245 | |
246 | - /** |
|
247 | - * Returns an array of JSON schema to describe the _protected property on responses |
|
248 | - * @since 4.9.74.p |
|
249 | - * @return array |
|
250 | - */ |
|
251 | - protected function getProtectedFieldsSchema() |
|
252 | - { |
|
253 | - return array( |
|
254 | - 'description' => esc_html__('Array of property names whose values were replaced with their default (because they are related to a password-protected entity.)', 'event_espresso'), |
|
255 | - 'type' => 'array', |
|
256 | - 'items' => array( |
|
257 | - 'description' => esc_html__('Each name corresponds to a property that is protected by password for this entity and has its default value returned in the response.', 'event_espresso'), |
|
258 | - 'type' => 'string', |
|
259 | - 'readonly' => true, |
|
260 | - ), |
|
261 | - 'readonly' => true |
|
262 | - ); |
|
263 | - } |
|
246 | + /** |
|
247 | + * Returns an array of JSON schema to describe the _protected property on responses |
|
248 | + * @since 4.9.74.p |
|
249 | + * @return array |
|
250 | + */ |
|
251 | + protected function getProtectedFieldsSchema() |
|
252 | + { |
|
253 | + return array( |
|
254 | + 'description' => esc_html__('Array of property names whose values were replaced with their default (because they are related to a password-protected entity.)', 'event_espresso'), |
|
255 | + 'type' => 'array', |
|
256 | + 'items' => array( |
|
257 | + 'description' => esc_html__('Each name corresponds to a property that is protected by password for this entity and has its default value returned in the response.', 'event_espresso'), |
|
258 | + 'type' => 'string', |
|
259 | + 'readonly' => true, |
|
260 | + ), |
|
261 | + 'readonly' => true |
|
262 | + ); |
|
263 | + } |
|
264 | 264 | |
265 | 265 | |
266 | - /** |
|
267 | - * Allows one to just use the object as a string to get the json. |
|
268 | - * eg. |
|
269 | - * $json_schema = new JsonModelSchema(EEM_Event::instance(), new CalculatedModelFields); |
|
270 | - * // if echoed, would convert schema to a json formatted string. |
|
271 | - * |
|
272 | - * @return bool|false|mixed|string |
|
273 | - */ |
|
274 | - public function __toString() |
|
275 | - { |
|
276 | - return wp_json_encode($this->getModelSchema()); |
|
277 | - } |
|
266 | + /** |
|
267 | + * Allows one to just use the object as a string to get the json. |
|
268 | + * eg. |
|
269 | + * $json_schema = new JsonModelSchema(EEM_Event::instance(), new CalculatedModelFields); |
|
270 | + * // if echoed, would convert schema to a json formatted string. |
|
271 | + * |
|
272 | + * @return bool|false|mixed|string |
|
273 | + */ |
|
274 | + public function __toString() |
|
275 | + { |
|
276 | + return wp_json_encode($this->getModelSchema()); |
|
277 | + } |
|
278 | 278 | } |
@@ -40,7 +40,7 @@ discard block |
||
40 | 40 | */ |
41 | 41 | public function createFromModel($model_name) |
42 | 42 | { |
43 | - return $this->createFromClassname('EventEspresso\core\libraries\rest_api\calculations\\' . $model_name); |
|
43 | + return $this->createFromClassname('EventEspresso\core\libraries\rest_api\calculations\\'.$model_name); |
|
44 | 44 | } |
45 | 45 | |
46 | 46 | /** |
@@ -51,7 +51,7 @@ discard block |
||
51 | 51 | public function createFromClassname($calculator_classname) |
52 | 52 | { |
53 | 53 | $calculator = $this->loader->getShared($calculator_classname); |
54 | - if (!$calculator instanceof Base) { |
|
54 | + if ( ! $calculator instanceof Base) { |
|
55 | 55 | throw new UnexpectedEntityException( |
56 | 56 | $calculator_classname, |
57 | 57 | 'EventEspresso\core\libraries\rest_api\calculations\Base' |
@@ -18,46 +18,46 @@ |
||
18 | 18 | */ |
19 | 19 | class CalculatedModelFieldsFactory |
20 | 20 | { |
21 | - private $loader; |
|
21 | + private $loader; |
|
22 | 22 | |
23 | - /** |
|
24 | - * CalculatedModelFieldsFactory constructor. |
|
25 | - * @param LoaderInterface $loader |
|
26 | - */ |
|
27 | - public function __construct(LoaderInterface $loader) |
|
28 | - { |
|
29 | - $this->loader = $loader; |
|
30 | - } |
|
23 | + /** |
|
24 | + * CalculatedModelFieldsFactory constructor. |
|
25 | + * @param LoaderInterface $loader |
|
26 | + */ |
|
27 | + public function __construct(LoaderInterface $loader) |
|
28 | + { |
|
29 | + $this->loader = $loader; |
|
30 | + } |
|
31 | 31 | |
32 | - /** |
|
33 | - * Creates the calculator class that corresponds to that particular model |
|
34 | - * @since 4.9.68.p |
|
35 | - * @param string $model_name |
|
36 | - * @return Base |
|
37 | - * @throws UnexpectedEntityException |
|
38 | - */ |
|
39 | - public function createFromModel($model_name) |
|
40 | - { |
|
41 | - return $this->createFromClassname('EventEspresso\core\libraries\rest_api\calculations\\' . $model_name); |
|
42 | - } |
|
32 | + /** |
|
33 | + * Creates the calculator class that corresponds to that particular model |
|
34 | + * @since 4.9.68.p |
|
35 | + * @param string $model_name |
|
36 | + * @return Base |
|
37 | + * @throws UnexpectedEntityException |
|
38 | + */ |
|
39 | + public function createFromModel($model_name) |
|
40 | + { |
|
41 | + return $this->createFromClassname('EventEspresso\core\libraries\rest_api\calculations\\' . $model_name); |
|
42 | + } |
|
43 | 43 | |
44 | - /** |
|
45 | - * Creates the calculator class that corresponds to that classname and verifies it's of the correct type |
|
46 | - * @param string $calculator_classname |
|
47 | - * @return Base |
|
48 | - * @throws UnexpectedEntityException |
|
49 | - */ |
|
50 | - public function createFromClassname($calculator_classname) |
|
51 | - { |
|
52 | - $calculator = $this->loader->getShared($calculator_classname); |
|
53 | - if (!$calculator instanceof Base) { |
|
54 | - throw new UnexpectedEntityException( |
|
55 | - $calculator_classname, |
|
56 | - 'EventEspresso\core\libraries\rest_api\calculations\Base' |
|
57 | - ); |
|
58 | - } |
|
59 | - return $calculator; |
|
60 | - } |
|
44 | + /** |
|
45 | + * Creates the calculator class that corresponds to that classname and verifies it's of the correct type |
|
46 | + * @param string $calculator_classname |
|
47 | + * @return Base |
|
48 | + * @throws UnexpectedEntityException |
|
49 | + */ |
|
50 | + public function createFromClassname($calculator_classname) |
|
51 | + { |
|
52 | + $calculator = $this->loader->getShared($calculator_classname); |
|
53 | + if (!$calculator instanceof Base) { |
|
54 | + throw new UnexpectedEntityException( |
|
55 | + $calculator_classname, |
|
56 | + 'EventEspresso\core\libraries\rest_api\calculations\Base' |
|
57 | + ); |
|
58 | + } |
|
59 | + return $calculator; |
|
60 | + } |
|
61 | 61 | } |
62 | 62 | // End of file CalculationsFactory.php |
63 | 63 | // Location: EventEspresso\core\libraries\rest_api\calculations/CalculationsFactory.php |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | */ |
24 | 24 | protected function verifyCurrentUserCan($required_permission, $attempted_calculation) |
25 | 25 | { |
26 | - if (! current_user_can($required_permission)) { |
|
26 | + if ( ! current_user_can($required_permission)) { |
|
27 | 27 | throw new RestException( |
28 | 28 | 'permission_denied', |
29 | 29 | sprintf( |
@@ -75,6 +75,6 @@ discard block |
||
75 | 75 | public function schemaForCalculation($calculation_index) |
76 | 76 | { |
77 | 77 | $schema_map = $this->schemaForCalculations(); |
78 | - return isset($schema_map[ $calculation_index ]) ? $schema_map[ $calculation_index ] : array(); |
|
78 | + return isset($schema_map[$calculation_index]) ? $schema_map[$calculation_index] : array(); |
|
79 | 79 | } |
80 | 80 | } |
@@ -15,65 +15,65 @@ |
||
15 | 15 | */ |
16 | 16 | class Base |
17 | 17 | { |
18 | - /** |
|
19 | - * @param $required_permission |
|
20 | - * @param $attempted_calculation |
|
21 | - * @throws RestException |
|
22 | - */ |
|
23 | - protected function verifyCurrentUserCan($required_permission, $attempted_calculation) |
|
24 | - { |
|
25 | - if (! current_user_can($required_permission)) { |
|
26 | - throw new RestException( |
|
27 | - 'permission_denied', |
|
28 | - sprintf( |
|
29 | - esc_html__( |
|
30 | - // @codingStandardsIgnoreStart |
|
31 | - 'Permission denied, you cannot calculate %1$s on %2$s because you do not have the capability "%3$s"', |
|
32 | - // @codingStandardsIgnoreEnd |
|
33 | - 'event_espresso' |
|
34 | - ), |
|
35 | - $attempted_calculation, |
|
36 | - EEH_Inflector::pluralize_and_lower($this->getResourceName()), |
|
37 | - $required_permission |
|
38 | - ) |
|
39 | - ); |
|
40 | - } |
|
41 | - } |
|
18 | + /** |
|
19 | + * @param $required_permission |
|
20 | + * @param $attempted_calculation |
|
21 | + * @throws RestException |
|
22 | + */ |
|
23 | + protected function verifyCurrentUserCan($required_permission, $attempted_calculation) |
|
24 | + { |
|
25 | + if (! current_user_can($required_permission)) { |
|
26 | + throw new RestException( |
|
27 | + 'permission_denied', |
|
28 | + sprintf( |
|
29 | + esc_html__( |
|
30 | + // @codingStandardsIgnoreStart |
|
31 | + 'Permission denied, you cannot calculate %1$s on %2$s because you do not have the capability "%3$s"', |
|
32 | + // @codingStandardsIgnoreEnd |
|
33 | + 'event_espresso' |
|
34 | + ), |
|
35 | + $attempted_calculation, |
|
36 | + EEH_Inflector::pluralize_and_lower($this->getResourceName()), |
|
37 | + $required_permission |
|
38 | + ) |
|
39 | + ); |
|
40 | + } |
|
41 | + } |
|
42 | 42 | |
43 | 43 | |
44 | - /** |
|
45 | - * Gets the name of the resource of the called class |
|
46 | - * |
|
47 | - * @return string |
|
48 | - */ |
|
49 | - public function getResourceName() |
|
50 | - { |
|
51 | - return substr(__CLASS__, strrpos(__CLASS__, '\\') + 1); |
|
52 | - } |
|
44 | + /** |
|
45 | + * Gets the name of the resource of the called class |
|
46 | + * |
|
47 | + * @return string |
|
48 | + */ |
|
49 | + public function getResourceName() |
|
50 | + { |
|
51 | + return substr(__CLASS__, strrpos(__CLASS__, '\\') + 1); |
|
52 | + } |
|
53 | 53 | |
54 | - /** |
|
55 | - * Returns an array to be used for the schema for the calculated fields. |
|
56 | - * @since 4.9.68.p |
|
57 | - * @return array keys are calculated field names (eg "optimum_sales_at_start") values are arrays { |
|
58 | - * @type string $description |
|
59 | - * @type string $type, eg "string", "int", "boolean", "object", "array", etc |
|
60 | - * } |
|
61 | - */ |
|
62 | - public function schemaForCalculations() |
|
63 | - { |
|
64 | - return array(); |
|
65 | - } |
|
54 | + /** |
|
55 | + * Returns an array to be used for the schema for the calculated fields. |
|
56 | + * @since 4.9.68.p |
|
57 | + * @return array keys are calculated field names (eg "optimum_sales_at_start") values are arrays { |
|
58 | + * @type string $description |
|
59 | + * @type string $type, eg "string", "int", "boolean", "object", "array", etc |
|
60 | + * } |
|
61 | + */ |
|
62 | + public function schemaForCalculations() |
|
63 | + { |
|
64 | + return array(); |
|
65 | + } |
|
66 | 66 | |
67 | - /** |
|
68 | - * Returns the json schema for the given calculation index. |
|
69 | - * |
|
70 | - * @since 4.9.68.p |
|
71 | - * @param $calculation_index |
|
72 | - * @return array |
|
73 | - */ |
|
74 | - public function schemaForCalculation($calculation_index) |
|
75 | - { |
|
76 | - $schema_map = $this->schemaForCalculations(); |
|
77 | - return isset($schema_map[ $calculation_index ]) ? $schema_map[ $calculation_index ] : array(); |
|
78 | - } |
|
67 | + /** |
|
68 | + * Returns the json schema for the given calculation index. |
|
69 | + * |
|
70 | + * @since 4.9.68.p |
|
71 | + * @param $calculation_index |
|
72 | + * @return array |
|
73 | + */ |
|
74 | + public function schemaForCalculation($calculation_index) |
|
75 | + { |
|
76 | + $schema_map = $this->schemaForCalculations(); |
|
77 | + return isset($schema_map[ $calculation_index ]) ? $schema_map[ $calculation_index ] : array(); |
|
78 | + } |
|
79 | 79 | } |
@@ -80,7 +80,7 @@ |
||
80 | 80 | extract($attributes, EXTR_OVERWRITE); |
81 | 81 | $event_id = isset($event_id) ? $event_id : 0; |
82 | 82 | $event = EE_Registry::instance()->load_model('Event')->get_one_by_ID($event_id); |
83 | - if (! $event instanceof EE_Event) { |
|
83 | + if ( ! $event instanceof EE_Event) { |
|
84 | 84 | if (WP_DEBUG === true && current_user_can('edit_pages')) { |
85 | 85 | new ExceptionStackTraceDisplay( |
86 | 86 | new InvalidArgumentException( |
@@ -22,92 +22,92 @@ |
||
22 | 22 | */ |
23 | 23 | class EspressoTicketSelector extends EspressoShortcode |
24 | 24 | { |
25 | - /** |
|
26 | - * the actual shortcode tag that gets registered with WordPress |
|
27 | - * |
|
28 | - * @return string |
|
29 | - */ |
|
30 | - public function getTag() |
|
31 | - { |
|
32 | - return 'ESPRESSO_TICKET_SELECTOR'; |
|
33 | - } |
|
25 | + /** |
|
26 | + * the actual shortcode tag that gets registered with WordPress |
|
27 | + * |
|
28 | + * @return string |
|
29 | + */ |
|
30 | + public function getTag() |
|
31 | + { |
|
32 | + return 'ESPRESSO_TICKET_SELECTOR'; |
|
33 | + } |
|
34 | 34 | |
35 | 35 | |
36 | - /** |
|
37 | - * the time in seconds to cache the results of the processShortcode() method |
|
38 | - * 0 means the processShortcode() results will NOT be cached at all |
|
39 | - * |
|
40 | - * @return int |
|
41 | - */ |
|
42 | - public function cacheExpiration() |
|
43 | - { |
|
44 | - return 0; |
|
45 | - } |
|
36 | + /** |
|
37 | + * the time in seconds to cache the results of the processShortcode() method |
|
38 | + * 0 means the processShortcode() results will NOT be cached at all |
|
39 | + * |
|
40 | + * @return int |
|
41 | + */ |
|
42 | + public function cacheExpiration() |
|
43 | + { |
|
44 | + return 0; |
|
45 | + } |
|
46 | 46 | |
47 | 47 | |
48 | - /** |
|
49 | - * a place for adding any initialization code that needs to run prior to wp_header(). |
|
50 | - * this may be required for shortcodes that utilize a corresponding module, |
|
51 | - * and need to enqueue assets for that module |
|
52 | - * |
|
53 | - * @return void |
|
54 | - */ |
|
55 | - public function initializeShortcode() |
|
56 | - { |
|
57 | - add_filter('FHEE__EED_Ticket_Selector__load_tckt_slctr_assets', '__return_true'); |
|
58 | - $this->shortcodeHasBeenInitialized(); |
|
59 | - } |
|
48 | + /** |
|
49 | + * a place for adding any initialization code that needs to run prior to wp_header(). |
|
50 | + * this may be required for shortcodes that utilize a corresponding module, |
|
51 | + * and need to enqueue assets for that module |
|
52 | + * |
|
53 | + * @return void |
|
54 | + */ |
|
55 | + public function initializeShortcode() |
|
56 | + { |
|
57 | + add_filter('FHEE__EED_Ticket_Selector__load_tckt_slctr_assets', '__return_true'); |
|
58 | + $this->shortcodeHasBeenInitialized(); |
|
59 | + } |
|
60 | 60 | |
61 | 61 | |
62 | - /** |
|
63 | - * callback that runs when the shortcode is encountered in post content. |
|
64 | - * IMPORTANT !!! |
|
65 | - * remember that shortcode content should be RETURNED and NOT echoed out |
|
66 | - * |
|
67 | - * @param array $attributes |
|
68 | - * @return string |
|
69 | - * @throws InvalidArgumentException |
|
70 | - * @throws EE_Error |
|
71 | - * @throws InvalidDataTypeException |
|
72 | - * @throws InvalidInterfaceException |
|
73 | - * @throws ReflectionException |
|
74 | - * @throws Exception |
|
75 | - */ |
|
76 | - public function processShortcode($attributes = array()) |
|
77 | - { |
|
78 | - extract($attributes, EXTR_OVERWRITE); |
|
79 | - $event_id = isset($event_id) ? $event_id : 0; |
|
80 | - $event = EE_Registry::instance()->load_model('Event')->get_one_by_ID($event_id); |
|
81 | - if (! $event instanceof EE_Event) { |
|
82 | - if (WP_DEBUG === true && current_user_can('edit_pages')) { |
|
83 | - new ExceptionStackTraceDisplay( |
|
84 | - new InvalidArgumentException( |
|
85 | - sprintf( |
|
86 | - esc_html__( |
|
87 | - 'A valid Event ID is required to use the "%1$s" shortcode.%4$sAn Event with an ID of "%2$s" could not be found.%4$sPlease verify that the shortcode added to this post\'s content includes an "%3$s" argument and that its value corresponds to a valid Event ID.', |
|
88 | - 'event_espresso' |
|
89 | - ), |
|
90 | - $this->getTag(), |
|
91 | - $event_id, |
|
92 | - 'event_id', |
|
93 | - '<br />' |
|
94 | - ) |
|
95 | - ) |
|
96 | - ); |
|
97 | - return ''; |
|
98 | - } |
|
99 | - return sprintf( |
|
100 | - esc_html__( |
|
101 | - 'An Event with an ID of "%s" could not be found. Please contact the event administrator for assistance.', |
|
102 | - 'event_espresso' |
|
103 | - ), |
|
104 | - $event_id |
|
105 | - ); |
|
106 | - } |
|
107 | - ob_start(); |
|
108 | - do_action('AHEE_event_details_before_post', $event_id); |
|
109 | - espresso_ticket_selector($event); |
|
110 | - do_action('AHEE_event_details_after_post'); |
|
111 | - return ob_get_clean(); |
|
112 | - } |
|
62 | + /** |
|
63 | + * callback that runs when the shortcode is encountered in post content. |
|
64 | + * IMPORTANT !!! |
|
65 | + * remember that shortcode content should be RETURNED and NOT echoed out |
|
66 | + * |
|
67 | + * @param array $attributes |
|
68 | + * @return string |
|
69 | + * @throws InvalidArgumentException |
|
70 | + * @throws EE_Error |
|
71 | + * @throws InvalidDataTypeException |
|
72 | + * @throws InvalidInterfaceException |
|
73 | + * @throws ReflectionException |
|
74 | + * @throws Exception |
|
75 | + */ |
|
76 | + public function processShortcode($attributes = array()) |
|
77 | + { |
|
78 | + extract($attributes, EXTR_OVERWRITE); |
|
79 | + $event_id = isset($event_id) ? $event_id : 0; |
|
80 | + $event = EE_Registry::instance()->load_model('Event')->get_one_by_ID($event_id); |
|
81 | + if (! $event instanceof EE_Event) { |
|
82 | + if (WP_DEBUG === true && current_user_can('edit_pages')) { |
|
83 | + new ExceptionStackTraceDisplay( |
|
84 | + new InvalidArgumentException( |
|
85 | + sprintf( |
|
86 | + esc_html__( |
|
87 | + 'A valid Event ID is required to use the "%1$s" shortcode.%4$sAn Event with an ID of "%2$s" could not be found.%4$sPlease verify that the shortcode added to this post\'s content includes an "%3$s" argument and that its value corresponds to a valid Event ID.', |
|
88 | + 'event_espresso' |
|
89 | + ), |
|
90 | + $this->getTag(), |
|
91 | + $event_id, |
|
92 | + 'event_id', |
|
93 | + '<br />' |
|
94 | + ) |
|
95 | + ) |
|
96 | + ); |
|
97 | + return ''; |
|
98 | + } |
|
99 | + return sprintf( |
|
100 | + esc_html__( |
|
101 | + 'An Event with an ID of "%s" could not be found. Please contact the event administrator for assistance.', |
|
102 | + 'event_espresso' |
|
103 | + ), |
|
104 | + $event_id |
|
105 | + ); |
|
106 | + } |
|
107 | + ob_start(); |
|
108 | + do_action('AHEE_event_details_before_post', $event_id); |
|
109 | + espresso_ticket_selector($event); |
|
110 | + do_action('AHEE_event_details_after_post'); |
|
111 | + return ob_get_clean(); |
|
112 | + } |
|
113 | 113 | } |
@@ -259,7 +259,7 @@ discard block |
||
259 | 259 | 'base_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'base', $this->_variation), |
260 | 260 | 'print_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'print', $this->_variation), |
261 | 261 | 'main_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'main', $this->_variation), |
262 | - 'extra_css' => EE_LIBRARIES_URL . 'messages/defaults/default/variations/pdf_base_default.css', |
|
262 | + 'extra_css' => EE_LIBRARIES_URL.'messages/defaults/default/variations/pdf_base_default.css', |
|
263 | 263 | 'main_body' => apply_filters('FHEE__EE_Pdf_messenger___send_message__main_body', wpautop($this->_content), $this->_content) |
264 | 264 | ); |
265 | 265 | $this->_deregister_wp_hooks(); |
@@ -323,8 +323,8 @@ discard block |
||
323 | 323 | $invoice_name = $this->_subject; |
324 | 324 | |
325 | 325 | // only load dompdf if nobody else has yet... |
326 | - if (! class_exists('Dompdf\Dompdf')) { |
|
327 | - require_once(EE_THIRD_PARTY . 'dompdf/src/Autoloader.php'); |
|
326 | + if ( ! class_exists('Dompdf\Dompdf')) { |
|
327 | + require_once(EE_THIRD_PARTY.'dompdf/src/Autoloader.php'); |
|
328 | 328 | Dompdf\Autoloader::register(); |
329 | 329 | } |
330 | 330 | $options = new Dompdf\Options(); |
@@ -336,7 +336,7 @@ discard block |
||
336 | 336 | $dompdf->loadHtml($content); |
337 | 337 | $dompdf->render(); |
338 | 338 | // forcing the browser to open a download dialog. |
339 | - $dompdf->stream($invoice_name . ".pdf", array('Attachment' => true)); |
|
339 | + $dompdf->stream($invoice_name.".pdf", array('Attachment' => true)); |
|
340 | 340 | } |
341 | 341 | |
342 | 342 |
@@ -13,349 +13,349 @@ |
||
13 | 13 | */ |
14 | 14 | class EE_Pdf_messenger extends EE_messenger |
15 | 15 | { |
16 | - /** |
|
17 | - * The following are the properties that this messenger requires for generating pdf |
|
18 | - */ |
|
19 | - |
|
20 | - /** |
|
21 | - * This is the pdf body generated by the template via the message type. |
|
22 | - * |
|
23 | - * @var string |
|
24 | - */ |
|
25 | - protected $_content; |
|
26 | - |
|
27 | - |
|
28 | - /** |
|
29 | - * This is for the page title that gets displayed. This will end up being the filename for the generated pdf. |
|
30 | - * |
|
31 | - * @var string |
|
32 | - */ |
|
33 | - protected $_subject; |
|
34 | - |
|
35 | - |
|
36 | - /** |
|
37 | - * @return EE_Pdf_messenger |
|
38 | - */ |
|
39 | - public function __construct() |
|
40 | - { |
|
41 | - // set properties |
|
42 | - $this->name = 'pdf'; |
|
43 | - $this->description = esc_html__('This messenger is used for generating a pdf version of the message.', 'event_espresso'); |
|
44 | - $this->label = array( |
|
45 | - 'singular' => esc_html__('PDF', 'event_espresso'), |
|
46 | - 'plural' => esc_html__('PDFs', 'event_espresso') |
|
47 | - ); |
|
48 | - $this->activate_on_install = true; |
|
49 | - |
|
50 | - parent::__construct(); |
|
51 | - } |
|
52 | - |
|
53 | - |
|
54 | - /** |
|
55 | - * PDF Messenger desires execution immediately. |
|
56 | - * @see parent::send_now() for documentation. |
|
57 | - * @since 4.9.0 |
|
58 | - * @return bool |
|
59 | - */ |
|
60 | - public function send_now() |
|
61 | - { |
|
62 | - return true; |
|
63 | - } |
|
64 | - |
|
65 | - |
|
66 | - /** |
|
67 | - * HTML Messenger allows an empty to field. |
|
68 | - * @see parent::allow_empty_to_field() for documentation |
|
69 | - * @since 4.9.0 |
|
70 | - * @return bool |
|
71 | - */ |
|
72 | - public function allow_empty_to_field() |
|
73 | - { |
|
74 | - return true; |
|
75 | - } |
|
76 | - |
|
77 | - |
|
78 | - /** |
|
79 | - * @see abstract declaration in EE_messenger for details. |
|
80 | - */ |
|
81 | - protected function _set_admin_pages() |
|
82 | - { |
|
83 | - $this->admin_registered_pages = array('events_edit' => false); |
|
84 | - } |
|
85 | - |
|
86 | - |
|
87 | - /** |
|
88 | - * @see abstract declaration in EE_messenger for details. |
|
89 | - */ |
|
90 | - protected function _set_valid_shortcodes() |
|
91 | - { |
|
92 | - $this->_valid_shortcodes = array(); |
|
93 | - } |
|
94 | - |
|
95 | - |
|
96 | - /** |
|
97 | - * @see abstract declaration in EE_messenger for details. |
|
98 | - */ |
|
99 | - protected function _set_validator_config() |
|
100 | - { |
|
101 | - $this->_validator_config = array( |
|
102 | - 'subject' => array( |
|
103 | - 'shortcodes' => array('recipient_details', 'organization', 'event', 'ticket', 'venue', 'primary_registration_details', 'event_author', 'email', 'event_meta', 'recipient_list', 'transaction', 'datetime_list', 'datetime') |
|
104 | - ), |
|
105 | - 'content' => array( |
|
106 | - 'shortcodes' => array('recipient_details', 'organization', 'event', 'ticket', 'venue', 'primary_registration_details', 'event_author', 'email', 'event_meta', 'recipient_list', 'transaction', 'datetime_list', 'datetime') |
|
107 | - ), |
|
108 | - 'attendee_list' => array( |
|
109 | - 'shortcodes' => array('attendee', 'event_list', 'ticket_list'), |
|
110 | - 'required' => array('[ATTENDEE_LIST]') |
|
111 | - ), |
|
112 | - 'event_list' => array( |
|
113 | - 'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'venue', 'datetime_list', 'attendee', 'primary_registration_details', 'primary_registration_list', 'event_author', 'recipient_details', 'recipient_list'), |
|
114 | - 'required' => array('[EVENT_LIST]') |
|
115 | - ), |
|
116 | - 'ticket_list' => array( |
|
117 | - 'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'primary_registration_details', 'recipient_details'), |
|
118 | - 'required' => array('[TICKET_LIST]') |
|
119 | - ), |
|
120 | - 'datetime_list' => array( |
|
121 | - 'shortcodes' => array('datetime'), |
|
122 | - 'required' => array('[DATETIME_LIST]') |
|
123 | - ), |
|
124 | - ); |
|
125 | - } |
|
126 | - |
|
127 | - |
|
128 | - /** |
|
129 | - * Takes care of enqueuing any necessary scripts or styles for the page. A do_action() so message types using this messenger can add their own js. |
|
130 | - * |
|
131 | - * @return void. |
|
132 | - */ |
|
133 | - public function enqueue_scripts_styles() |
|
134 | - { |
|
135 | - parent::enqueue_scripts_styles(); |
|
136 | - do_action('AHEE__EE_Pdf_messenger__enqueue_scripts_styles'); |
|
137 | - } |
|
138 | - |
|
139 | - |
|
140 | - /** |
|
141 | - * _set_template_fields |
|
142 | - * This sets up the fields that a messenger requires for the message to go out. |
|
143 | - * |
|
144 | - * @access protected |
|
145 | - * @return void |
|
146 | - */ |
|
147 | - protected function _set_template_fields() |
|
148 | - { |
|
149 | - // any extra template fields that are NOT used by the messenger but will get used by a messenger field for shortcode replacement get added to the 'extra' key in an associated array indexed by the messenger field they relate to. This is important for the Messages_admin to know what fields to display to the user. Also, notice that the "values" are equal to the field type that messages admin will use to know what kind of field to display. The values ALSO have one index labeled "shortcode". the values in that array indicate which ACTUAL SHORTCODE (i.e. [SHORTCODE]) is required in order for this extra field to be displayed. If the required shortcode isn't part of the shortcodes array then the field is not needed and will not be displayed/parsed. |
|
150 | - $this->_template_fields = array( |
|
151 | - 'subject' => array( |
|
152 | - 'input' => 'text', |
|
153 | - 'label' => esc_html__('Page Title', 'event_espresso'), |
|
154 | - 'type' => 'string', |
|
155 | - 'required' => true, |
|
156 | - 'validation' => true, |
|
157 | - 'css_class' => 'large-text', |
|
158 | - 'format' => '%s' |
|
159 | - ), |
|
160 | - 'content' => '', // left empty b/c it is in the "extra array" but messenger still needs needs to know this is a field. |
|
161 | - 'extra' => array( |
|
162 | - 'content' => array( |
|
163 | - 'main' => array( |
|
164 | - 'input' => 'wp_editor', |
|
165 | - 'label' => esc_html__('Main Content', 'event_espresso'), |
|
166 | - 'type' => 'string', |
|
167 | - 'required' => true, |
|
168 | - 'validation' => true, |
|
169 | - 'format' => '%s', |
|
170 | - 'rows' => '15' |
|
171 | - ), |
|
172 | - 'event_list' => array( |
|
173 | - 'input' => 'wp_editor', |
|
174 | - 'label' => '[EVENT_LIST]', |
|
175 | - 'type' => 'string', |
|
176 | - 'required' => true, |
|
177 | - 'validation' => true, |
|
178 | - 'format' => '%s', |
|
179 | - 'rows' => '15', |
|
180 | - 'shortcodes_required' => array('[EVENT_LIST]') |
|
181 | - ), |
|
182 | - 'attendee_list' => array( |
|
183 | - 'input' => 'textarea', |
|
184 | - 'label' => '[ATTENDEE_LIST]', |
|
185 | - 'type' => 'string', |
|
186 | - 'required' => true, |
|
187 | - 'validation' => true, |
|
188 | - 'format' => '%s', |
|
189 | - 'css_class' => 'large-text', |
|
190 | - 'rows' => '5', |
|
191 | - 'shortcodes_required' => array('[ATTENDEE_LIST]') |
|
192 | - ), |
|
193 | - 'ticket_list' => array( |
|
194 | - 'input' => 'textarea', |
|
195 | - 'label' => '[TICKET_LIST]', |
|
196 | - 'type' => 'string', |
|
197 | - 'required' => true, |
|
198 | - 'validation' => true, |
|
199 | - 'format' => '%s', |
|
200 | - 'css_class' => 'large-text', |
|
201 | - 'rows' => '10', |
|
202 | - 'shortcodes_required' => array('[TICKET_LIST]') |
|
203 | - ), |
|
204 | - 'datetime_list' => array( |
|
205 | - 'input' => 'textarea', |
|
206 | - 'label' => '[DATETIME_LIST]', |
|
207 | - 'type' => 'string', |
|
208 | - 'required' => true, |
|
209 | - 'validation' => true, |
|
210 | - 'format' => '%s', |
|
211 | - 'css_class' => 'large-text', |
|
212 | - 'rows' => '10', |
|
213 | - 'shortcodes_required' => array('[DATETIME_LIST]') |
|
214 | - ) |
|
215 | - ) |
|
216 | - ) |
|
217 | - ); |
|
218 | - } |
|
219 | - |
|
220 | - |
|
221 | - /** |
|
222 | - * @see definition of this method in parent |
|
223 | - * |
|
224 | - * @since 4.5.0 |
|
225 | - * |
|
226 | - */ |
|
227 | - protected function _set_default_message_types() |
|
228 | - { |
|
229 | - // note currently PDF is only a secondary messenger so it never has any associated message types. |
|
230 | - $this->_default_message_types = array(); |
|
231 | - } |
|
232 | - |
|
233 | - |
|
234 | - /** |
|
235 | - * @see definition of this method in parent |
|
236 | - * |
|
237 | - * @since 4.5.0 |
|
238 | - */ |
|
239 | - protected function _set_valid_message_types() |
|
240 | - { |
|
241 | - $this->_valid_message_types = array(); |
|
242 | - } |
|
243 | - |
|
244 | - |
|
245 | - /** |
|
246 | - * Generates html version of the message content and then sends it to the pdf generator. |
|
247 | - * |
|
248 | - * |
|
249 | - * @since 4.5.0 |
|
250 | - * |
|
251 | - * @return string. |
|
252 | - */ |
|
253 | - protected function _send_message() |
|
254 | - { |
|
255 | - $this->_template_args = array( |
|
256 | - 'page_title' => $this->_subject, |
|
257 | - 'base_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'base', $this->_variation), |
|
258 | - 'print_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'print', $this->_variation), |
|
259 | - 'main_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'main', $this->_variation), |
|
260 | - 'extra_css' => EE_LIBRARIES_URL . 'messages/defaults/default/variations/pdf_base_default.css', |
|
261 | - 'main_body' => apply_filters('FHEE__EE_Pdf_messenger___send_message__main_body', wpautop($this->_content), $this->_content) |
|
262 | - ); |
|
263 | - $this->_deregister_wp_hooks(); |
|
264 | - add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts_styles')); |
|
265 | - $content = $this->_get_main_template(); |
|
16 | + /** |
|
17 | + * The following are the properties that this messenger requires for generating pdf |
|
18 | + */ |
|
19 | + |
|
20 | + /** |
|
21 | + * This is the pdf body generated by the template via the message type. |
|
22 | + * |
|
23 | + * @var string |
|
24 | + */ |
|
25 | + protected $_content; |
|
26 | + |
|
27 | + |
|
28 | + /** |
|
29 | + * This is for the page title that gets displayed. This will end up being the filename for the generated pdf. |
|
30 | + * |
|
31 | + * @var string |
|
32 | + */ |
|
33 | + protected $_subject; |
|
34 | + |
|
35 | + |
|
36 | + /** |
|
37 | + * @return EE_Pdf_messenger |
|
38 | + */ |
|
39 | + public function __construct() |
|
40 | + { |
|
41 | + // set properties |
|
42 | + $this->name = 'pdf'; |
|
43 | + $this->description = esc_html__('This messenger is used for generating a pdf version of the message.', 'event_espresso'); |
|
44 | + $this->label = array( |
|
45 | + 'singular' => esc_html__('PDF', 'event_espresso'), |
|
46 | + 'plural' => esc_html__('PDFs', 'event_espresso') |
|
47 | + ); |
|
48 | + $this->activate_on_install = true; |
|
49 | + |
|
50 | + parent::__construct(); |
|
51 | + } |
|
52 | + |
|
53 | + |
|
54 | + /** |
|
55 | + * PDF Messenger desires execution immediately. |
|
56 | + * @see parent::send_now() for documentation. |
|
57 | + * @since 4.9.0 |
|
58 | + * @return bool |
|
59 | + */ |
|
60 | + public function send_now() |
|
61 | + { |
|
62 | + return true; |
|
63 | + } |
|
64 | + |
|
65 | + |
|
66 | + /** |
|
67 | + * HTML Messenger allows an empty to field. |
|
68 | + * @see parent::allow_empty_to_field() for documentation |
|
69 | + * @since 4.9.0 |
|
70 | + * @return bool |
|
71 | + */ |
|
72 | + public function allow_empty_to_field() |
|
73 | + { |
|
74 | + return true; |
|
75 | + } |
|
76 | + |
|
77 | + |
|
78 | + /** |
|
79 | + * @see abstract declaration in EE_messenger for details. |
|
80 | + */ |
|
81 | + protected function _set_admin_pages() |
|
82 | + { |
|
83 | + $this->admin_registered_pages = array('events_edit' => false); |
|
84 | + } |
|
85 | + |
|
86 | + |
|
87 | + /** |
|
88 | + * @see abstract declaration in EE_messenger for details. |
|
89 | + */ |
|
90 | + protected function _set_valid_shortcodes() |
|
91 | + { |
|
92 | + $this->_valid_shortcodes = array(); |
|
93 | + } |
|
94 | + |
|
95 | + |
|
96 | + /** |
|
97 | + * @see abstract declaration in EE_messenger for details. |
|
98 | + */ |
|
99 | + protected function _set_validator_config() |
|
100 | + { |
|
101 | + $this->_validator_config = array( |
|
102 | + 'subject' => array( |
|
103 | + 'shortcodes' => array('recipient_details', 'organization', 'event', 'ticket', 'venue', 'primary_registration_details', 'event_author', 'email', 'event_meta', 'recipient_list', 'transaction', 'datetime_list', 'datetime') |
|
104 | + ), |
|
105 | + 'content' => array( |
|
106 | + 'shortcodes' => array('recipient_details', 'organization', 'event', 'ticket', 'venue', 'primary_registration_details', 'event_author', 'email', 'event_meta', 'recipient_list', 'transaction', 'datetime_list', 'datetime') |
|
107 | + ), |
|
108 | + 'attendee_list' => array( |
|
109 | + 'shortcodes' => array('attendee', 'event_list', 'ticket_list'), |
|
110 | + 'required' => array('[ATTENDEE_LIST]') |
|
111 | + ), |
|
112 | + 'event_list' => array( |
|
113 | + 'shortcodes' => array('event', 'attendee_list', 'ticket_list', 'venue', 'datetime_list', 'attendee', 'primary_registration_details', 'primary_registration_list', 'event_author', 'recipient_details', 'recipient_list'), |
|
114 | + 'required' => array('[EVENT_LIST]') |
|
115 | + ), |
|
116 | + 'ticket_list' => array( |
|
117 | + 'shortcodes' => array('event_list', 'attendee_list', 'ticket', 'datetime_list', 'primary_registration_details', 'recipient_details'), |
|
118 | + 'required' => array('[TICKET_LIST]') |
|
119 | + ), |
|
120 | + 'datetime_list' => array( |
|
121 | + 'shortcodes' => array('datetime'), |
|
122 | + 'required' => array('[DATETIME_LIST]') |
|
123 | + ), |
|
124 | + ); |
|
125 | + } |
|
126 | + |
|
127 | + |
|
128 | + /** |
|
129 | + * Takes care of enqueuing any necessary scripts or styles for the page. A do_action() so message types using this messenger can add their own js. |
|
130 | + * |
|
131 | + * @return void. |
|
132 | + */ |
|
133 | + public function enqueue_scripts_styles() |
|
134 | + { |
|
135 | + parent::enqueue_scripts_styles(); |
|
136 | + do_action('AHEE__EE_Pdf_messenger__enqueue_scripts_styles'); |
|
137 | + } |
|
138 | + |
|
139 | + |
|
140 | + /** |
|
141 | + * _set_template_fields |
|
142 | + * This sets up the fields that a messenger requires for the message to go out. |
|
143 | + * |
|
144 | + * @access protected |
|
145 | + * @return void |
|
146 | + */ |
|
147 | + protected function _set_template_fields() |
|
148 | + { |
|
149 | + // any extra template fields that are NOT used by the messenger but will get used by a messenger field for shortcode replacement get added to the 'extra' key in an associated array indexed by the messenger field they relate to. This is important for the Messages_admin to know what fields to display to the user. Also, notice that the "values" are equal to the field type that messages admin will use to know what kind of field to display. The values ALSO have one index labeled "shortcode". the values in that array indicate which ACTUAL SHORTCODE (i.e. [SHORTCODE]) is required in order for this extra field to be displayed. If the required shortcode isn't part of the shortcodes array then the field is not needed and will not be displayed/parsed. |
|
150 | + $this->_template_fields = array( |
|
151 | + 'subject' => array( |
|
152 | + 'input' => 'text', |
|
153 | + 'label' => esc_html__('Page Title', 'event_espresso'), |
|
154 | + 'type' => 'string', |
|
155 | + 'required' => true, |
|
156 | + 'validation' => true, |
|
157 | + 'css_class' => 'large-text', |
|
158 | + 'format' => '%s' |
|
159 | + ), |
|
160 | + 'content' => '', // left empty b/c it is in the "extra array" but messenger still needs needs to know this is a field. |
|
161 | + 'extra' => array( |
|
162 | + 'content' => array( |
|
163 | + 'main' => array( |
|
164 | + 'input' => 'wp_editor', |
|
165 | + 'label' => esc_html__('Main Content', 'event_espresso'), |
|
166 | + 'type' => 'string', |
|
167 | + 'required' => true, |
|
168 | + 'validation' => true, |
|
169 | + 'format' => '%s', |
|
170 | + 'rows' => '15' |
|
171 | + ), |
|
172 | + 'event_list' => array( |
|
173 | + 'input' => 'wp_editor', |
|
174 | + 'label' => '[EVENT_LIST]', |
|
175 | + 'type' => 'string', |
|
176 | + 'required' => true, |
|
177 | + 'validation' => true, |
|
178 | + 'format' => '%s', |
|
179 | + 'rows' => '15', |
|
180 | + 'shortcodes_required' => array('[EVENT_LIST]') |
|
181 | + ), |
|
182 | + 'attendee_list' => array( |
|
183 | + 'input' => 'textarea', |
|
184 | + 'label' => '[ATTENDEE_LIST]', |
|
185 | + 'type' => 'string', |
|
186 | + 'required' => true, |
|
187 | + 'validation' => true, |
|
188 | + 'format' => '%s', |
|
189 | + 'css_class' => 'large-text', |
|
190 | + 'rows' => '5', |
|
191 | + 'shortcodes_required' => array('[ATTENDEE_LIST]') |
|
192 | + ), |
|
193 | + 'ticket_list' => array( |
|
194 | + 'input' => 'textarea', |
|
195 | + 'label' => '[TICKET_LIST]', |
|
196 | + 'type' => 'string', |
|
197 | + 'required' => true, |
|
198 | + 'validation' => true, |
|
199 | + 'format' => '%s', |
|
200 | + 'css_class' => 'large-text', |
|
201 | + 'rows' => '10', |
|
202 | + 'shortcodes_required' => array('[TICKET_LIST]') |
|
203 | + ), |
|
204 | + 'datetime_list' => array( |
|
205 | + 'input' => 'textarea', |
|
206 | + 'label' => '[DATETIME_LIST]', |
|
207 | + 'type' => 'string', |
|
208 | + 'required' => true, |
|
209 | + 'validation' => true, |
|
210 | + 'format' => '%s', |
|
211 | + 'css_class' => 'large-text', |
|
212 | + 'rows' => '10', |
|
213 | + 'shortcodes_required' => array('[DATETIME_LIST]') |
|
214 | + ) |
|
215 | + ) |
|
216 | + ) |
|
217 | + ); |
|
218 | + } |
|
219 | + |
|
220 | + |
|
221 | + /** |
|
222 | + * @see definition of this method in parent |
|
223 | + * |
|
224 | + * @since 4.5.0 |
|
225 | + * |
|
226 | + */ |
|
227 | + protected function _set_default_message_types() |
|
228 | + { |
|
229 | + // note currently PDF is only a secondary messenger so it never has any associated message types. |
|
230 | + $this->_default_message_types = array(); |
|
231 | + } |
|
232 | + |
|
233 | + |
|
234 | + /** |
|
235 | + * @see definition of this method in parent |
|
236 | + * |
|
237 | + * @since 4.5.0 |
|
238 | + */ |
|
239 | + protected function _set_valid_message_types() |
|
240 | + { |
|
241 | + $this->_valid_message_types = array(); |
|
242 | + } |
|
243 | + |
|
244 | + |
|
245 | + /** |
|
246 | + * Generates html version of the message content and then sends it to the pdf generator. |
|
247 | + * |
|
248 | + * |
|
249 | + * @since 4.5.0 |
|
250 | + * |
|
251 | + * @return string. |
|
252 | + */ |
|
253 | + protected function _send_message() |
|
254 | + { |
|
255 | + $this->_template_args = array( |
|
256 | + 'page_title' => $this->_subject, |
|
257 | + 'base_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'base', $this->_variation), |
|
258 | + 'print_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'print', $this->_variation), |
|
259 | + 'main_css' => $this->get_variation($this->_tmp_pack, $this->_incoming_message_type->name, true, 'main', $this->_variation), |
|
260 | + 'extra_css' => EE_LIBRARIES_URL . 'messages/defaults/default/variations/pdf_base_default.css', |
|
261 | + 'main_body' => apply_filters('FHEE__EE_Pdf_messenger___send_message__main_body', wpautop($this->_content), $this->_content) |
|
262 | + ); |
|
263 | + $this->_deregister_wp_hooks(); |
|
264 | + add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts_styles')); |
|
265 | + $content = $this->_get_main_template(); |
|
266 | 266 | // die( $content ); |
267 | - $this->_do_pdf($content); |
|
268 | - exit(0); |
|
269 | - } |
|
270 | - |
|
271 | - |
|
272 | - /** |
|
273 | - * The purpose of this function is to de register all actions hooked into wp_head and wp_footer so that it doesn't interfere with our templates. If users want to add any custom styles or scripts they must use the AHEE__EE_Pdf_messenger__enqueue_scripts_styles hook. |
|
274 | - * |
|
275 | - * @since 4.5.0 |
|
276 | - * |
|
277 | - * @return void |
|
278 | - */ |
|
279 | - protected function _deregister_wp_hooks() |
|
280 | - { |
|
281 | - remove_all_actions('wp_head'); |
|
282 | - remove_all_actions('wp_footer'); |
|
283 | - remove_all_actions('wp_print_footer_scripts'); |
|
284 | - remove_all_actions('wp_enqueue_scripts'); |
|
285 | - global $wp_scripts, $wp_styles; |
|
286 | - $wp_scripts = $wp_styles = array(); |
|
287 | - |
|
288 | - // just add back in wp_enqueue_scripts and wp_print_footer_scripts cause that's all we want to load. |
|
289 | - add_action('wp_head', 'wp_enqueue_scripts'); |
|
290 | - add_action('wp_footer', 'wp_print_footer_scripts'); |
|
291 | - add_action('wp_print_footer_scripts', '_wp_footer_scripts'); |
|
292 | - } |
|
293 | - |
|
294 | - |
|
295 | - /** |
|
296 | - * Overwrite parent _get_main_template for pdf purposes. |
|
297 | - * |
|
298 | - * @since 4.5.0 |
|
299 | - * |
|
300 | - * @param bool $preview |
|
301 | - * @return string |
|
302 | - */ |
|
303 | - protected function _get_main_template($preview = false) |
|
304 | - { |
|
305 | - $wrapper_template = $this->_tmp_pack->get_wrapper('html', 'main'); |
|
306 | - // add message type to template_args |
|
307 | - $this->_template_args['message_type'] = $this->_incoming_message_type; |
|
308 | - return EEH_Template::display_template($wrapper_template, $this->_template_args, true); |
|
309 | - } |
|
310 | - |
|
311 | - |
|
312 | - /** |
|
313 | - * This takes care of loading the dompdf library and generating the actual pdf |
|
314 | - * |
|
315 | - * @param string $content This is the generated html content being converted into a pdf. |
|
316 | - * |
|
317 | - * @return void |
|
318 | - */ |
|
319 | - protected function _do_pdf($content = '') |
|
320 | - { |
|
321 | - $invoice_name = $this->_subject; |
|
322 | - |
|
323 | - // only load dompdf if nobody else has yet... |
|
324 | - if (! class_exists('Dompdf\Dompdf')) { |
|
325 | - require_once(EE_THIRD_PARTY . 'dompdf/src/Autoloader.php'); |
|
326 | - Dompdf\Autoloader::register(); |
|
327 | - } |
|
328 | - $options = new Dompdf\Options(); |
|
329 | - $options->set('isRemoteEnabled', true); |
|
330 | - $options->set('isJavascriptEnabled', false); |
|
331 | - if (defined('DOMPDF_FONT_DIR')) { |
|
332 | - $options->setFontDir(DOMPDF_FONT_DIR); |
|
333 | - $options->setFontCache(DOMPDF_FONT_DIR); |
|
334 | - } |
|
335 | - // Allow changing the paper size. |
|
336 | - if (defined('DOMPDF_DEFAULT_PAPER_SIZE')) { |
|
337 | - $options->set('defaultPaperSize', DOMPDF_DEFAULT_PAPER_SIZE); |
|
338 | - } |
|
339 | - $dompdf = new Dompdf\Dompdf($options); |
|
340 | - // Remove all spaces between HTML tags |
|
341 | - $content = preg_replace('/>\s+</', '><', $content); |
|
342 | - $dompdf->loadHtml($content); |
|
343 | - $dompdf->render(); |
|
344 | - // forcing the browser to open a download dialog. |
|
345 | - $dompdf->stream($invoice_name . ".pdf", array('Attachment' => true)); |
|
346 | - } |
|
347 | - |
|
348 | - |
|
349 | - /** |
|
350 | - * @return string |
|
351 | - */ |
|
352 | - protected function _preview() |
|
353 | - { |
|
354 | - return $this->_send_message(); |
|
355 | - } |
|
356 | - |
|
357 | - |
|
358 | - protected function _set_admin_settings_fields() |
|
359 | - { |
|
360 | - } |
|
267 | + $this->_do_pdf($content); |
|
268 | + exit(0); |
|
269 | + } |
|
270 | + |
|
271 | + |
|
272 | + /** |
|
273 | + * The purpose of this function is to de register all actions hooked into wp_head and wp_footer so that it doesn't interfere with our templates. If users want to add any custom styles or scripts they must use the AHEE__EE_Pdf_messenger__enqueue_scripts_styles hook. |
|
274 | + * |
|
275 | + * @since 4.5.0 |
|
276 | + * |
|
277 | + * @return void |
|
278 | + */ |
|
279 | + protected function _deregister_wp_hooks() |
|
280 | + { |
|
281 | + remove_all_actions('wp_head'); |
|
282 | + remove_all_actions('wp_footer'); |
|
283 | + remove_all_actions('wp_print_footer_scripts'); |
|
284 | + remove_all_actions('wp_enqueue_scripts'); |
|
285 | + global $wp_scripts, $wp_styles; |
|
286 | + $wp_scripts = $wp_styles = array(); |
|
287 | + |
|
288 | + // just add back in wp_enqueue_scripts and wp_print_footer_scripts cause that's all we want to load. |
|
289 | + add_action('wp_head', 'wp_enqueue_scripts'); |
|
290 | + add_action('wp_footer', 'wp_print_footer_scripts'); |
|
291 | + add_action('wp_print_footer_scripts', '_wp_footer_scripts'); |
|
292 | + } |
|
293 | + |
|
294 | + |
|
295 | + /** |
|
296 | + * Overwrite parent _get_main_template for pdf purposes. |
|
297 | + * |
|
298 | + * @since 4.5.0 |
|
299 | + * |
|
300 | + * @param bool $preview |
|
301 | + * @return string |
|
302 | + */ |
|
303 | + protected function _get_main_template($preview = false) |
|
304 | + { |
|
305 | + $wrapper_template = $this->_tmp_pack->get_wrapper('html', 'main'); |
|
306 | + // add message type to template_args |
|
307 | + $this->_template_args['message_type'] = $this->_incoming_message_type; |
|
308 | + return EEH_Template::display_template($wrapper_template, $this->_template_args, true); |
|
309 | + } |
|
310 | + |
|
311 | + |
|
312 | + /** |
|
313 | + * This takes care of loading the dompdf library and generating the actual pdf |
|
314 | + * |
|
315 | + * @param string $content This is the generated html content being converted into a pdf. |
|
316 | + * |
|
317 | + * @return void |
|
318 | + */ |
|
319 | + protected function _do_pdf($content = '') |
|
320 | + { |
|
321 | + $invoice_name = $this->_subject; |
|
322 | + |
|
323 | + // only load dompdf if nobody else has yet... |
|
324 | + if (! class_exists('Dompdf\Dompdf')) { |
|
325 | + require_once(EE_THIRD_PARTY . 'dompdf/src/Autoloader.php'); |
|
326 | + Dompdf\Autoloader::register(); |
|
327 | + } |
|
328 | + $options = new Dompdf\Options(); |
|
329 | + $options->set('isRemoteEnabled', true); |
|
330 | + $options->set('isJavascriptEnabled', false); |
|
331 | + if (defined('DOMPDF_FONT_DIR')) { |
|
332 | + $options->setFontDir(DOMPDF_FONT_DIR); |
|
333 | + $options->setFontCache(DOMPDF_FONT_DIR); |
|
334 | + } |
|
335 | + // Allow changing the paper size. |
|
336 | + if (defined('DOMPDF_DEFAULT_PAPER_SIZE')) { |
|
337 | + $options->set('defaultPaperSize', DOMPDF_DEFAULT_PAPER_SIZE); |
|
338 | + } |
|
339 | + $dompdf = new Dompdf\Dompdf($options); |
|
340 | + // Remove all spaces between HTML tags |
|
341 | + $content = preg_replace('/>\s+</', '><', $content); |
|
342 | + $dompdf->loadHtml($content); |
|
343 | + $dompdf->render(); |
|
344 | + // forcing the browser to open a download dialog. |
|
345 | + $dompdf->stream($invoice_name . ".pdf", array('Attachment' => true)); |
|
346 | + } |
|
347 | + |
|
348 | + |
|
349 | + /** |
|
350 | + * @return string |
|
351 | + */ |
|
352 | + protected function _preview() |
|
353 | + { |
|
354 | + return $this->_send_message(); |
|
355 | + } |
|
356 | + |
|
357 | + |
|
358 | + protected function _set_admin_settings_fields() |
|
359 | + { |
|
360 | + } |
|
361 | 361 | } |