@@ 370-388 (lines=19) @@ | ||
367 | * @param bool $autoload if set to true, the preprocessor is auto-loaded from one of the plugin directories, else |
|
368 | * you must provide a valid callback |
|
369 | */ |
|
370 | public function addPreProcessor($callback, $autoload = false) |
|
371 | { |
|
372 | if ($autoload) { |
|
373 | $name = str_replace(Core::NAMESPACE_PLUGINS_PROCESSORS, '', Core::toCamelCase($callback)); |
|
374 | $class = Core::NAMESPACE_PLUGINS_PROCESSORS . $name; |
|
375 | ||
376 | if (class_exists($class)) { |
|
377 | $callback = array(new $class($this), 'process'); |
|
378 | } elseif (function_exists($class)) { |
|
379 | $callback = $class; |
|
380 | } else { |
|
381 | $callback = array('autoload' => true, 'class' => $class, 'name' => $name); |
|
382 | } |
|
383 | ||
384 | $this->processors['pre'][] = $callback; |
|
385 | } else { |
|
386 | $this->processors['pre'][] = $callback; |
|
387 | } |
|
388 | } |
|
389 | ||
390 | /** |
|
391 | * Removes a preprocessor from the compiler. |
|
@@ 423-441 (lines=19) @@ | ||
420 | * @param bool $autoload if set to true, the postprocessor is auto-loaded from one of the plugin directories, else |
|
421 | * you must provide a valid callback |
|
422 | */ |
|
423 | public function addPostProcessor($callback, $autoload = false) |
|
424 | { |
|
425 | if ($autoload) { |
|
426 | $name = str_replace(Core::NAMESPACE_PLUGINS_PROCESSORS, '', $callback); |
|
427 | $class = Core::NAMESPACE_PLUGINS_PROCESSORS . Core::toCamelCase($name); |
|
428 | ||
429 | if (class_exists($class)) { |
|
430 | $callback = array(new $class($this), 'process'); |
|
431 | } elseif (function_exists($class)) { |
|
432 | $callback = $class; |
|
433 | } else { |
|
434 | $callback = array('autoload' => true, 'class' => $class, 'name' => $name); |
|
435 | } |
|
436 | ||
437 | $this->processors['post'][] = $callback; |
|
438 | } else { |
|
439 | $this->processors['post'][] = $callback; |
|
440 | } |
|
441 | } |
|
442 | ||
443 | /** |
|
444 | * Removes a postprocessor from the compiler. |