Code Duplication    Length = 27-29 lines in 2 locations

class/oledrion_plugins.php 2 locations

@@ 205-231 (lines=27) @@
202
     * @param  object|Oledrion_parameters $parameters  Les paramètres à passer à chaque plugin
203
     * @return object                     L'objet lui même pour chaîner
204
     */
205
    public function fireAction($eventToFire, Oledrion_parameters $parameters = null)
206
    {
207
        if (!isset($this->events[self::PLUGIN_ACTION][$eventToFire])) {
208
            trigger_error(sprintf(_OLEDRION_PLUGINS_ERROR_1, $eventToFire));
209
210
            return $this;
211
        }
212
        ksort($this->events[self::PLUGIN_ACTION][$eventToFire]); // Tri par priorité
213
        foreach ($this->events[self::PLUGIN_ACTION][$eventToFire] as $priority => $events) {
214
            foreach ($events as $event) {
215
                if ($this->isUnplug(self::PLUGIN_ACTION, $eventToFire, $event['fullPathName'], $event['className'], $event['method'])) {
216
                    continue;
217
                }
218
                require_once $event['fullPathName'];
219
                if (!class_exists($event['className'])) {
220
                    $class = new $event['className'];
221
                }
222
                if (!method_exists($event['className'], $event['method'])) {
223
                    continue;
224
                }
225
                call_user_func(array($event['className'], $event['method']), $parameters);
226
                unset($class);
227
            }
228
        }
229
230
        return $this;
231
    }
232
233
    /**
234
     * Déclenchement d'un filtre et appel des plugins liés
@@ 240-268 (lines=29) @@
237
     * @param  object|Oledrion_parameters $parameters  Les paramètres à passer à chaque plugin
238
     * @return object                     Le contenu de l'objet passé en paramètre
239
     */
240
    public function fireFilter($eventToFire, Oledrion_parameters $parameters)
241
    {
242
        if (!isset($this->events[self::PLUGIN_FILTER][$eventToFire])) {
243
            trigger_error(sprintf(_OLEDRION_PLUGINS_ERROR_1, $eventToFire));
244
245
            return $this;
246
        }
247
        ksort($this->events[self::PLUGIN_FILTER][$eventToFire]); // Tri par priorité
248
        foreach ($this->events[self::PLUGIN_FILTER][$eventToFire] as $priority => $events) {
249
            foreach ($events as $event) {
250
                if ($this->isUnplug(self::PLUGIN_FILTER, $eventToFire, $event['fullPathName'], $event['className'], $event['method'])) {
251
                    continue;
252
                }
253
                require_once $event['fullPathName'];
254
                if (!class_exists($event['className'])) {
255
                    $class = new $event['className'];
256
                }
257
                if (!method_exists($event['className'], $event['method'])) {
258
                    continue;
259
                }
260
                call_user_func(array($event['className'], $event['method']), $parameters);
261
                unset($class);
262
            }
263
        }
264
265
        if (null !== $parameters) {
266
            return $parameters;
267
        }
268
    }
269
270
    /**
271
     * Indique si un plugin s'est détaché d'un évènement particulier