Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- define( 'ONETONE_THEME_BASE_URL', get_template_directory_uri());
- define( 'ONETONE_OPTIONS_FRAMEWORK', get_template_directory().'/admin/' );
- define( 'ONETONE_OPTIONS_FRAMEWORK_URI', ONETONE_THEME_BASE_URL. '/admin/');
- define('ONETONE_OPTIONS_PREFIXED' ,'onetone_');
- define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri() . '/admin/' );
- require_once dirname( __FILE__ ) . '/admin/options-framework.php';
- require_once get_template_directory() . '/includes/admin-options.php';
- /**
- * Required: include options framework.
- **/
- load_template( trailingslashit( get_template_directory() ) . 'admin/options-framework.php' );
- /**
- * Mobile Detect Library
- **/
- if(!class_exists("Mobile_Detect")){
- load_template( trailingslashit( get_template_directory() ) . 'includes/Mobile_Detect.php' );
- }
- /**
- * Theme setup
- **/
- load_template( trailingslashit( get_template_directory() ) . 'includes/theme-setup.php' );
- /**
- * Theme Functions
- **/
- load_template( trailingslashit( get_template_directory() ) . 'includes/theme-functions.php' );
- /**
- * Theme breadcrumb
- */
- load_template( trailingslashit( get_template_directory() ) . 'includes/breadcrumb-trail.php');
- /**
- * Theme widget
- **/
- load_template( trailingslashit( get_template_directory() ) . 'includes/theme-widget.php' );
- /**
- * Meta box
- **/
- load_template( trailingslashit( get_template_directory() ) . 'includes/metabox-options.php' );
- /**
- * Include the TGM_Plugin_Activation class.
- */
- load_template( trailingslashit( get_template_directory() ) . 'includes/class-tgm-plugin-activation.php' );
- add_action( 'tgmpa_register', 'onetone_theme_register_required_plugins' );
- /**
- * Register the required plugins for this theme.
- *
- * In this example, we register two plugins - one included with the TGMPA library
- * and one from the .org repo.
- *
- * The variable passed to tgmpa_register_plugins() should be an array of plugin
- * arrays.
- *
- * This function is hooked into tgmpa_init, which is fired within the
- * TGM_Plugin_Activation class constructor.
- */
- function onetone_theme_register_required_plugins() {
- /**
- * Array of plugin arrays. Required keys are name and slug.
- * If the source is NOT from the .org repo, then source is also required.
- */
- $plugins = array(
- // This is an example of how to include a plugin pre-packaged with a theme
- array(
- 'name' => __('Magee Shortcodes','onetone'), // The plugin name
- 'slug' => 'magee-shortcodes', // The plugin slug (typically the folder name)
- 'source' => esc_url('https://downloads.wordpress.org/plugin/magee-shortcodes.zip'), // The plugin source
- 'required' => false, // If false, the plugin is only 'recommended' instead of required
- 'version' => '1.2.1', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented
- 'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch
- 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins
- 'external_url' => '', // If set, overrides default API URL and points to an external URL
- ),
- );
- /**
- * Array of configuration settings. Amend each line as needed.
- * If you want the default strings to be available under your own theme domain,
- * leave the strings uncommented.
- * Some of the strings are added into a sprintf, so see the comments at the
- * end of each line for what each argument will be.
- */
- $config = array(
- 'id' => 'onetone', // Unique ID for hashing notices for multiple instances of TGMPA.
- 'default_path' => '', // Default absolute path to pre-packaged plugins.
- 'menu' => 'onetone-install-plugins', // Menu slug.
- 'has_notices' => true, // Show admin notices or not.
- 'dismissable' => true, // If false, a user cannot dismiss the nag message.
- 'dismiss_msg' => '', // If 'dismissable' is false, this message will be output at top of nag.
- 'is_automatic' => false, // Automatically activate plugins after installation or not.
- 'message' => '', // Message to output right before the plugins table.
- 'strings' => array(
- 'page_title' => __( 'Install Required Plugins', 'onetone' ),
- 'menu_title' => __( 'Install Plugins', 'onetone' ),
- 'installing' => __( 'Installing Plugin: %s', 'onetone' ), // %s = plugin name.
- 'oops' => __( 'Something went wrong with the plugin API.', 'onetone' ),
- 'notice_can_install_required' => _n_noop( 'This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.', 'onetone' ), // %1$s = plugin name(s).
- 'notice_can_install_recommended' => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.', 'onetone' ), // %1$s = plugin name(s).
- 'notice_cannot_install' => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.', 'onetone' ), // %1$s = plugin name(s).
- 'notice_can_activate_required' => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.', 'onetone' ), // %1$s = plugin name(s).
- 'notice_can_activate_recommended' => _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.', 'onetone' ), // %1$s = plugin name(s).
- 'notice_cannot_activate' => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.', 'onetone' ), // %1$s = plugin name(s).
- 'notice_ask_to_update' => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.', 'onetone' ), // %1$s = plugin name(s).
- 'notice_cannot_update' => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.', 'onetone' ), // %1$s = plugin name(s).
- 'install_link' => _n_noop( 'Begin installing plugin', 'Begin installing plugins', 'onetone' ),
- 'activate_link' => _n_noop( 'Begin activating plugin', 'Begin activating plugins', 'onetone' ),
- 'return' => __( 'Return to Required Plugins Installer', 'onetone' ),
- 'plugin_activated' => __( 'Plugin activated successfully.', 'onetone' ),
- 'complete' => __( 'All plugins installed and activated successfully. %s', 'onetone' ), // %s = dashboard link.
- 'nag_type' => 'updated' // Determines admin notice type - can only be 'updated', 'update-nag' or 'error'.
- )
- );
- tgmpa( $plugins, $config );
- }
- add_filter('widget_text', 'do_shortcode');
- class Tribe_Advance_Minical
- {
- protected $target_date = false;
- /**
- * Sets up auto advance for minicalendar widgets. If an optional target date is provided that will be used to
- * set the month.
- *
- * @param bool $target_date
- */
- public function __construct( $target_date = false ) {
- if ( is_admin() ) return;
- $this->target_date = $target_date;
- add_action( 'wp_loaded', array( $this, 'set_target_date' ) );
- add_filter( 'widget_display_callback', array( $this, 'advance_minical' ), 20, 2 );
- }
- /**
- * Basic check to help filter out spurious date formats or automatically determine
- * the next most appropriate date to use.
- */
- public function set_target_date() {
- if ( ! is_string($this->target_date) || 1 !== preg_match( '#^\d{4}-\d{2}(-\d{2})?$# ', $this->target_date ) )
- $this->target_date = $this->next_upcoming_date();
- }
- public function advance_minical( $instance, $widget ) {
- if ( 'tribe-mini-calendar' !== $widget->id_base || isset( $instance['eventDate'] ) ) return $instance;
- if ( date( 'Y-m' ) === $this->target_date) return;
- add_action( 'tribe_before_get_template_part', array( $this, 'modify_list_query' ), 5 );
- $instance['eventDate'] = $this->target_date;
- return $instance;
- }
- public function modify_list_query( $template ) {
- if ( false === strpos( $template, 'mini-calendar/list.php' ) ) return;
- add_action( 'parse_query', array( $this, 'amend_list_query' ) );
- }
- public function amend_list_query( $query ) {
- remove_action( 'parse_query', array( $this, 'amend_list_query' ) ); // Run this once only
- $the_query = $query->query_vars;
- $the_query['start_date'] = $this->target_date . '-01';
- $last_day = Tribe__Events__Date_Utils::getLastDayOfMonth( strtotime( $the_query['start_date'] ) );
- $the_query['end_date'] = substr_replace( $the_query['start_date'], $last_day, -2 );
- $the_query['end_date'] = Tribe__Events__Date_Utils::endOfDay( $the_query['end_date'] );
- $query->query_vars = $the_query;
- }
- protected function next_upcoming_date() {
- $next_event = tribe_get_events( array(
- 'eventDisplay' => 'list',
- 'posts_per_page' => 1,
- 'start_date' => date( 'Y-m-d' )
- ));
- $start_date = date( 'Y-m' );
- if ( !empty( $next_event ) || isset( $next_event[0] ) ) {
- $next_event_date = tribe_get_start_date( $next_event[0]->ID, false, 'Y-m' );
- // Prevent calendar from rewinding to the start of a currently ongoing event
- $start_date = ( $next_event_date > $start_date ) ? $next_event_date : $start_date;
- }
- return $start_date;
- }
- }
- /**
- * If we don't pass a parameter it will try to advance the calendar to the same month as the next upcoming event.
- * However, we can also pass in a specific month:
- *
- * new Tribe_Advance_Minical( '2014-12' ); // Set it to December 2014
- */
- new Tribe_Advance_Minical();
Advertisement
Add Comment
Please, Sign In to add comment