Автосохранение Joomla статьи для клиента - PullRequest
0 голосов
/ 21 марта 2012

Я знаю, это звучит немного сумасшедшим, но у многих клиентов возникают проблемы с неправильным сохранением их статьи.

Я просто хотел использовать простой метод для запуска нажатия кнопки APPLY внутри статьи Joomla.в режиме редактирования.

Прежде всего, редактирование на стороне сервера, так как у меня есть хороший шаблон администратора, который позволяет мне показывать клиентам голые кости.

Я знаю, что нажав на кнопку применить, перезагрузка страницы, но это лучше, чемничего.

Как же я могу добавить это сделать?

Я надеялся, что что-то подобное сработает, но я не совсем знаю, как вызвать кнопку, которая, кажется, находится в функции панели инструментовкакой-то.

У меня есть это:

<script type="text/javascript">

 $(document).ready(function() {

 $('??????').trigger('click');

 });

</script>

Что бы заменить знаки вопроса?

Также я знаю, что мне нужно было бы поставить таймер в код jquery, ноКак мне получить ссылку ниже для запуска?

http://mydomain.com/administrator/index.php?option=com_content&sectionid=1&task=edit&cid[]=97

В файле toolbar.content.html.php joomla имеет это:

class TOOLBAR_content
{
    function _EDIT($edit)
    {
        $cid = JRequest::getVar( 'cid', array(0), '', 'array' );
        $cid = intval($cid[0]);

        $text = ( $edit ? JText::_( 'Edit' ) : JText::_( 'New' ) );

        JToolBarHelper::title( JText::_( 'Article' ).': <small><small>[ '. $text.' ]</small></small>', 'addedit.png' );
        JToolBarHelper::preview( 'index.php?option=com_content&id='.$cid.'&tmpl=component', true );
        JToolBarHelper::save();
                                    /////////////////////////////////////
        JToolBarHelper::apply(); // < // THIS IS WHAT I WANT TO TRIGGER
                                    /////////////////////////////////////
        if ( $edit ) {
            // for existing articles the button is renamed `close`
            JToolBarHelper::cancel( 'cancel', 'Close' );
        } else {
            JToolBarHelper::cancel();
        }       

    }
...... more stuff here
}

Я знаюэто может звучать сумасшедшим, но небыло бы здорово, если бы автосохранение могло произойти даже без перезагрузки, но я думаю, это означало бы публикацию всех данных с использованием jquery, а не метода php post и перезагрузки страницы.

В любом случае я не ожидаю чуда здесь, но если кто-нибудьможет помочь, это было бы здорово.

Заранее благодарим, Джон

PS:

Я просто попробовал что-то вроде этого, надеясь, что это сработает, но просто перезагрузит страницу:

function autosave()
{
window.location = "index.php?option=com_content&sectionid=<?php echo $_GET['sectionid'];?>&task=edit&cid[]=<?php echo $row->id;?>"
}

1 Ответ

1 голос
/ 21 марта 2012
  1. Вы не сможете сделать это без принудительной перезагрузки, если не решите переписать весь com_content с помощью реализации ajax.

  2. Глядя на код, который вы разместили, я думаю, Joomla!1.5 - который по умолчанию имеет MooTools 1.12 или 1.2.5 (если вы включили плагин обновления MooTools в более поздних версиях 1.5.x) - так что еще вопрос, но почему бы не использовать это?

  3. Вам нужно будет изменить шаблон администратора, чтобы встроить JS, который вам нужен, 1.5 имеет несколько триггеров, и ни один из них не стоит использовать на экранах администратора (если только вы не разбираетесь в PHP-кодировании)

Где-то в теге <head> представления статьи com_content вам нужно добавить это:

<script type="text/javascript">
    var interval = 30 //seconds
    var timer = setTimeout(submitbutton('apply'),(interval * 1000));
    }
</script>

Обратите внимание, что я не пробовал этопросто набрал его прямо здесь.

  1. Поскольку вы используете версию 1.5, вы уже попробовали расширение Simple Content Versioning * - оно имеет функцию автосохранениякажется, это то, что вы хотите - и, вероятно, работает, тогда как кто знает, с моим кодом в # 3.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...