Версия 0.5.1 — исправление багов версии 0.5. Расширение функциональности и настроек.
Введён хук 'admin_announce'. Т.е. желающим вывести что-либо во вкладках анонса нужно цепляться к этому хуку, принимать на вход и возвращать массив $tabs.
Скелет плагина, который добавляет вкладку, выглядит так:
Код:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
function %%%_announce_autoload()
{
mso_hook_add( 'admin_announce', '%%%_announce_custom');
}
function %%%_announce_custom($tabs = array())
{
//В массив $tabs добавляется новый элемент — массив, содержащий нулевым элементом название вкладки,
//а первым, её содержимое.
$tabs[] = array(
t('Новая вкладка', __FILE__),
'<div class="info">' . t('Содержимое вкладки, выводите, что хотите', __FILE__) . '</div>'
);
return $tabs;
}
?>
Заменяете %%% на имя вашего плагина и творите, что хотите. Добавляйте вкладки, меняйте содержимое предыдущих и так далее. Я эту схему уже опробовал — сделал вывод в новой вкладке статистики форума.
За разрешениями следите сами, всё такое.
Осталась непобеждённой ещё одна проблема. В стандартной теме админки у плагина очень большое расстояние от вкладок до их содержимого (см. скриншот выше). Причём, это не паддинги-маргины, не жёстко заданная высота. Где это берётся, не нашёл. Удалял почти все стили шаблона и плагина — всё равно расстояние оставалось.
Кстати, та же беда в настройках плагина с текстовым редактором. И появилось это с рестайлингом админки.
Спасает жёсткое задание высоты у меню вкладок. Но это не выход — мало ли в каком шаблоне, при каком разрешении, с каким количеством вкладок будет смотреться вывод плагина. Если у кого-то есть идеи, как решить проблему — буду благодарен.
Лично я бы забил болт, потому что сам я пользуюсь тремя темами в таком приоритете: dimox, nicothin, wordpress26. И последней почти не пользуюсь.
Скачивать там же.
Upd. Та же проблема с шаблоном админки nicothin. Пока не найдено решение, я, наверное, пропишу у панели закладок max-height: 60px;
Этого достаточно для двух рядов вкладок. Если у кого они пойдут в три ряда, прописывайте 90.
Upd2. Как проверить существование хука:
Код:
if (mso_hook_present('admin_announce')) mso_hook_add( 'admin_announce', '%%%_announce_custom');
Но вообще это не обязательная часть, потому что если хука не существует, а вы прицепитесь к нему, то ваш функционал просто не будет вызван, и соответственно, ошибок не вызовет.
Но напоминаю, что настоящий программист прежде чем перейти улицу с односторонним движением — посмотрит в обе стороны.