Conditions | 24 |
Paths | 552 |
Total Lines | 180 |
Code Lines | 160 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
131 | public static function parseImageSources($elementName, &$globalsSettings, &$bundleSettings, $siteId = 0) |
||
132 | { |
||
133 | if (empty($siteId)) { |
||
134 | $siteId = 0; |
||
135 | } |
||
136 | $objectPrefix = ''; |
||
137 | if (!empty($elementName)) { |
||
138 | $elementName .= '.'; |
||
139 | $objectPrefix = ''; |
||
140 | } |
||
141 | foreach (self::PULL_ASSET_FIELDS as $fields) { |
||
142 | $fieldName = $fields['fieldName']; |
||
143 | $fieldNameWidth = $fields['fieldName'] . 'Width'; |
||
144 | $fieldNameHeight = $fields['fieldName'] . 'Height'; |
||
145 | $source = $bundleSettings[$fieldName . 'Source'] ?? ''; |
||
146 | $ids = $bundleSettings[$fieldName . 'Ids'] ?? []; |
||
147 | $sourceField = $bundleSettings[$fieldName . 'Field'] ?? ''; |
||
148 | if (!empty($source)) { |
||
149 | $transformImage = $bundleSettings[$fieldName . 'Transform'] ?? true; |
||
150 | $seoField = $fields['seoField']; |
||
151 | $tranformModeField = $fields['transformModeField']; |
||
152 | $transformMode = $bundleSettings[$tranformModeField] ?? 'crop'; |
||
153 | if (empty($transformMode)) { |
||
154 | $transformMode = 'crop'; |
||
155 | } |
||
156 | $seoFieldWidth = $fields['seoField'] . 'Width'; |
||
157 | $seoFieldHeight = $fields['seoField'] . 'Height'; |
||
158 | $transformName = $fields['transformName']; |
||
159 | // Quote all the things here for clarity |
||
160 | $transformName = '"' . $transformName . '"'; |
||
161 | $transformMode = '"' . $transformMode . '"'; |
||
162 | // Special-case Twitter transforms |
||
163 | if ($fieldName === 'twitterImage') { |
||
164 | $transformName = 'seomatic.helper.twitterTransform()'; |
||
165 | } |
||
166 | // Reset the fields to empty by default |
||
167 | if ($source !== 'fromUrl') { |
||
168 | $globalsSettings[$fieldName] = ''; |
||
169 | } |
||
170 | $globalsSettings[$fieldNameWidth] = ''; |
||
171 | $globalsSettings[$fieldNameHeight] = ''; |
||
172 | // Handle transformed images |
||
173 | if ($transformImage) { |
||
174 | switch ($source) { |
||
175 | case 'sameAsSeo': |
||
176 | $seoSource = $bundleSettings[$seoField . 'Source'] ?? ''; |
||
177 | $seoIds = $bundleSettings[$seoField . 'Ids'] ?? []; |
||
178 | $seoSourceField = $bundleSettings[$seoField . 'Field'] ?? ''; |
||
179 | if (!empty($seoSource)) { |
||
180 | switch ($seoSource) { |
||
181 | case 'fromField': |
||
182 | if (!empty($seoSourceField)) { |
||
183 | $globalsSettings[$fieldName] = '{{ seomatic.helper.socialTransform(' |
||
184 | . $objectPrefix . $elementName . $seoSourceField . '.collect()[0]' |
||
185 | . ', ' . $transformName |
||
186 | . ', ' . $siteId |
||
187 | . ', ' . $transformMode |
||
188 | . ') }}'; |
||
189 | $globalsSettings[$fieldNameWidth] = '{{ seomatic.helper.socialTransformWidth(' |
||
190 | . $objectPrefix . $elementName . $seoSourceField . '.collect()[0]' |
||
191 | . ', ' . $transformName |
||
192 | . ', ' . $siteId |
||
193 | . ', ' . $transformMode |
||
194 | . ') }}'; |
||
195 | $globalsSettings[$fieldNameHeight] = '{{ seomatic.helper.socialTransformHeight(' |
||
196 | . $objectPrefix . $elementName . $seoSourceField . '.collect()[0]' |
||
197 | . ', ' . $transformName |
||
198 | . ', ' . $siteId |
||
199 | . ', ' . $transformMode |
||
200 | . ') }}'; |
||
201 | } |
||
202 | break; |
||
203 | case 'fromAsset': |
||
204 | if (!empty($seoIds)) { |
||
205 | $globalsSettings[$fieldName] = '{{ seomatic.helper.socialTransform(' |
||
206 | . $seoIds[0] |
||
207 | . ', ' . $transformName |
||
208 | . ', ' . $siteId |
||
209 | . ', ' . $transformMode |
||
210 | . ') }}'; |
||
211 | $globalsSettings[$fieldNameWidth] = '{{ seomatic.helper.socialTransformWidth(' |
||
212 | . $seoIds[0] |
||
213 | . ', ' . $transformName |
||
214 | . ', ' . $siteId |
||
215 | . ', ' . $transformMode |
||
216 | . ') }}'; |
||
217 | $globalsSettings[$fieldNameHeight] = '{{ seomatic.helper.socialTransformHeight(' |
||
218 | . $seoIds[0] |
||
219 | . ', ' . $transformName |
||
220 | . ', ' . $siteId |
||
221 | . ', ' . $transformMode |
||
222 | . ') }}'; |
||
223 | } |
||
224 | break; |
||
225 | default: |
||
226 | $globalsSettings[$fieldName] = '{{ seomatic.meta.' . $seoField . ' }}'; |
||
227 | $globalsSettings[$fieldNameWidth] = '{{ seomatic.meta.' . $seoFieldWidth . ' }}'; |
||
228 | $globalsSettings[$fieldNameHeight] = '{{ seomatic.meta.' . $seoFieldHeight . ' }}'; |
||
229 | break; |
||
230 | } |
||
231 | } |
||
232 | break; |
||
233 | case 'fromField': |
||
234 | if (!empty($sourceField)) { |
||
235 | $globalsSettings[$fieldName] = '{{ seomatic.helper.socialTransform(' |
||
236 | . $objectPrefix . $elementName . $sourceField . '.collect()[0]' |
||
237 | . ', ' . $transformName |
||
238 | . ', ' . $siteId |
||
239 | . ', ' . $transformMode |
||
240 | . ') }}'; |
||
241 | $globalsSettings[$fieldNameWidth] = '{{ seomatic.helper.socialTransformWidth(' |
||
242 | . $objectPrefix . $elementName . $sourceField . '.collect()[0]' |
||
243 | . ', ' . $transformName |
||
244 | . ', ' . $siteId |
||
245 | . ', ' . $transformMode |
||
246 | . ') }}'; |
||
247 | $globalsSettings[$fieldNameHeight] = '{{ seomatic.helper.socialTransformHeight(' |
||
248 | . $objectPrefix . $elementName . $sourceField . '.collect()[0]' |
||
249 | . ', ' . $transformName |
||
250 | . ', ' . $siteId |
||
251 | . ', ' . $transformMode |
||
252 | . ') }}'; |
||
253 | } |
||
254 | break; |
||
255 | case 'fromAsset': |
||
256 | if (!empty($ids)) { |
||
257 | $globalsSettings[$fieldName] = '{{ seomatic.helper.socialTransform(' |
||
258 | . $ids[0] |
||
259 | . ', ' . $transformName |
||
260 | . ', ' . $siteId |
||
261 | . ', ' . $transformMode |
||
262 | . ') }}'; |
||
263 | $globalsSettings[$fieldNameWidth] = '{{ seomatic.helper.socialTransformWidth(' |
||
264 | . $ids[0] |
||
265 | . ', ' . $transformName |
||
266 | . ', ' . $siteId |
||
267 | . ', ' . $transformMode |
||
268 | . ') }}'; |
||
269 | $globalsSettings[$fieldNameHeight] = '{{ seomatic.helper.socialTransformHeight(' |
||
270 | . $ids[0] |
||
271 | . ', ' . $transformName |
||
272 | . ', ' . $siteId |
||
273 | . ', ' . $transformMode |
||
274 | . ') }}'; |
||
275 | } |
||
276 | break; |
||
277 | } |
||
278 | } else { |
||
279 | switch ($source) { |
||
280 | case 'sameAsSeo': |
||
281 | $globalsSettings[$fieldName] = '{{ seomatic.meta.' . $seoField . ' }}'; |
||
282 | $globalsSettings[$fieldNameWidth] = '{{ seomatic.meta.' . $seoFieldWidth . ' }}'; |
||
283 | $globalsSettings[$fieldNameHeight] = '{{ seomatic.meta.' . $seoFieldHeight . ' }}'; |
||
284 | break; |
||
285 | case 'fromField': |
||
286 | if (!empty($sourceField)) { |
||
287 | $globalsSettings[$fieldName] = '{{ ' |
||
288 | . $elementName . $sourceField . '.collect()[0].url' |
||
289 | . ' }}'; |
||
290 | $globalsSettings[$fieldNameWidth] = '{{ ' |
||
291 | . $elementName . $sourceField . '.collect()[0].width' |
||
292 | . ' }}'; |
||
293 | $globalsSettings[$fieldNameHeight] = '{{ ' |
||
294 | . $elementName . $sourceField . '.collect()[0].height' |
||
295 | . ' }}'; |
||
296 | } |
||
297 | break; |
||
298 | case 'fromAsset': |
||
299 | if (!empty($ids)) { |
||
300 | $globalsSettings[$fieldName] = '{{ craft.app.assets.assetById(' |
||
301 | . $ids[0] |
||
302 | . ', ' . $siteId . ').url }}'; |
||
303 | $globalsSettings[$fieldNameWidth] = '{{ craft.app.assets.assetById(' |
||
304 | . $ids[0] |
||
305 | . ', ' . $siteId . ').width }}'; |
||
306 | $globalsSettings[$fieldNameHeight] = '{{ craft.app.assets.assetById(' |
||
307 | . $ids[0] |
||
308 | . ', ' . $siteId . ').height }}'; |
||
309 | } |
||
310 | break; |
||
311 | } |
||
317 |