Tag: plugins
Add TinyMCE to author description in Wordpress
Ok, second chance to me, after the Restrict authors access to edit comments plugin I did the second one.
I think that the name is quite explicative: I wanted to add the wysiwyg to the user description .
-
<?php
-
/*
-
Plugin Name: Add TinyMce to Author Profile
-
Plugin URI: http://www.laboratoriocaffeina.it/development/2007/08/22/add-tinymce-to-author-description-in-wordpress.html
-
Description: Adds WYSIWYG to Author profile
-
Version: 0.1
-
Author: cedmax
-
Author URI: http://www.dioblog.it
-
*/
-
-
add_action('admin_head', 'add_tinymce');
-
}
-
-
remove_filter('pre_user_description', 'wp_filter_kses');
-
add_filter('pre_user_description', 'wpautop');
-
-
function add_tinymce() {?>
-
-
<script type="text/javascript" src="<?php echo get_settings('home'); ?>/wp-includes/js/tinymce/tiny_mce_gzip.php?ver=20070326"></script>
-
<script type="text/javascript">
-
//<![CDATA[
-
-
function brstonewline(element_id, html, body) {
-
html = html.replace(/<br\s*\/>/gi, '\n');;
-
return html;
-
}
-
-
function insertHTML(html) {
-
tinyMCE.execCommand('mceInsertContent',false, html);
-
}
-
-
tinyMCE.init({
-
mode : "exact",
-
elements : "description",
-
theme : "advanced",
-
theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,undo,redo,link,unlink",
-
force_p_newlines : false,
-
force_br_newlines : true,
-
gecko_spellcheck : true,
-
theme_advanced_buttons2 : "",
-
theme_advanced_buttons3 : "",
-
theme_advanced_toolbar_location : "top",
-
theme_advanced_toolbar_align : "left",
-
save_callback : "brstonewline",
-
height : "300",
-
extended_valid_elements : "a[name|href|title],font[face|size|color|style],span[class|align|style]"
-
});
-
//]]>
-
</script>
-
-
<?php } ?>
INSTRUCTION:
download v.0.1 and copy the file into wp-content/plugins.
activate it.
Now you should see in the edit user details the wysiwyg editor.
You can manage to modify TinyMCE script, following instruction
Hope you like it
tested on wordpress 2.2
IN ORDER TO LET IT WORK IN 2.5
replace this part of code:
-
function add_tinymce() {?>
-
-
<script type="text/javascript" src="<?php echo get_settings('home'); ?>/wp-includes/js/tinymce/tiny_mce_gzip.php?ver=20070326"></script>
-
<script type="text/javascript">
-
//<![CDATA[
-
-
function brstonewline(element_id, html, body) {
-
html = html.replace(/<br\s*\/>/gi, '\n');;
-
return html;
-
}
-
-
function insertHTML(html) {
-
tinyMCE.execCommand('mceInsertContent',false, html);
-
}
-
-
tinyMCE.init({
-
mode : "exact",
-
elements : "description",
-
theme : "advanced",
-
theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,undo,redo,link,unlink",
-
force_p_newlines : false,
-
force_br_newlines : true,
-
gecko_spellcheck : true,
-
theme_advanced_buttons2 : "",
-
theme_advanced_buttons3 : "",
-
theme_advanced_toolbar_location : "top",
-
theme_advanced_toolbar_align : "left",
-
save_callback : "brstonewline",
-
height : "300",
-
extended_valid_elements : "a[name|href|title],font[face|size|color|style],span[class|align|style]"
-
});
-
//]]>
-
</script>
-
<?php } ?>
with this:
-
function add_tinymce() {?>
-
-
<script type="text/javascript" src="<?php echo get_settings('home'); ?>/wp-admin/js/editor.js?ver=20080325"></script>
-
-
<script type="text/javascript" src="<?php echo get_settings('home'); ?>/wp-includes/js/tinymce/tiny_mce_config.php?ver=20080327"></script>
-
<script type="text/javascript">
-
//<![CDATA[
-
window.onload= function() {
-
tinyMCE.execCommand("mceAddControl", false, "description");
-
}
-
// ]]>
-
-
</script>
-
-
<?php } ?>
Restrict authors access to edit comments, the plugin
It's my first wordpress plugin, please be kind ;-)
I've noticed that in wordpress (surely 2.2, not tested on previous, so please tell me if it works) there's no capability separation for editing post and comments (on their post). Even using the Role Manager Plugin.
from wordpress codex:
Manage->Comments -- meaning: "show post"-link; "edit post"-, "edit comment"- and "delete comment"-links only on own posts since edit-comment.php (http://trac.wordpress.org/file/trunk/wp-admin/edit-comments.php) looks for "current_user_can('edit_post', $comment->comment_post_ID)"'
I run a lot of multiple authors blogs and sometimes I need only administrators to edit comments (and I'm not the only one).
So I developed this:
-
<?php
-
/*
-
Plugin Name: Restrict author access to edit comments
-
Plugin URI: http://www.laboratoriocaffeina.it/development/2007/07/20/restrict-authors-access-to-edit-comments-the-plugin.html
-
Description: Block author access to edit comments, leave it only for admin and editors
-
Version: 0.3
-
Author: cedmax
-
Author URI: http://www.dioblog.it
-
*/
-
-
function check_user_capabilities() {
-
global $user_level;
-
-
-
if ($user_level <9){
-
echo "<div class='wrap'><h2>Restricted area</h2></div>";
-
include('admin-footer.php');
-
-
}
-
}
-
}
-
-
add_action('init', 'check_user_capabilities');
-
-
?>
update
thanks to brad I found out that the direct edit comment link in wordpress points to comments.php and not to edit-comments.php.
so I've changed the script.
update 2
Thanks to Fred (sorry I didn't understand immediatly) and Claus I spotted out another error in version 0.2
Now I've done the v.0.3 changing the hook function: now it works not on the content but on the initialization of the page, so it is not possible for the author to work on comments at all. thanks to everyone :-)
simply download v.0.3, unzip, put the .php file under wp-contents/plugins and activate it from wordpress plugins panel.
