5 updates you should consider doing, referencing code from (latest) version 1.9.32:
1. load_plugin_textdomain() is using a deprecated argument.
lib/Yapb.class.php, line 120:
this:
load_plugin_textdomain('yapb', 'wp-content/plugins/' . YAPB_PLUGINDIR_NAME . '/lang/');
change to:
load_plugin_textdomain('yapb', false, YAPB_PLUGINDIR_NAME . '/lang/');
==========
2. get_settings() has been deprecated. Use get_option()
lib/Yapb.class.php, line 120:
this:
if (get_settings('yapb_form_on_page_form')) {
change to:
if (get_option('yapb_form_on_page_form')) {
also, in lib/YapbImage.class.php
... too many to mention Do a search/replace.
=======
3. wp_specialchars() is deprecated. Use esc_attr()
lib/Yapb.class.php
this:
$category->name = wp_specialchars($category->name);
change to:
$category->name = esc_attr($category->name);
========
4. Use a defined value already available, one that works as you mean it to here.
lib/includes/Yapbconstants.script.php, line 75-ish (i've modded my version, just find this text:)
this:
define('YAPB_PLUGIN_PATH', get_option('siteurl') . '/wp-content/plugins/' . YAPB_PLUGINDIR_NAME . '/');
change to:
define('YAPB_PLUGIN_PATH', WP_PLUGIN_URL . '/' . YAPB_PLUGINDIR_NAME . '/');
=======
5. This is not an easy problem to solve: In lib/includes/Yapbconstants.script.php, line 8 or so, you're taking a completely wild guess as to where wp-config.php is located. Unfortunately, with the ability for developers to put the wp-content, plugins, and themes directories outside of the WordPress installation directory, you - as the author - can't really know what that location will be.
One idea though: I've played with writing a function for the plugin activation hook that writes an XML file with the important bits of info in my plugin's directory; then, I just treat that XML file as a cheap/dirty data source, using SimpleXML to pull out the info i wrote to it, like WP_PLUGIN_DIR, ABS_PATH, WP_PLUGIN_URL, etc.
like:
register_activation_hook(__FILE__, 'myplugin_register_plugin');
if(!function_exists('myplugin_register_plugin')):
function myplugin_register_plugin($server = 'production'){
// create our xml object
$bootstrap_info = new SimpleXMLElement('<bootstrap_info></bootstrap_info>');
// add the WordPress node + path & url
$Wordpress = $bootstrap_info->addChild('WordPress');
$Wordpress->addAttribute('plugins_dir',WP_PLUGIN_DIR);
$Wordpress->addAttribute('plugins_url',WP_PLUGINS_URL);
$Wordpress->addAttribute('abspath',ABSPATH);
// save it all
saveXMLFormatted($bootstrap_info, dirname(__FILE__) . '/bootstrap_info.xml');
}
endif;
if(!function_exists('saveXMLFormatted')):
function saveXMLFormatted( $xml, $filename ){
// write data to file
// use DOMDocument->saveXML instead of SimpleXML->asXML because we want pretty formatting
$doc = new DOMDocument('1.0');
$doc->preserveWhiteSpace = false;
$doc->loadXML( $xml->asXML());
$doc->formatOutput = true;
file_put_contents( $filename, $doc->saveXML());
}
endif;
// bootstrap WordPress
$bootstrap_info = simplexml_load_file(dirname(__FILE__) . '/bootstrap_info.xml');
require_once($bootstrap_info->WordPress['abspath'] . '/wp-config.php)