public static function settings() { $post_options = array(LastTrackPlugin::get_name_with_prefix('information'), LastTrackPlugin::get_name_with_prefix('information_message'), LastTrackPlugin::get_name_with_prefix('title'), LastTrackPlugin::get_name_with_prefix('current_song'), LastTrackPlugin::get_name_with_prefix('last_songs'), LastTrackPlugin::get_name_with_prefix('count_songs'), LastTrackPlugin::get_name_with_prefix('href')); foreach ($post_options as $option) { if (!empty($_REQUEST[$option])) { update_option($option, $_REQUEST[$option]); } } $options = array(LastTrackPlugin::INFORMATION_NONE => __('None', LastTrackPlugin::domain()), LastTrackPlugin::INFORMATION_MESSAGE => __('Specified message', LastTrackPlugin::domain()), LastTrackPlugin::INFORMATION_FULL => __('Full', LastTrackPlugin::domain())); echo ElementsLibrary::draw_label(__('Error notification', LastTrackPlugin::domain())); echo ElementsLibrary::draw_select(LastTrackPlugin::get_name_with_prefix('information'), $options, LastTrackPlugin::get_option('information')); echo ElementsLibrary::draw_label(__('Error message', LastTrackPlugin::domain())); echo ElementsLibrary::draw_text(LastTrackPlugin::get_name_with_prefix('information_message'), LastTrackPlugin::get_option('information_message')); echo ElementsLibrary::draw_label(__('Title', LastTrackPlugin::domain())); echo ElementsLibrary::draw_text(LastTrackPlugin::get_name_with_prefix('title'), LastTrackPlugin::get_option('title')); echo ElementsLibrary::draw_label(__('Current track title', LastTrackPlugin::domain())); echo ElementsLibrary::draw_text(LastTrackPlugin::get_name_with_prefix('current_song'), LastTrackPlugin::get_option('current_song')); echo ElementsLibrary::draw_label(__('Last tracks title', LastTrackPlugin::domain())); echo ElementsLibrary::draw_text(LastTrackPlugin::get_name_with_prefix('last_songs'), LastTrackPlugin::get_option('last_songs')); echo ElementsLibrary::draw_label(__('Count last songs', LastTrackPlugin::domain())); echo ElementsLibrary::draw_text(LastTrackPlugin::get_name_with_prefix('count_songs'), LastTrackPlugin::get_option('count_songs')); echo ElementsLibrary::draw_label(__('Link to radio', LastTrackPlugin::domain())); echo ElementsLibrary::draw_text(LastTrackPlugin::get_name_with_prefix('href'), LastTrackPlugin::get_option('href')); }
public function get_last_songs($count = 0) { $songs = array(); $curl = curl_init($this->url); if (!$curl) { $songs['errors'][] = __('Cannot init curl.', LastTrackPlugin::domain()); return $songs; } $options = array(CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_CONNECTTIMEOUT => $this->connect_timeout, CURLOPT_TIMEOUT => $this->timeout); if ($this->is_require_auth) { $options[CURLOPT_HTTPAUTH] = CURLAUTH_ANY; $options[CURLOPT_USERPWD] = $this->login . ':' . $this->password; } $wrong_key = $this->set_options($curl, $options); if (isset($wrong_key)) { $songs['errors'][] = printf(__("Cannot set option '%s': %s", LastTrackPlugin::domain()), curl_error($curl)); curl_close($curl); return $songs; } $xml = curl_exec($curl); if (!isset($xml)) { $songs['errors'][] = printf(__("Cannot exec curl: %s", LastTrackPlugin::domain()), curl_error($curl)); curl_close($curl); return $songs; } $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); switch ($status) { case 401: $songs['errors'][] = __('Unauthorized.', LastTrackPlugin::domain()); curl_close($curl); return $songs; case 200: break; default: $songs['errors'][] = $xml; curl_close($curl); return $songs; } $data = new SimpleXMLElement($xml); $counter = 0; foreach ($data->SONGHISTORY->SONG as $song) { $title = strval($song->TITLE); $is_exclude = false; foreach ($this->exclude as $test) { if (strpos(mb_strtoupper($title), mb_strtoupper($test)) !== false) { $is_exclude = true; break; } } if ($is_exclude) { continue; } if ($counter == 0) { $songs['current'] = $this->parse_title($title); ++$counter; continue; } $songs['lasts'][] = $this->parse_title($title); if ($count > 0 && $count == $counter) { break; } ++$counter; } return $songs; }
<div class="wrap"> <div class="icon32" id="icon-options-general"><br></div> <h2><?php _e('Last track settings', LastTrackPlugin::domain()); ?> </h2> <p></p> <form action="options.php" method="post"> <?php settings_fields(LastTrackPlugin::PREFIX); ?> <?php do_settings_sections(LastTrackPlugin::get_name_with_prefix('options')); ?> <?php submit_button(); ?> </form> </div> <?php wp_enqueue_script("jquery"); wp_enqueue_script(LastTrackPlugin::get_name_with_prefix('options_js'), plugins_url('js/options.js', __FILE__), array('jquery'));
public static function activate() { load_plugin_textdomain(LastTrackPlugin::domain(), false, dirname(plugin_basename(__FILE__)) . '/languages/'); register_activation_hook(__FILE__, array(__CLASS__, 'install')); add_action('plugins_loaded', array(__CLASS__, 'loaded')); }
<div> <?php include_once "text_with_link.php"; if (isset($songs['errors'])) { switch ($information) { case LastTrackPlugin::INFORMATION_MESSAGE: echo $information_message; break; case LastTrackPlugin::INFORMATION_FULL: foreach ($songs['errors'] as $error) { ?> <?php _e('Errors:', LastTrackPlugin::domain()); echo $error; ?> <br/><?php } break; } return; } else { ?> <div> <div class="current_song_title"><?php echo $current_song; ?> </div> <?php text_with_link($href, "<div class='current_song_artist'>{$songs['current']['artist']}</div>" . "<div class='current_song_track'>{$songs['current']['track']}</div>"); ?> <br/>
public static function admin_menu() { add_options_page(__('Last track shoutcast settings', LastTrackPlugin::domain()), __('Last tracks shoutcast', LastTrackPlugin::domain()), 'manage_options', LastTrackPlugin::PREFIX, array(__CLASS__, 'get_options')); }