$number){ $string = substr($string,0,$number).'...'; } return $string; } /** * Same as array_walk, but also useable for multidimensional arrays * Return: true */ function aXMLreader_multiarray_walk($array, $callback){ array_walk($array, $callback); foreach($array as $key => $value){ if(!is_string($value[0])){ aXMLreader_multiarray_walk($value, $callback); } } return true; } /** * Puts the data from (multi)array_walk into a global variable * Return: true/false & filled global variable */ function aXMLreader_show_data($value, $key){ global $plugindata, $taglist; if(is_string($value) && $key != '0'){ $taglist .= ''.$key.''.aXMLreader_cutstr($value,50).'['.$plugindata['shortnicename'].':'.$key.']'; return true; } return false; } /** * Puts the data from (multi)array_walk into two global arrays * Return: true/false & filled global arrays */ function aXMLreader_fill_replace_arrays($value, $key){ global $patterns, $replacements, $plugindata; if(is_string($value) && $key != '0'){ $patterns[] = '['.$plugindata['shortnicename'].':'.$key.']'; $replacements[] = $value; return true; } return false; } // Back end plugin code /** * Write the admin link in the Settings menu * Return: - */ function aXMLreader_AdminMenu(){ global $plugindata; add_options_page($plugindata['fullname'], $plugindata['shortname'], 9, $plugindata['nicename'], 'aXMLreader_AdminPage'); add_action('admin_init', 'register_aXMLreader_settings'); } /** * Register allowed settings fields */ function register_aXMLreader_settings() { global $plugindata; register_setting($plugindata['nicename'], $plugindata['nicename'].'_feed'); } /** * Show the admin page to manage feeds * Return: - (echo is used) */ function aXMLreader_AdminPage(){ global $plugindata, $taglist; echo '

'.$plugindata['fullname'].' '.__('Options', 'advanced-xml-reader').'

'; settings_fields($plugindata['nicename']); echo '
'.__('XML file', 'advanced-xml-reader').'

'; if($feed = get_option($plugindata['nicename'].'_feed')){ $curl = new CURL(); $curl->enableCache(); $data = $curl->get($feed); $xml = new SimpleXmlElement($data, LIBXML_NOCDATA); aXMLreader_multiarray_walk($xml, 'aXMLreader_show_data'); echo ' '.$taglist.'
'.__('XML tag', 'advanced-xml-reader').''.__('Value', 'advanced-xml-reader').''.__('How to use in a post', 'advanced-xml-reader').'
'; } } //Front end plugin code /** * Replaces the tags used in posts in real values * Return: $text (string) */ function aXMLreader_ParseTags($text){ global $plugindata, $patterns, $replacements; if($feed = get_option($plugindata['nicename'].'_feed')){ $curl = new CURL(); $curl->enableCache(); $data = $curl->get($feed); $xml = new SimpleXmlElement($data, LIBXML_NOCDATA); aXMLreader_multiarray_walk($xml,'aXMLreader_fill_replace_arrays'); $text = str_replace($patterns, $replacements, $text); } return $text; } ?>