Core Control: лечим некорректное отображение методов в модуле cron

Патч для плагина Core Control для корректного отображения имён методов

Есть один замечательный для разработчиков, называется Core Control. Данный плагин позволяет контролировать различные аспекты работы : транспорт HTTP (например, расширение PHP HTTP, cURL, потоки PHP и т.п.), протоколирование HTTP-запросов, контроль обновлений ядра, плагинов и тем, способы доступа к файловой системе, а также отображение запланированных задач.

Работая над одним плагином, в котором усиленно использовалось планирование заданий, мы столкнулись с проблемой, что cron-модуль плагина неправильно отображает запланированные задания, если задание представлено не обычной функцией, а методом класса:

Запланированные задания.

К счастью, исправляется довольно легко.

[-]
View Code Diff
--- core-control/modules/core_control_cron.php.orig 2010-09-10 09:20:08.000000000 -0400
+++ core-control/modules/core_control_cron.php  2010-09-10 09:31:38.000000000 -0400
@@ -138,8 +138,23 @@
                        if ( isset($GLOBALS['wp_filter'][$hook]) ) {
                            $functions = array();
                            foreach ( (array)$GLOBALS['wp_filter'][$hook] as $priority => $function ) {
-                               foreach ( $function as $hook_details )
-                                   $functions[] = (isset($hook_details['class']) ? $hook_details['class'] . '::' : '') . $hook_details['function'] . '()';
+                               foreach ( $function as $hook_details ) {
+                                   $hook = '';
+                                   $f    = $hook_details['function'];
+                                   if (is_array($f)) {
+                                       if (is_object($f[0])) {
+                                           $hook = get_class($f[0]);
+                                       }
+                                       else {
+                                           $hook = $f[0];
+                                       }
+                                       $hook .= '::' . $f[1];
+                                   }
+                                   else {
+                                       $hook = $f;
+                                   }
+                                   $functions[] = $hook . '()';
+                               }
                            }
                            echo '<br/><strong>Hooked functions:</strong> ' . implode(', ', $functions);
                        }

Вложения:

Автор: ; опубликовано в: Патчи; метки: Core Control, WordPress, ошибка, патч, плагин
10
Сен
2010

RSS Комментарии к статье «Core Control: лечим некорректное отображение методов в модуле cron» (1)  »

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Core Control: лечим некорректное отображение методов в модуле cron»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा