X

Скрипт GreaseMonkey расширяющий функционал Joomla

В данный момент работаю над переносом большого кол-ва данных в Joomla. Так вышло, что приходится много делать вручную, поэтому решил сэкономить время, да и надоедает, повтор монотонных действий, итак..

1. Кнопка "Стандартный шаблон материала" в верхнем меню:

    // ==UserScript==
    // @name           Sklon Add Menu
    // @namespace      Sklon
    // @include        http://site/administrator/index.php?option=com_menus&task=view&menutype=mainmenu
    // ==/UserScript==  

    var oldButtHTML = document.getElementById('toolbar-new').innerHTML;
    var newHTML = '';
    newHTML += '<table cellspacing="0" cellpadding="0"><tr><td>';
    newHTML += '<a href="#" >

Выглядит это так:

Работает это так:
Функционал по нажатию тот же самый, как если бы Вы нажали:
Создать > Материалы > Материал > Стандартный шаблон материалов

2. Когда у Вас большое меню, то при добавлении очередного пункта, приходится, заново искать родительский раздел или категорию. Если это единичный материал, то ладно, не проблема. Но у меня стояла задача добавить порядка 500 пунктов, согласитесь, лень каждый раз мотать искать нужный раздел, особенно если следующие 20 записей будут в него, итак решение:

    // ==UserScript==
    // @name           Parent Auto Select
    // @namespace      Sklon
    // @include        http://site/administrator/index.php?option=com_menus&task=edit&type=component&url[option]=com_content&url[view]=article&menutype=mainmenu
    // ==/UserScript==  

        var dom={};  

        // Add jQuery
        (function(){
            if (typeof unsafeWindow.jQuery == 'undefined') {
                var GM_Head = document.getElementsByTagName('head')[0] || document.documentElement,
                    GM_JQ = document.createElement('script');  

                GM_JQ.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
                GM_JQ.type = 'text/javascript';
                GM_JQ.async = true;  

                GM_Head.insertBefore(GM_JQ, GM_Head.firstChild);
            }
            GM_wait();
        })();  

        // Check if jQuery's loaded
        function GM_wait() {
            if (typeof unsafeWindow.jQuery == 'undefined') {
                window.setTimeout(GM_wait, 100);
            } else {
                dom.query = unsafeWindow.jQuery.noConflict(true);
                letsJQuery();
            }
        }  

    // All your GM code must be inside this function
        function letsJQuery() {  

            var WrapperHtml = dom.query('#parent').parent().html();
            var newHTML = '';
            newHTML += '<div style="margin-bottom:5px;">';
            newHTML += 'Метка: ';
            newHTML += '<input type="text" value="" id="fi_mark" readonly="readonly"/> ';
            newHTML += '<input type="button" value="Установить метку" >

Выглядит это так:

Работает это так:
а) Определяетесь с категорией в которую будут идти следующие добавления, например "Рыбалка"
б) нажимаете кнопку "Установить метку", хитрым образом категория записывается в куку
в) при следующем входе на эту страницу, категория будет выбрана автоматически

Время экономит очень-очень..

Внимание:

1. Все это писалось под FireFox
2. Мешанина в коде (JQuery даже есть), обусловлена тем, что я не знал, во время написания, пригодится он мне или нет. Нету времени на красивые конструкции, скрипт сваял за 10 минут, чтобы облегчить задачу.
3. Вылизывать скрипты, пока нет времени, поэтому оставляю в том виде в котором есть.

Категории: CMS JavaScript Joomla
Тэги: GreaseMonkey