get_row("SELECT ID, post_title FROM $wpdb->posts WHERE $field = '$id'"); if(empty($post->post_title)) return false; elseif(empty($text)) $text = $post->post_title; return get_permalink($post->ID); case 'category': return get_category_link($id); default: return false; } } // posts and content get sent to this function which will look for our bbcode function rbinternal_parse_content($content) { if(strpos($content, "{{post") !== FALSE OR strpos($content, "].*?)(}}|-->)/ei", "rbinternal_parse_params('\\2', '\\3')", $content); // {{ * }} for backwards compatibility return $content; } function rbinternal_parse_params($verb, $paramStr){ $paramStr = stripslashes($paramStr); $paramStr = str_replace('"', '"', $paramStr); $paramStr = str_replace("”", '"', $paramStr); preg_match_all("/(\w+)\=\"([^\"].*?)\"/i", $paramStr, $matches); if(is_array($matches[1]) AND is_array($matches[2])) foreach($matches[1] AS $i=>$key) $params[$key] = isset($matches[2][$i])? $matches[2][$i] : false; return rbinternal_render_content($verb, $params); } function rbinternal_render_content($verb, $params){ if(!isset($params['type'])) $params['type'] = 'post'; switch($verb){ case 'intlink': case 'post': //backwards compatibility if(!isset($params['id'])) return false; if(!isset($params['text'])) $params['text'] = 0; $html = ''; return $html; default: return '[rbinternal code not found]'; } } // tinyMCE functions function rbinternal_addbuttons() { global $wp_db_version; // Check for WordPress 2.5+ and that its turned on if($wp_db_version >= 7098 AND get_option('rbinternal_tinymce') == 1){ // Don't bother doing this stuff if the current user lacks permissions if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) return; // Add only in Rich Editor mode if ( get_user_option('rich_editing') == 'true') { add_filter("mce_external_plugins", "rbinternal_external_plugins_25"); add_filter('mce_buttons', 'rbinternal_mce_buttons'); add_filter("mce_css", "rbinternal_mce_css"); } // Check for WordPress 2.1+ and that its turned on }elseif(3664 <= $wp_db_version AND get_option('rbinternal_tinymce') == 1){ if ('true' == get_user_option('rich_editing')) { add_filter("mce_plugins", "rbinternal_mce_plugins", 10); add_filter("mce_buttons", "rbinternal_mce_buttons", 10); add_action('tinymce_before_init','rbinternal_external_plugins'); } } } // pre v2.5 tinymce plugin load function rbinternal_mce_plugins($plugins) { array_push($plugins, "-rbinternallinks"); return $plugins; } // pre 2.5 plugin load function rbinternal_external_plugins() { global $rbinternal_url; echo 'tinyMCE.loadPlugin("rbinternallinks", "'.$rbinternal_url.'tmce/rb-internal-links/");' . "\n"; return; } // Load the TinyMCE plugin : editor_plugin.js (wp2.5) function rbinternal_external_plugins_25($plugin_array) { global $rbinternal_url; $plugin_array['rbinternallinks'] = $rbinternal_url.'tmce/rb-internal-links/editor_plugin_25.js'; return $plugin_array; } // 2.5 + pre 2.5 button load function rbinternal_mce_buttons($buttons) { array_push($buttons, "separator", "rbinternallinks"); return $buttons; } // 2.5 + mce css load function rbinternal_mce_css($css){ global $rbinternal_url; return $css . ',' . $rbinternal_url.'styles.css'; } function rbinternal_admin_header(){ global $rbinternal_url; echo ''; } function rbinternal_add_pages(){ add_options_page('RB Internal Links', 'RB Internal Links', 8, __FILE__, 'rbinternal_admin_page'); } function rbinternal_admin_page(){ if( $_POST['rbinternal_submit'] == 'Y' ) { // Read their posted value $rbinternal_tinymce = isset($_REQUEST['rbinternal_tinymce'])? $_REQUEST['rbinternal_tinymce'] : 0; $rbinternal_post_orderby = $_REQUEST['rbinternal_post_orderby']; $rbinternal_post_sort = $_REQUEST['rbinternal_post_sort']; $rbinternal_page_orderby = $_REQUEST['rbinternal_page_orderby']; $rbinternal_page_sort = $_REQUEST['rbinternal_page_sort']; $rbinternal_return_param = $_REQUEST['rbinternal_return_param']; // Save the posted value in the database update_option('rbinternal_tinymce', $rbinternal_tinymce); update_option('rbinternal_post_orderby', $rbinternal_post_orderby); update_option('rbinternal_post_sort', $rbinternal_post_sort); update_option('rbinternal_page_orderby', $rbinternal_page_orderby); update_option('rbinternal_page_sort', $rbinternal_page_sort); update_option('rbinternal_return_param', $rbinternal_return_param); // Put an options updated message on the screen ?>

Settings updated.

RB Internal Link Settings

General

  • > Enable wysiwyg editor plugin.
  • Return the to the editor
  • Order the list of posts by and sort
  • Order the list of pages by and sort

Debug:

DB Version:

Rich Editing Enabled:

Plugin wysiwyg enabled: