12 12
发新话题
打印

找出被隐藏的日志分页功能

本主题由 Remex 于 2007-11-9 23:14 加入精华

找出被隐藏的日志分页功能

其实 wordpress 自带日志分页功能的,不过却默认屏蔽了编辑器快捷栏的分页标签按钮,也许是想加快 TingMCE 的载入吧。不过一些喜欢长篇大论的博友就犯难了,甚至因此还去寻找分页插件。其实我们可以把被屏蔽的分页标签按钮给找出来。修改及其简单,打开 wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js,找到 TinyMCE_wordpress_getControlHTML 函数,删除下面的(带单引号):
复制内容到剪贴板
代码:
';
                        // Add this to the buttons var to put the Page button into the toolbar.
                        // '
也就是整个函数变成:
复制内容到剪贴板
代码:
function TinyMCE_wordpress_getControlHTML(control_name) {
        switch (control_name) {
                case "wordpress":
                        var titleMore = tinyMCE.getLang('lang_wordpress_more_button');
                        var titlePage = tinyMCE.getLang('lang_wordpress_page_button');
                        var titleHelp = tinyMCE.getLang('lang_wordpress_help_button');
                        var buttons = '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcewordpressmore\')" target="_self" onclick="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcewordpressmore\');return false;"><img id="{$editor_id}_wordpress_more" src="{$pluginurl}/images/more.gif" title="'+titleMore+'" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a><a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcewordpresspage\')" target="_self" onclick="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcewordpresspage\');return false;"><img id="{$editor_id}_wordpress_page" src="{$pluginurl}/images/page.gif" title="'+titlePage+'" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
                        return buttons;
        }

        return '';
}
这样就修改完了。下次打开 TingMCE 在 MORE 按钮旁边多了个图标很相似的分页按钮,如果怕混淆可以自己修改图片,路经是 wp-includes/js/tinymce/plugins/wordpress/images/page.gif

[ 本帖最后由 alonefly 于 2006-12-12 03:05 PM 编辑 ]

TOP

再送一点。。使用了 Page Navigation 插件的同学可以将下面的代码放入自己所用主题的 functions.php 中。并修改 single.php 里的 link_pages 调用代码修改成 <?php wNote_link_pages('<div class="navigation"><span class="max">分页:</span> ', '</div>', 'number'); ?> 就可以直接用 Page Navigation 插件的分页栏风格了。(呃,好像自己的 Page Navigation 插件也有被修改结构,不管了嘿嘿)
复制内容到剪贴板
代码:
function wNote_link_pages($before='<br />', $after='<br />', $next_or_number='number', $nextpagelink='next page', $previouspagelink='previous page', $pagelink='%', $more_file='') {
        global $id, $page, $numpages, $multipage, $more, $pagenow;
        if ( $more_file != '' )
                $file = $more_file;
        else
                $file = $pagenow;
        if ( $multipage ) {
                if ( 'number' == $next_or_number ) {
                        echo $before;
                        for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) {
                                $j = str_replace('%',"$i",$pagelink);
                                echo '';
                                if ( ($i != $page) || ((!$more) && ($page==1)) ) {
                                        if ( '' == get_settings('permalink_structure') )
                                                echo '<a href="' . get_permalink() . '&amp;page=' . $i . '">';
                                        else
                                                echo '<a href="' . trailingslashit( get_permalink() ) . $i . '/">';
                                }else{
                                        echo '<span>';
                                }
                                echo $j;
                                if ( ($i != $page) || ((!$more) && ($page==1)) ){
                                        echo '</a>';
                                }else{
                                        echo '</span>';
                                }
                        }
                        echo $after;
                } else {
                        if ( $more ) {
                                echo $before;
                                $i = $page - 1;
                                if ( $i && $more ) {
                                        if ( '' == get_settings('permalink_structure') )
                                                echo '<a href="' . get_permalink() . '&amp;page=' . $i . '">'.$previouspagelink.'</a>';
                                        else
                                                echo '<a href="' . get_permalink() . $i . '/">'.$previouspagelink.'</a>';
                                }
                                $i = $page + 1;
                                if ( $i <= $numpages && $more ) {
                                        if ( '' == get_settings('permalink_structure') )
                                                echo '<a href="'.get_permalink() . '&amp;page=' . $i . '">'.$nextpagelink.'</a>';
                                        else
                                                echo '<a href="'.get_permalink().$i.'/">'.$nextpagelink.'</a>';
                                }
                                echo $after;
                        }
                }
        }
}

TOP

经常要写很长的文章,所以需要分页哦...

TOP

我用的是MU1.0版。

如果 editor_plugin.js 里头只有 getControlHTML : function(control_name)
是否可以完全覆盖?

我把 return 改为 var buttons 也不行。
复制内容到剪贴板
代码:
case "wp_more":
        return tinyMCE.getButtonHTML(control_name,'lang_wordpress_more_button', '{$pluginurl}/images/more.gif', 'wpMore');                         
case "wp_page":
        return tinyMCE.getButtonHTML(control_name, 'lang_wordpress_page_button', '{$pluginurl}/images/page.gif', 'wpPage');
case "wp_help":
        var buttons = tinyMCE.getButtonHTML(control_name, 'lang_help_button_title', '{$pluginurl}/images/help.gif', 'wpHelp');
= 人外人,天外天 =
= 强中自有强中手 =
= 一山还有一山高 =

TOP

楼上的能不能把这个函数完整的贴出来。就你贴的这段是个条件选择语句。要修改的部分应该不是这里。

TOP

刚下了个MU在本地环境安装失败- -不过看了下源代码似乎MU默认就显示了分页标签按钮了的。

TOP

我也觉得奇怪,editor_plugin.js 里是有 page.gif 按了那符号却是 <!--more-->,可能几个月之前修改的。
(另外请问修改哪些可以预设不要写文章时使用可视化编辑器)






以下是目前使用的 editor_plugin.js ,不好意思代码太冗长不允许发帖超过10000字节,所以上传至附件,劳心看官们了。

http://download.yousendit.com/44C4CEE36AA64C42
附件: 您所在的用户组无法下载或查看附件
= 人外人,天外天 =
= 强中自有强中手 =
= 一山还有一山高 =

TOP

刚才我重新下载了MU研究了下。控制标签按钮的地方应该和单人版本不同。因为我本地安装不了没法测试,所以只能凭感觉走了……那个先说下我认为的修改办法。

你打开 ting_mce_config.php 文件搜索到

$mce_buttons =

在后面的 'wp_more', 之后增加 'wp_page',

TOP

下面是你要的默认 HTML 编辑模式。我不能保证是对的哈,因为我没法测试:

打开 wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js 搜索到下面这个

        if ( inst ) {
                edToggle(H, P);

修改成

        if ( !inst ) {
                edToggle(H, P);

TOP

多谢 alonefly,WYSIWYG 编辑可以显示 wp_page ,但是要如何实现在 HTML 的编辑呢?
在 more 的右边没有 nextpage 功能.




默认 HTML 编辑模式代码行不通,注册新人使用还是会默认为 WYSIWYG.
= 人外人,天外天 =
= 强中自有强中手 =
= 一山还有一山高 =

TOP

 12 12
发新话题