Добавьте пункт меню в Wordpress 3.5 Media Manager

Как добавить новый пункт меню под ссылкой «Вставить из URL» на боковой панели слева в новом Wordpress 3.5 Media Manager?

Я смотрел на позвоночника js и пробовал свою руку, подключаясь к ней со своим собственным JS, но безуспешно.

Изменить 2: Это похоже на трюк:

http://sumtips.com/2012 /12/add-remove-tab-wordpress-3-5-media-upload-page.html

Это нужно делать для простых вещей, но я думаю, что это тоже можно сделать в Javascript. Было бы неплохо, если бы был учебник /пояснение о том, как работают внутренние среды медиаредактора.

34 голоса | спросил erezie 22 SatEurope/Moscow2012-12-22T20:17:19+04:00Europe/Moscow12bEurope/MoscowSat, 22 Dec 2012 20:17:19 +0400 2012, 20:17:19

4 ответа


19

Хорошо, я думаю, что у меня есть что-то, что действительно близко, чтобы быть ответом:

Я поместил свой код в сущность

Вот результат: скриншот пользовательского меню

Я построил несколько объектов Backbone, чтобы уважать шаблон MVC: контроллер . Пользовательский отвечает за выполнение всей логики, view.Toolbar.Custom имеет дело с панелью инструментов и view.Custom отображает внутренний интерфейс.

ответил Fabien Quatravaux 18 Jam1000000amFri, 18 Jan 2013 01:50:25 +040013 2013, 01:50:25
10

Я работаю над добавлением кнопки в «меню маршрутизатора» (добавление чего-то права «Media Library»), но система такая же.

  <script type = "text /javascript">
    jQuery (window) .on ('load', function () {
        var media = window.wp.media,
        Attachment = media.model.Attachment,
        Прикрепления = media.model.Attachments,
        Query = media.model.Query,
        l10n = media.view.l10n = typeof _wpMediaViewsL10n === 'undefined'? {}: _wpMediaViewsL10n,
        NewMenuItem;

        jQuery (document) .on ('click', '.insert-media', function (event) {
            var workflow = wp.media.editor.get ();
            var options = workflow.options;
            if (undefined == NewMenuItem) {
                NewMenuItem = new wp.media.view.RouterItem (_.extend (options, {text: 'New Item!'}));
                workflow.menu.view.views.set ('.media-menu', NewMenuItem, _.extend (опции, {add: true}));
            }

        });
    });
& Lt; /сценарий & GT;
 

Теперь он ничего не делает. Это следующий шаг!

ответил Joost 31 MonEurope/Moscow2012-12-31T02:57:22+04:00Europe/Moscow12bEurope/MoscowMon, 31 Dec 2012 02:57:22 +0400 2012, 02:57:22
7

Вы можете подключиться к фильтру media_upload_tabs , чтобы добавить вкладку. Это метод, используемый плагином Network Shared Media :

  функция wpse_76980_add_upload_tab ($ tabs) {
    $ newtab = array ('tab_slug' => 'Tab Name');
    return array_merge ($ tabs, $ newtab);
}
add_filter ('media_upload_tabs', 'wpse_76980_add_upload_tab');
 

Затем вы можете подключиться к действию media_upload_tab_slug (где tab_slug используется как указано выше) для отображения содержимого вкладки:

  функция wpse_76980_media_upload () {
    //отображение содержимого вкладки
}
add_action ('media_upload_tab_slug', 'wpse_76980_media_upload');
 
ответил shea 26 WedEurope/Moscow2012-12-26T13:18:46+04:00Europe/Moscow12bEurope/MoscowWed, 26 Dec 2012 13:18:46 +0400 2012, 13:18:46
3

У меня нет решения, но намеки. Строки получаются из массива. Вы можете фильтровать через hook media_view_strings . Модальное поле после щелчка - это javascript, созданный с помощью backbone.js с WP 3.5. См. В /wp-includes/js/media-views.js для решения. Магистраль также нова для меня, и сценарии имеют много строк источника.

ответил bueltge 22 SatEurope/Moscow2012-12-22T23:15:09+04:00Europe/Moscow12bEurope/MoscowSat, 22 Dec 2012 23:15:09 +0400 2012, 23:15:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132