为客户自动保存joomla文章

时间:2012-03-21 08:04:06

标签: joomla triggers onclick

我知道它听起来有点疯狂,但很多客户都没有正确保存文章的问题。

我只想使用一种简单的方法在编辑模式下触发joomla文章中的APPLY按钮的onclick。

主要是后端编辑,因为我有一个很好的管理模板,可以让我向客户展示骨架。

我知道通过点击应用页面重新加载,但这比没有好。

我该如何添加呢?

我希望这样的东西可以工作,但我不知道如何触发一个似乎位于某种工具栏功能内的按钮。

我有这个:

<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和reload page方法发布所有数据。

无论如何我不期待这里的奇迹,但如果有人能帮助那将是伟大的。

提前干杯 约翰

PS:

我刚试过这样的事情,希望它可能会起作用,但它只是重新加载页面:

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

1 个答案:

答案 0 :(得分:1)

  1. 除非您决定使用ajax实现重新编写整个com_content,否则无法在不强制重新加载的情况下执行此操作。

  2. 看看你发布的代码我猜Joomla! 1.5 - 默认情况下有MooTools 1.12或1.2.5(如果您在1.5.x的更高版本中启用了MooTools升级插件) - 更多的问题,但为什么不使用它呢?

  3. 您必须修改管理模板以嵌入您需要的JS,1.5具有少量触发器,并且没有任何在管理屏幕中真正值得使用(除非您需要进行相当多的PHP编码)

  4. <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。