diff --git a/README.md b/README.md index 30d346f..83d1042 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# WP-Liveticker 2 +# Liveticker (by stklcode) * Contributors: Stefan Kalscheuer * Tags: liveticker, feed, rss @@ -15,9 +15,6 @@ A simple ajaxified liveticker plugin for WordPress. WP-Liveticker 2 is a simple liveticker plugin for WordPress. Easily add multiple livetickers, add them to posts with shortcode or use them as Widget. -This plugin has been inspired by the _wp-liveticker_ Plugin by _DasLlama_ which is no longer available. -However the code is now completely rewritten from scratch - ### Features * Handle multiple Tickers diff --git a/RoboFile.php b/RoboFile.php index 3eae760..192bf48 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -1,13 +1,13 @@ * - * @package WP Liveticker 2 + * @package Liveticker * @version 1.0.0 */ @@ -19,8 +19,8 @@ use Symfony\Component\Finder\Finder; * Class RoboFile */ class RoboFile extends Tasks { - const PROJECT_NAME = 'wp-liveticker2'; - const SVN_URL = 'https://plugins.svn.wordpress.org/wp-liveticker2'; + const PROJECT_NAME = 'stklcode-liveticker'; + const SVN_URL = 'https://plugins.svn.wordpress.org/stklcode-liveticker'; const OPT_TARGET = 'target'; const OPT_SKIPTEST = 'skipTests'; @@ -143,7 +143,7 @@ class RoboFile extends Tasks { 'styles' => $this->target_dir . '/' . $this->final_name . '/styles', 'views' => $this->target_dir . '/' . $this->final_name . '/views', ) )->run(); - $this->_copy( 'wp-liveticker2.php', $this->target_dir . '/' . $this->final_name . '/wp-liveticker2.php' ); + $this->_copy( 'stklcode-liveticker.php', $this->target_dir . '/' . $this->final_name . '/stklcode-liveticker.php' ); $this->_copy( 'README.md', $this->target_dir . '/' . $this->final_name . '/README.md' ); $this->_copy( 'LICENSE.md', $this->target_dir . '/' . $this->final_name . '/LICENSE.md' ); } @@ -409,7 +409,7 @@ class RoboFile extends Tasks { if ( is_dir( $this->target_dir . '/svn' ) ) { $this->taskSvnStack() ->stopOnFail() - ->dir( $this->target_dir . '/svn/wp-liveticker2' ) + ->dir( $this->target_dir . '/svn/stklcode-liveticker' ) ->update() ->run(); } else { @@ -433,7 +433,7 @@ class RoboFile extends Tasks { private function commitVCS( $to_add, $msg ) { $task = $this->taskSvnStack() ->stopOnFail() - ->dir( $this->target_dir . '/svn/wp-liveticker2' ); + ->dir( $this->target_dir . '/svn/stklode-liveticker' ); if ( is_array( $to_add ) ) { foreach ( $to_add as $ta ) { @@ -452,7 +452,7 @@ class RoboFile extends Tasks { * @return void */ private function updateVCSreadme() { - $trunk_dir = $this->target_dir . '/svn/wp-liveticker2/trunk'; + $trunk_dir = $this->target_dir . '/svn/stklcode-liveticker/trunk'; $this->_copy( $this->target_dir . '/' . $this->final_name . 'README.md', $trunk_dir . 'README.md' ); } @@ -463,7 +463,7 @@ class RoboFile extends Tasks { */ private function updateVCStrunk() { // Clean trunk directory. - $trunk_dir = $this->target_dir . '/svn/wp-liveticker2/trunk'; + $trunk_dir = $this->target_dir . '/svn/stklcode-liveticker/trunk'; $this->taskCleanDir( $trunk_dir )->run(); // Copy built bundle to trunk. @@ -477,9 +477,9 @@ class RoboFile extends Tasks { */ private function updateVCStag() { // Clean tag directory if it exists. - $tag_dir = $this->target_dir . '/svn/wp-liveticker2/tags/' . $this->version; + $tag_dir = $this->target_dir . '/svn/stklcode-liveticker/tags/' . $this->version; if ( is_dir( $tag_dir ) ) { - $this->taskCleanDir( $this->target_dir . '/svn/wp-liveticker2/tags/' . $this->version )->run(); + $this->taskCleanDir( $this->target_dir . '/svn/stklcode-liveticker/tags/' . $this->version )->run(); } else { $this->_mkdir( $tag_dir ); } diff --git a/composer.json b/composer.json index 0c4f3e1..3a7ed91 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "stklcode/wp-liveticker2", + "name": "stklcode/wp-liveticker", "version": "1.0.0", "description": "A simple Liveticker for Wordpress.", "keywords": [ @@ -68,8 +68,8 @@ "phpcbf --standard=phpcs.xml" ], "minify": [ - "minifycss styles/wp-liveticker2.css > styles/wp-liveticker2.min.css", - "minifyjs scripts/wp-liveticker2.js > scripts/wp-liveticker2.min.js" + "minifycss styles/liveticker.css > styles/liveticker.min.css", + "minifyjs scripts/liveticker.js > scripts/liveticker.min.js" ] }, "repositories": [ diff --git a/includes/class-wpliveticker2-admin.php b/includes/class-scliveticker-admin.php similarity index 63% rename from includes/class-wpliveticker2-admin.php rename to includes/class-scliveticker-admin.php index e34596a..89888ed 100644 --- a/includes/class-wpliveticker2-admin.php +++ b/includes/class-scliveticker-admin.php @@ -1,10 +1,10 @@ '; - echo '' . esc_html( $total_files->publish ) . ''; - echo '' . esc_html__( 'Ticks', 'wplt2' ) . ''; + echo '' . esc_html( $total_files->publish ) . ''; + echo '' . esc_html__( 'Ticks', 'stklcode-liveticker' ) . ''; echo ''; } @@ -39,13 +37,13 @@ class WPLiveticker2_Admin extends WPLiveticker2 { */ public static function register_settings_page() { add_submenu_page( - 'edit.php?post_type=wplt2_tick', - 'Liveticker2 ' . __( 'Settings', 'wplt2' ), - __( 'Settings', 'wplt2' ), + 'edit.php?post_type=scliveticker_tick', + 'Liveticker ' . __( 'Settings', 'stklcode-liveticker' ), + __( 'Settings', 'stklcode-liveticker' ), 'manage_options', - 'wplt2_settings', + 'scliveticker_settings', array( - 'WPLiveticker2_Admin', + __CLASS__, 'settings_page', ) ); @@ -58,53 +56,53 @@ class WPLiveticker2_Admin extends WPLiveticker2 { */ public static function register_settings() { register_setting( - 'wplt2_settings', - 'wplt2', - array( 'WPLiveticker2_Admin', 'validate_settings' ) + 'scliveticker_settings', + self::OPTION, + array( __CLASS__, 'validate_settings' ) ); // Form sections. add_settings_section( - 'wplt2_settings_general', - __( 'General', 'wplt2' ), - array( 'WPLiveticker2_Admin', 'settings_general_section' ), - 'wplt2-settings-page' + 'scliveticker_settings_general', + __( 'General', 'stklcode-liveticker' ), + array( __CLASS__, 'settings_general_section' ), + 'scliveticker-settings-page' ); // Form fields. add_settings_field( 'enable_ajax', - __( 'Use AJAX', 'wplt2' ), - array( 'WPLiveticker2_Admin', 'settings_enable_ajax_field' ), - 'wplt2-settings-page', - 'wplt2_settings_general', + __( 'Use AJAX', 'stklcode-liveticker' ), + array( __CLASS__, 'settings_enable_ajax_field' ), + 'scliveticker-settings-page', + 'scliveticker_settings_general', array( 'label_for' => esc_attr( self::OPTION ) . '-enable-ajax' ) ); add_settings_field( 'poll_interval', - __( 'AJAX poll interval', 'wplt2' ), - array( 'WPLiveticker2_Admin', 'settings_poll_interval_field' ), - 'wplt2-settings-page', - 'wplt2_settings_general', + __( 'AJAX poll interval', 'stklcode-liveticker' ), + array( __CLASS__, 'settings_poll_interval_field' ), + 'scliveticker-settings-page', + 'scliveticker_settings_general', array( 'label_for' => esc_attr( self::OPTION ) . '-poll-interval' ) ); add_settings_field( 'enable_css', - __( 'Default CSS Styles', 'wplt2' ), - array( 'WPLiveticker2_Admin', 'settings_enable_css_field' ), - 'wplt2-settings-page', - 'wplt2_settings_general', + __( 'Default CSS Styles', 'stklcode-liveticker' ), + array( __CLASS__, 'settings_enable_css_field' ), + 'scliveticker-settings-page', + 'scliveticker_settings_general', array( 'label_for' => esc_attr( self::OPTION ) . '-enable-css' ) ); add_settings_field( 'show_feed', - __( 'Show RSS feed', 'wplt2' ), - array( 'WPLiveticker2_Admin', 'settings_show_feed_field' ), - 'wplt2-settings-page', - 'wplt2_settings_general', + __( 'Show RSS feed', 'stklcode-liveticker' ), + array( __CLASS__, 'settings_show_feed_field' ), + 'scliveticker-settings-page', + 'scliveticker_settings_general', array( 'label_for' => esc_attr( self::OPTION ) . '-show-feed' ) ); } @@ -134,8 +132,8 @@ class WPLiveticker2_Admin extends WPLiveticker2 { $checked = self::$_options['enable_ajax']; echo ' '; - esc_html_e( 'Enable', 'wplt2' ); - echo '

' . esc_html__( 'Disable this option to not use AJAX update. This means all liveticker widgets and shortcodes are only updated once on site load.', 'wplt2' ) . '

'; + esc_html_e( 'Enable', 'stklcode-liveticker' ); + echo '

' . esc_html__( 'Disable this option to not use AJAX update. This means all liveticker widgets and shortcodes are only updated once on site load.', 'stklcode-liveticker' ) . '

'; } /** @@ -147,8 +145,8 @@ class WPLiveticker2_Admin extends WPLiveticker2 { $poll_interval = self::$_options['poll_interval']; echo ' '; - esc_html_e( 'seconds', 'wplt2' ); - echo '

' . esc_html__( 'Interval (in seconds) to update ticker if AJAX is enabled.', 'wplt2' ) . '

'; + esc_html_e( 'seconds', 'stklcode-liveticker' ); + echo '

' . esc_html__( 'Interval (in seconds) to update ticker if AJAX is enabled.', 'stklcode-liveticker' ) . '

'; } @@ -161,8 +159,8 @@ class WPLiveticker2_Admin extends WPLiveticker2 { $checked = self::$_options['enable_css']; echo ' '; - esc_html_e( 'Enable', 'wplt2' ); - echo '

' . esc_html__( 'Disable this option to remove the default styling CSS file.', 'wplt2' ) . '

'; + esc_html_e( 'Enable', 'stklcode-liveticker' ); + echo '

' . esc_html__( 'Disable this option to remove the default styling CSS file.', 'stklcode-liveticker' ) . '

'; } /** @@ -174,8 +172,8 @@ class WPLiveticker2_Admin extends WPLiveticker2 { $checked = self::$_options['show_feed']; echo ' '; - esc_html_e( 'Enable', 'wplt2' ); - echo '

' . esc_html__( 'Can be overwritten in shortcode.', 'wplt2' ) . '

'; + esc_html_e( 'Enable', 'stklcode-liveticker' ); + echo '

' . esc_html__( 'Can be overwritten in shortcode.', 'stklcode-liveticker' ) . '

'; } /** @@ -184,7 +182,7 @@ class WPLiveticker2_Admin extends WPLiveticker2 { * @return void */ public static function settings_page() { - include WPLT2_DIR . 'views/settings-page.php'; + include SCLIVETICKER_DIR . 'views/settings-page.php'; } /** diff --git a/includes/class-wpliveticker2-system.php b/includes/class-scliveticker-system.php similarity index 72% rename from includes/class-wpliveticker2-system.php rename to includes/class-scliveticker-system.php index 330489c..cc24a4e 100644 --- a/includes/class-wpliveticker2-system.php +++ b/includes/class-scliveticker-system.php @@ -1,10 +1,10 @@ 'wplt2_tick' ) ); + $ticks = new WP_Query( array( 'post_type' => 'scliveticker_tick' ) ); foreach ( $ticks->get_posts() as $tick ) { wp_delete_post( $tick->ID, true ); } // Temporarily register taxonomy to delete it. - register_taxonomy( 'wplt2_ticker', array( 'wplt2_tick' ) ); + register_taxonomy( 'scliveticker_ticker', array( 'scliveticker_tick' ) ); // Delete tickers. $tickers = get_terms( array( - 'taxonomy' => 'wplt2_ticker', + 'taxonomy' => 'scliveticker_ticker', 'hide_empty' => false, ) ); foreach ( $tickers as $ticker ) { - wp_delete_term( $ticker->term_id, 'wplt2_ticker' ); + wp_delete_term( $ticker->term_id, 'scliveticker_ticker' ); } // Unregister taxonomy again. - unregister_taxonomy( 'wplt2_ticker' ); + unregister_taxonomy( 'scliveticker_ticker' ); // Delete the option. delete_option( self::OPTION ); diff --git a/includes/class-wpliveticker2-widget.php b/includes/class-scliveticker-widget.php similarity index 72% rename from includes/class-wpliveticker2-widget.php rename to includes/class-scliveticker-widget.php index ebdd2ce..c381ad5 100644 --- a/includes/class-wpliveticker2-widget.php +++ b/includes/class-scliveticker-widget.php @@ -1,10 +1,10 @@ '; $args = array( - 'post_type' => 'wplt2_tick', + 'post_type' => 'scliveticker_tick', 'tax_query' => array( array( - 'taxonomy' => 'wplt2_ticker', + 'taxonomy' => 'scliveticker_ticker', 'field' => 'slug', 'terms' => $category, ), @@ -93,7 +93,7 @@ class WPLiveticker2_Widget extends WP_Widget { while ( $wp_query->have_posts() && ( $count <= 0 || ++ $cnt < $count ) ) { $wp_query->the_post(); // @codingStandardsIgnoreLine - echo WPLiveticker2::tick_html_widget( + echo SCLiveticker::tick_html_widget( esc_html( get_the_time( 'd.m.Y - H.i' ) ), get_the_title(), ( '1' === $highlight && get_the_time( 'U' ) > ( time() - $highlight_time ) ) @@ -103,8 +103,8 @@ class WPLiveticker2_Widget extends WP_Widget { echo ''; if ( $link ) { - echo ''; } // @codingStandardsIgnoreLine @@ -139,9 +139,9 @@ class WPLiveticker2_Widget extends WP_Widget { $highlight = isset( $instance['highlight'] ) ? esc_attr( $instance['highlight'] ) : '0'; $highlight_time = isset( $instance['highlight_time'] ) ? esc_attr( $instance['highlight_time'] ) : '0'; $ajax = isset( $instance['ajax'] ) ? esc_attr( $instance['ajax'] ) : '0'; - $categories = get_terms( 'wplt2_ticker', 'orderby=name&order=ASC' ); + $categories = get_terms( 'scliveticker_ticker', 'orderby=name&order=ASC' ); - include WPLT2_DIR . 'views/widget-form.php'; + include SCLIVETICKER_DIR . 'views/widget-form.php'; } /** diff --git a/includes/class-wpliveticker2.php b/includes/class-scliveticker.php similarity index 68% rename from includes/class-wpliveticker2.php rename to includes/class-scliveticker.php index 755881c..1106c78 100644 --- a/includes/class-wpliveticker2.php +++ b/includes/class-scliveticker.php @@ -1,10 +1,10 @@ _x( 'Ticker', 'taxonomy general name' ), 'singular_name' => _x( 'Ticker', 'taxonomy singular name' ), - 'search_items' => __( 'Search Tickers', 'wplt2' ), - 'all_items' => __( 'All Tickers', 'wplt2' ), - 'parent_item' => __( 'Parent Ticker', 'wplt2' ), - 'parent_item_colon' => __( 'Parent Ticker:', 'wplt2' ), - 'edit_item' => __( 'Edit Ticker', 'wplt2' ), - 'update_item' => __( 'Update Ticker', 'wplt2' ), - 'add_new_item' => __( 'Add New Ticker', 'wplt2' ), - 'new_item_name' => __( 'New Ticker', 'wplt2' ), - 'menu_name' => __( 'Ticker', 'wplt2' ), + 'search_items' => __( 'Search Tickers', 'stklcode-liveticker' ), + 'all_items' => __( 'All Tickers', 'stklcode-liveticker' ), + 'parent_item' => __( 'Parent Ticker', 'stklcode-liveticker' ), + 'parent_item_colon' => __( 'Parent Ticker:', 'stklcode-liveticker' ), + 'edit_item' => __( 'Edit Ticker', 'stklcode-liveticker' ), + 'update_item' => __( 'Update Ticker', 'stklcode-liveticker' ), + 'add_new_item' => __( 'Add New Ticker', 'stklcode-liveticker' ), + 'new_item_name' => __( 'New Ticker', 'stklcode-liveticker' ), + 'menu_name' => __( 'Ticker', 'stklcode-liveticker' ), ); register_taxonomy( - 'wplt2_ticker', - array( 'wplt2_tick' ), + 'scliveticker_ticker', + array( 'scliveticker_tick' ), array( 'hierarchical' => true, 'labels' => $labels, @@ -139,19 +139,19 @@ class WPLiveticker2 { // Post type arguments. $args = array( 'labels' => array( - 'name' => __( 'Ticks', 'wplt2' ), - 'singular_name' => __( 'Tick', 'wplt2' ), - 'add_new' => __( 'Add New', 'wplt2' ), - 'add_new_item' => __( 'Add New Tick', 'wplt2' ), - 'edit_item' => __( 'Edit Tick', 'wplt2' ), - 'new_item' => __( 'New Tick', 'wplt2' ), - 'all_items' => __( 'All Ticks', 'wplt2' ), - 'view_item' => __( 'View Tick', 'wplt2' ), - 'search_items' => __( 'Search Ticks', 'wplt2' ), - 'not_found' => __( 'No Ticks found', 'wplt2' ), - 'not_found_in_trash' => __( 'No Ticks found in Trash', 'wplt2' ), + 'name' => __( 'Ticks', 'stklcode-liveticker' ), + 'singular_name' => __( 'Tick', 'stklcode-liveticker' ), + 'add_new' => __( 'Add New', 'stklcode-liveticker' ), + 'add_new_item' => __( 'Add New Tick', 'stklcode-liveticker' ), + 'edit_item' => __( 'Edit Tick', 'stklcode-liveticker' ), + 'new_item' => __( 'New Tick', 'stklcode-liveticker' ), + 'all_items' => __( 'All Ticks', 'stklcode-liveticker' ), + 'view_item' => __( 'View Tick', 'stklcode-liveticker' ), + 'search_items' => __( 'Search Ticks', 'stklcode-liveticker' ), + 'not_found' => __( 'No Ticks found', 'stklcode-liveticker' ), + 'not_found_in_trash' => __( 'No Ticks found in Trash', 'stklcode-liveticker' ), 'parent_item_colon' => '', - 'menu_name' => __( 'Liveticker', 'wplt2' ), + 'menu_name' => __( 'Liveticker', 'stklcode-liveticker' ), ), 'public' => false, 'publicly_queryable' => true, @@ -160,11 +160,11 @@ class WPLiveticker2 { 'menu_icon' => 'dashicons-rss', 'capability_type' => 'post', 'supports' => array( 'title', 'editor', 'author' ), - 'taxonomies' => array( 'wplt2_ticker' ), + 'taxonomies' => array( 'scliveticker_ticker' ), 'has_archive' => true, ); - register_post_type( 'wplt2_tick', $args ); + register_post_type( 'scliveticker_tick', $args ); } /** @@ -198,21 +198,21 @@ class WPLiveticker2 { $show_feed = 1 === self::$_options['show_feed']; } - $output = '