Пример #1
0
 /**
  * Signs a user up to the email optin list for Thomas Griffin Media.
  *
  * @since 1.0.0
  */
 public function signup()
 {
     // Validate the fields before loading the API .
     if (!isset($_REQUEST['email']) || isset($_REQUEST['email']) && empty($_REQUEST['email']) || !is_email($_REQUEST['email'])) {
         echo json_encode(array('error' => Tgmsp_Lite_Strings::get_instance()->strings['email_error']));
         die;
     }
     // Add the user to the email newsletter list.
     require_once plugin_dir_path(dirname(dirname(__FILE__))) . 'madmimi/MadMimi.class.php';
     $mimi = new MadMimi('*****@*****.**', '709d4d36e5690d97382f36ee11d7a268');
     // Add to general email list.
     $info = array('email' => $_REQUEST['email'], 'add_list' => 'Soliloquy Lite');
     $mimi->AddUser($info);
     // Ensure that we properly die at the end of processing the request.
     echo json_encode(array('success' => Tgmsp_Lite_Strings::get_instance()->strings['email_success']));
     die;
 }
Пример #2
0
 /**
  * Adds contextual help to Soliloquy pages.
  *
  * @since 1.0.0
  *
  * @global object $post The current post object
  */
 public function contextual_help()
 {
     global $post;
     $current_screen = get_current_screen();
     /** Set a 'global' help sidebar for all Soliloquy related pages */
     if (Tgmsp_Lite::is_soliloquy_screen()) {
         $current_screen->set_help_sidebar(sprintf('<p><strong>%1$s</strong></p><p><strong><a href="' . apply_filters('tgmsp_affiliate_url', 'http://soliloquywp.com/pricing/?utm_source=orgrepo&utm_medium=link&utm_campaign=Soliloquy%2BLite') . '" title="%2$s" target="_blank">%2$s</a></strong></p>', Tgmsp_Lite_Strings::get_instance()->strings['sidebar_help_title'], Tgmsp_Lite_Strings::get_instance()->strings['sidebar_help_upgrade']));
     }
     /** Set help for the main edit screen */
     if ('edit-soliloquy' == $current_screen->id && Tgmsp_Lite::is_soliloquy_screen()) {
         $current_screen->add_help_tab(array('id' => 'soliloquy-main-help', 'title' => Tgmsp_Lite_Strings::get_instance()->strings['overview'], 'content' => sprintf('<p>%s</p><p>%s</p><p><strong>%s</strong></p>', Tgmsp_Lite_Strings::get_instance()->strings['main_help'], Tgmsp_Lite_Strings::get_instance()->strings['main_help_two'], sprintf(Tgmsp_Lite_Strings::get_instance()->strings['upgrade_nag'], sprintf('<a href="' . apply_filters('tgmsp_affiliate_url', 'http://soliloquywp.com/pricing/?utm_source=orgrepo&utm_medium=link&utm_campaign=Soliloquy%2BLite') . '" title="%1$s" target="_blank">%1$s</a>', Tgmsp_Lite_Strings::get_instance()->strings['upgrade_nag_link']), ''))));
     }
     /** Set help for the Add New and Edit screens */
     if (Tgmsp_Lite::is_soliloquy_add_edit_screen()) {
         $current_screen->add_help_tab(array('id' => 'soliloquy-add-help', 'title' => Tgmsp_Lite_Strings::get_instance()->strings['overview'], 'content' => sprintf('<p>%s</p>', Tgmsp_Lite_Strings::get_instance()->strings['add_edit_help'])));
         $current_screen->add_help_tab(array('id' => 'soliloquy-advanced-help', 'title' => Tgmsp_Lite_Strings::get_instance()->strings['advanced_help'], 'content' => sprintf('<p><strong>%1$s</strong></p><p><a href="' . apply_filters('tgmsp_affiliate_url', 'http://soliloquywp.com/pricing/?utm_source=orgrepo&utm_medium=link&utm_campaign=Soliloquy%2BLite') . '" title="%2$s" target="_blank"><strong>%2$s</strong></a></p><p><a href="http://demo.soliloquywp.com/wp-admin/" title="%3$s" target="_blank"><em>%3$s</em></a></p>', Tgmsp_Lite_Strings::get_instance()->strings['advanced_help_desc'], Tgmsp_Lite_Strings::get_instance()->strings['advanced_help_up'], Tgmsp_Lite_Strings::get_instance()->strings['advanced_help_demo'])));
     }
 }
Пример #3
0
 /**
  * Enqueue custom scripts and styles for the Soliloquy post type.
  *
  * @since 1.0.0
  *
  * @global int $id The current post ID
  * @global object $post The current post object
  */
 public function load_assets()
 {
     global $id, $post;
     /** Load for any Soliloquy screen */
     if (Tgmsp_Lite::is_soliloquy_screen()) {
         wp_enqueue_style('soliloquy-admin');
         /** Send the post ID along with our script */
         if (Tgmsp_Lite::is_soliloquy_add_edit_screen()) {
             $post_id = null === $id ? $post->ID : $id;
         } else {
             $post_id = 0;
         }
         /** Store script arguments in an array */
         $args = apply_filters('tgmsp_slider_object_args', array('alt' => Tgmsp_Lite_Strings::get_instance()->strings['image_alt'], 'ajaxurl' => admin_url('admin-ajax.php'), 'caption' => Tgmsp_Lite_Strings::get_instance()->strings['image_caption'], 'dismissnonce' => wp_create_nonce('soliloquy_dismissing'), 'dismissing' => Tgmsp_Lite_Strings::get_instance()->strings['dismissing'], 'duration' => 600, 'id' => $post_id, 'height' => 300, 'link' => Tgmsp_Lite_Strings::get_instance()->strings['image_link'], 'linknonce' => wp_create_nonce('soliloquy_linking'), 'linktitle' => Tgmsp_Lite_Strings::get_instance()->strings['image_url_title'], 'loading' => Tgmsp_Lite_Strings::get_instance()->strings['loading'], 'metadesc' => Tgmsp_Lite_Strings::get_instance()->strings['image_meta'], 'metanonce' => wp_create_nonce('soliloquy_meta'), 'metatitle' => Tgmsp_Lite_Strings::get_instance()->strings['update_meta'], 'modify' => Tgmsp_Lite_Strings::get_instance()->strings['modify_image'], 'modifytb' => Tgmsp_Lite_Strings::get_instance()->strings['modify_image_tb'], 'nonce' => wp_create_nonce('soliloquy_uploader'), 'remove' => Tgmsp_Lite_Strings::get_instance()->strings['remove_image'], 'removenonce' => wp_create_nonce('soliloquy_remove'), 'removing' => Tgmsp_Lite_Strings::get_instance()->strings['removing'], 'saving' => Tgmsp_Lite_Strings::get_instance()->strings['saving'], 'sortnonce' => wp_create_nonce('soliloquy_sortable'), 'speed' => 7000, 'spinner' => plugins_url('css/images/loading.gif', dirname(dirname(__FILE__))), 'savemeta' => Tgmsp_Lite_Strings::get_instance()->strings['save_meta'], 'upload' => Tgmsp_Lite_Strings::get_instance()->strings['upload_images_tb'], 'tab' => Tgmsp_Lite_Strings::get_instance()->strings['new_tab'], 'title' => Tgmsp_Lite_Strings::get_instance()->strings['image_title'], 'url' => Tgmsp_Lite_Strings::get_instance()->strings['image_url'], 'width' => 600));
         wp_enqueue_script('soliloquy-admin');
         wp_localize_script('soliloquy-admin', 'soliloquy', $args);
     }
     /** Only load for the Soliloquy post type add and edit screens */
     if (Tgmsp_Lite::is_soliloquy_add_edit_screen()) {
         wp_enqueue_script('jquery-ui-sortable');
         add_thickbox();
     }
 }
Пример #4
0
 /**
  * Customize the post columns for the Soliloquy post type.
  *
  * @since 1.0.0
  *
  * @param array $columns The default columns provided by WP_List_Table
  */
 public function soliloquy_columns($columns)
 {
     $columns = array('cb' => '<input type="checkbox" />', 'title' => Tgmsp_Lite_Strings::get_instance()->strings['column_title'], 'shortcode' => Tgmsp_Lite_Strings::get_instance()->strings['column_shortcode'], 'template' => Tgmsp_Lite_Strings::get_instance()->strings['column_function'], 'images' => Tgmsp_Lite_Strings::get_instance()->strings['column_number'], 'modified' => Tgmsp_Lite_Strings::get_instance()->strings['column_modified'], 'date' => Tgmsp_Lite_Strings::get_instance()->strings['column_date']);
     return $columns;
 }
Пример #5
0
 /**
  * Template tag function for outputting the slider within templates.
  *
  * @since 1.0.0
  *
  * @package Soliloquy Lite
  * @param int $id The Soliloquy slider ID
  * @param bool $return Flag for returning or echoing the slider content
  */
 function soliloquy_slider($id, $return = false)
 {
     $id = absint($id);
     /** Return if no slider ID has been entered or if it is not valid */
     if (!$id) {
         printf('<p>%s</p>', Tgmsp_Lite_Strings::get_instance()->strings['no_id']);
         return;
     }
     $validate = get_post($id, OBJECT);
     if (!$validate || isset($validate->post_type) && 'soliloquy' !== $validate->post_type) {
         printf('<p>%s</p>', Tgmsp_Lite_Strings::get_instance()->strings['invalid_id']);
         return;
     }
     if ($return) {
         return do_shortcode('[soliloquy id="' . $id . '"]');
     } else {
         echo do_shortcode('[soliloquy id="' . $id . '"]');
     }
 }
Пример #6
0
 /**
  * Add an extra image meta field to store image links.
  *
  * @since 1.0.0
  *
  * @param array $fields Default array of meta fields for uploads
  * @param object $attachment The current attachment object
  */
 public function add_image_link($fields, $attachment)
 {
     if ($this->is_our_context() || Tgmsp_Lite::is_soliloquy_screen()) {
         $fields['soliloquy_link'] = apply_filters('tgmsp_extra_media_fields_link', array('label' => Tgmsp_Lite_Strings::get_instance()->strings['image_link'], 'input' => 'text', 'value' => get_post_meta($attachment->ID, '_soliloquy_image_link', true)));
         $fields['soliloquy_link_title'] = apply_filters('tgmsp_extra_media_fields_link_title', array('label' => Tgmsp_Lite_Strings::get_instance()->strings['image_link_title'], 'input' => 'text', 'value' => get_post_meta($attachment->ID, '_soliloquy_image_link_title', true)));
         $fields['soliloquy_link_tab'] = apply_filters('tgmsp_extra_media_fields_link_tab', array('label' => Tgmsp_Lite_Strings::get_instance()->strings['new_tab'], 'input' => 'html', 'html' => '<input id="attachments[' . $attachment->ID . '][soliloquy_link_tab]" name="attachments[' . $attachment->ID . '][soliloquy_link_tab]" type="checkbox" value="' . get_post_meta($attachment->ID, '_soliloquy_image_link_tab', true) . '"' . checked(get_post_meta($attachment->ID, '_soliloquy_image_link_tab', true), 1, false) . ' />'));
         $fields = apply_filters('tgmsp_media_fields', $fields, $attachment);
     }
     return $fields;
 }
Пример #7
0
 /**
  * Constructor. Hooks all interactions to initialize the class.
  *
  * @since 1.0.0
  */
 public function __construct()
 {
     self::$instance = $this;
     $this->strings = apply_filters('tgmsp_strings', array('add_edit_help' => __('Create and manage your slider from this screen. Click on the Upload Images button to begin uploading your images, and once uploaded, you can drag-and-drop sort them, add image meta and set slider options.', 'soliloquy-lite'), 'add_slider' => esc_attr__('Add Soliloquy Slider', 'soliloquy-lite'), 'add_slider_editor' => esc_attr__('Add Slider', 'soliloquy-lite'), 'advanced_help' => __('Soliloquy Advanced', 'soliloquy-lite'), 'advanced_help_desc' => __('Want even more advanced features for Soliloquy? How about ajax preloading, embedded video support for YouTube and Vimeo, easy internal linking, full support for available FlexSlider options and APIs, custom sizes, and even Addons?', 'soliloquy-lite'), 'advanced_help_demo' => __('Or go ahead and test a live demo of the full version yourself.', 'soliloquy-lite'), 'advanced_help_up' => __('Click here to upgrade to the full version of Soliloquy!', 'soliloquy-lite'), 'column_date' => __('Date', 'soliloquy-lite'), 'column_function' => __('Function', 'soliloquy-lite'), 'column_modified' => __('Last Modified', 'soliloquy-lite'), 'column_number' => __('Number of Images', 'soliloquy-lite'), 'column_shortcode' => __('Shortcode', 'soliloquy-lite'), 'column_title' => __('Title', 'soliloquy-lite'), 'dismissing' => __('Dismissing...', 'soliloquy-lite'), 'email_error' => __('Oops - there was an error. Please try again!', 'soliloquy-lite'), 'email_instructions' => __('Signup for the Soliloquy Newsletter!', 'soliloquy-lite'), 'email_desc' => __('Receive all the latest news on Soliloquy, including plugin updates, new Addons and discount promotions! <em>You will never be spammed.</em>', 'soliloquy-lite'), 'email_now' => esc_attr__('Signup!', 'soliloquy-lite'), 'email_placeholder' => __('Enter your email address here...', 'soliloquy-lite'), 'email_success' => __('Success! You have been signed up!', 'soliloquy-lite'), 'image_alt' => __('Image Alt Tag', 'soliloquy-lite'), 'image_caption' => __('Image Caption', 'soliloquy-lite'), 'image_link' => __('Image Link', 'soliloquy-lite'), 'image_link_title' => __('Image Link Title', 'soliloquy-lite'), 'image_meta' => __('All of the fields below are optional, so leave blank the fields you do not want or need.', 'soliloquy-lite'), 'image_title' => __('Image Title', 'soliloquy-lite'), 'image_url' => __('URL', 'soliloquy-lite'), 'image_url_title' => __('Title', 'soliloquy-lite'), 'instructions' => __('You can place this slider anywhere into your posts, pages, custom post types or widgets by using the shortcode below:', 'soliloquy-lite'), 'instructions_more' => __('You can also place this slider into your template files by using the function below:', 'soliloquy-lite'), 'invalid_id' => __('The slider ID you entered is not valid. Please check to make sure you entered it correctly.', 'soliloquy-lite'), 'loading' => __('Loading...', 'soliloquy-lite'), 'main_help' => __('Soliloquy utilizes custom post types in order to handle slider instances. Each slider instance has its own separate images, attributes and settings. You can get started by clicking the "Add New" button beside the page title.', 'soliloquy-lite'), 'main_help_two' => __('This page can also be used as a quick reference to grab a slider\'s shortcode or template tag for outputting the slider in your posts, pages or theme files.', 'soliloquy-lite'), 'menu_title' => __('Settings', 'soliloquy-lite'), 'meta_instructions' => __('Soliloquy Instructions', 'soliloquy-lite'), 'meta_settings' => __('Soliloquy Settings', 'soliloquy-lite'), 'meta_upgrade' => __('Upgrade Soliloquy', 'soliloquy-lite'), 'meta_uploads' => __('Upload and Customize Images', 'soliloquy-lite'), 'modify_image' => esc_attr__('Click Here to Modify Your Image', 'soliloquy-lite'), 'modify_image_tb' => __('Modify Your Image', 'soliloquy-lite'), 'new_tab' => __('Open link in new tab?', 'soliloquy-lite'), 'no_id' => __('No slider ID was entered. Please enter a slider ID.', 'soliloquy-lite'), 'overview' => __('Overview', 'soliloquy-lite'), 'page_title' => __('Soliloquy Settings', 'soliloquy-lite'), 'plugin_settings' => __('Settings', 'soliloquy-lite'), 'pm_cf_deleted' => __('Soliloquy slider custom field deleted.', 'soliloquy-lite'), 'pm_cf_updated' => __('Soliloquy slider custom field updated.', 'soliloquy-lite'), 'pm_draft' => __('Soliloquy slider draft updated.', 'soliloquy-lite'), 'pm_general' => __('Soliloquy slider updated.', 'soliloquy-lite'), 'pm_published' => __('Soliloquy slider published.', 'soliloquy-lite'), 'pm_revision' => __('Soliloquy slider restored to revision from %s', 'soliloquy-lite'), 'pm_saved' => __('Soliloquy slider saved.', 'soliloquy-lite'), 'pm_scheduled' => __('Soliloquy slider scheduled for: <strong>%1$s</strong>.', 'soliloquy-lite'), 'pm_submitted' => __('Soliloquy slider submitted.', 'soliloquy-lite'), 'remove_image' => esc_attr__('Click Here to Remove Your Image', 'soliloquy-lite'), 'removing' => __('Removing...', 'soliloquy-lite'), 'save_meta' => esc_attr__('Save Meta', 'soliloquy-lite'), 'saving' => __('Saving...', 'soliloquy-lite'), 'sidebar_help_title' => __('For more information:', 'soliloquy-lite'), 'sidebar_help_upgrade' => __('Upgrade Soliloquy', 'soliloquy-lite'), 'slider_animate' => __('Animate Slider Automatically?', 'soliloquy-lite'), 'slider_animate_desc' => __('If unchecked, users must manually scroll through slides.', 'soliloquy-lite'), 'slider_animation_dur' => __('Animation Duration', 'soliloquy-lite'), 'slider_cb' => __('For even more advanced functionality like ajax preloading, embedded video support, controlling mousewheel and keyboard navigation, pause/play elements, extra animations, custom slider sizes registered with WordPress and smooth height controls, %s', 'soliloquy-lite'), 'slider_cb_up' => __('click here to upgrade to the full version of Soliloquy!', 'soliloquy-lite'), 'slider_choose' => __('Choose Your Slider', 'soliloquy-lite'), 'slider_insert_tb' => __('Insert into Slider', 'soliloquy-lite'), 'slider_milliseconds' => __('Value is calculated using milliseconds.', 'soliloquy-lite'), 'slider_preloader' => __('Use Loading Icon?', 'soliloquy-lite'), 'slider_preloader_desc' => __('Outputs a loading icon while your slider loads to prevent content shifting.', 'soliloquy-lite'), 'slider_select' => __('Please select a slider.', 'soliloquy-lite'), 'slider_select_desc' => __('Select a slider below from the list of available sliders and then click \'Insert\' to place the slider into the editor.', 'soliloquy-lite'), 'slider_select_insert' => esc_attr__('Insert Slider', 'soliloquy-lite'), 'slider_select_cancel' => esc_attr__('Cancel Slider Insertion', 'soliloquy-lite'), 'slider_size' => __('Slider Size', 'soliloquy-lite'), 'slider_size_desc' => __('The <strong>relative</strong> size of the slider in pixels (<strong>width</strong> &#215; <strong>height</strong>).', 'soliloquy-lite'), 'slider_size_more' => __('Click here to learn more', 'soliloquy-lite'), 'slider_size_explain' => __('<strong>When setting your own slider size, the width and height of your images must match your specified size.</strong> This setting provides a truly responsive option for your slider and will not crop or adjust images exactly to the specified dimensions. If you need custom pre-defined image sizes, ', 'soliloquy-lite'), 'slider_size_upgrade' => __('upgrade to the full version of Soliloquy for that functionality', 'soliloquy-lite'), 'slider_speed' => __('Slider Speed', 'soliloquy-lite'), 'slider_transition' => __('Slider Transition', 'soliloquy-lite'), 'update_meta' => __('Update Image Metadata', 'soliloquy-lite'), 'upload_images' => esc_attr__('Click Here to Upload Images', 'soliloquy-lite'), 'upload_images_tb' => __('Upload Your Images', 'soliloquy-lite'), 'upload_info' => __('Click on the button below to select and upload your images. Once your images have been uploaded, you can customize their properties and sort them according to your needs. The images will appear below the upload button as thumbnail versions of their actual size.', 'soliloquy-lite'), 'upgrade' => __('Do you want to experience Soliloquy at its full potential, have complete control over your sliders and receive rock-solid support?', 'soliloquy-lite'), 'upgrade_now' => __('Click here to purchase your upgrade for Soliloquy and unleash the power of the best responsive WordPress slider plugin on the market!', 'soliloquy-lite'), 'upgrade_nag' => __('Want full access to all available Soliloquy features? %s %s', 'soliloquy-lite'), 'upgrade_nag_link' => __('Click here to upgrade Soliloquy now!', 'soliloquy-lite'), 'upgrade_nag_dismiss' => __('Dismiss this notice', 'soliloquy-lite'), 'working' => __('Doing...', 'soliloquy-lite')));
 }
Пример #8
0
    /**
     * Outputs the jQuery and HTML necessary to insert a slider when the user
     * uses the button added to the media buttons above TinyMCE.
     *
     * @since 1.0.0
     *
     * @global string $pagenow The current page slug
     */
    public function admin_footer()
    {
        global $pagenow;
        /** Only run in post/page creation and edit screens */
        if (in_array($pagenow, array('post.php', 'page.php', 'post-new.php', 'post-edit.php'))) {
            /** Get all published sliders */
            $sliders = get_posts(array('post_type' => 'soliloquy', 'posts_per_page' => -1, 'post_status' => 'publish'));
            ?>
			<script type="text/javascript">
				function insertSlider() {
					var id = jQuery('#select-soliloquy-slider').val();

					/** Return early if no slider is selected */
					if ( '' == id ) {
						alert('<?php 
            echo esc_js(Tgmsp_Lite_Strings::get_instance()->strings['slider_select']);
            ?>
');
						return;
					}

					/** Send the shortcode to the editor */
					window.send_to_editor('[soliloquy id="' + id + '"]');
				}
			</script>

			<div id="choose-soliloquy-slider" style="display: none;">
				<div class="wrap" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">
					<div id="icon-soliloquy" class="icon32" style="background: url(<?php 
            echo plugins_url('css/images/title-icon.png', dirname(dirname(__FILE__)));
            ?>
) no-repeat scroll 0 50%; height: 36px; width: 36px;"><br></div>
					<h2><?php 
            echo Tgmsp_Lite_Strings::get_instance()->strings['slider_choose'];
            ?>
</h2>
					<?php 
            do_action('tgmsp_before_slider_insertion', $sliders);
            ?>
					<p style="font-weight: bold; padding-bottom: 10px;"><?php 
            echo Tgmsp_Lite_Strings::get_instance()->strings['slider_select_desc'];
            ?>
</p>
					<select id="select-soliloquy-slider" style="clear: both; display: block; margin-bottom: 1em;">
					<?php 
            foreach ($sliders as $slider) {
                echo '<option value="' . absint($slider->ID) . '">' . esc_attr($slider->post_title) . '</option>';
            }
            ?>
					</select>

					<input type="button" id="soliloquy-insert-slider" class="button-primary" value="<?php 
            echo esc_attr(Tgmsp_Lite_Strings::get_instance()->strings['slider_select_insert']);
            ?>
" onclick="insertSlider();" />
					<a id="soliloquy-cancel-slider" class="button-secondary" onclick="tb_remove();" title="<?php 
            echo esc_attr(Tgmsp_Lite_Strings::get_instance()->strings['slider_select_cancel']);
            ?>
"><?php 
            echo Tgmsp_Lite_Strings::get_instance()->strings['slider_select_cancel'];
            ?>
</a>
					<?php 
            do_action('tgmsp_after_slider_insertion', $sliders);
            ?>
				</div>
			</div>
			<?php 
        }
    }
Пример #9
0
 /**
  * Outputs slider data in a shortcode called 'soliloquy'.
  *
  * @since 1.0.0
  *
  * @global array $soliloquy_data An array of data for the current Soliloquy ID
  * @global int $soliloquy_count Incremental variable for each Soliloquy on current page
  * @param array $atts Array of shortcode attributes
  * @return string $slider Concatenated string of slider data
  */
 public function shortcode($atts)
 {
     /** Create global variables to store all soliloquy ID's and meta on the current page */
     $soliloquy_data = array();
     $soliloquy_count = 0;
     global $soliloquy_data, $soliloquy_count;
     /** Extract shortcode atts */
     extract(shortcode_atts(array('id' => 0), $atts));
     /** Return if no slider ID has been entered or if it is not valid */
     if (!$id) {
         printf('<p>%s</p>', Tgmsp_Lite_Strings::get_instance()->strings['no_id']);
         return;
     }
     $validate = get_post($id, OBJECT);
     if (!$validate || isset($validate->post_type) && 'soliloquy' !== $validate->post_type) {
         printf('<p>%s</p>', Tgmsp_Lite_Strings::get_instance()->strings['invalid_id']);
         return;
     }
     /** Ok, we have a valid slider ID - store all data in one variable and get started */
     $soliloquy_data[absint($soliloquy_count)]['id'] = $id;
     $soliloquy_data[absint($soliloquy_count)]['meta'] = get_post_meta($id, '_soliloquy_settings', true);
     $slider = '';
     $images = $this->get_images($id, $soliloquy_data[absint($soliloquy_count)]['meta']);
     $i = 1;
     $preloader = false;
     /** Only proceed if we have images to output */
     if ($images) {
         /** Make sure jQuery is loaded and load script and slider */
         wp_enqueue_script('soliloquy-script');
         wp_enqueue_style('soliloquy-style');
         add_action('wp_footer', array($this, 'slider_script'), 99);
         /** Allow devs to circumvent the entire slider if necessary - beware, this filter is powerful - use with caution */
         $pre = apply_filters('tgmsp_pre_load_slider', false, $id, $images, $soliloquy_data, $soliloquy_count, $slider);
         if ($pre) {
             return $pre;
         }
         do_action('tgmsp_before_slider_output', $id, $images, $soliloquy_data, $soliloquy_count, $slider);
         /** If a custom size is chosen, all image sizes will be cropped the same, so grab width/height from first image */
         $width = $soliloquy_data[absint($soliloquy_count)]['meta']['width'] ? $soliloquy_data[absint($soliloquy_count)]['meta']['width'] : $images[0]['width'];
         $width = $ratio_width = apply_filters('tgmsp_slider_width', $width, $id);
         $width = preg_match('|%$|', trim($width)) ? trim($width) . ';' : absint($width) . 'px;';
         $height = $soliloquy_data[absint($soliloquy_count)]['meta']['height'] ? $soliloquy_data[absint($soliloquy_count)]['meta']['height'] : $images[0]['height'];
         $height = $ratio_height = apply_filters('tgmsp_slider_height', $height, $id);
         $height = preg_match('|%$|', trim($height)) ? trim($height) . ';' : absint($height) . 'px;';
         // If the user wants a preloader image, store the aspect ratio for dynamic height calculation.
         if (isset($soliloquy_data[absint($soliloquy_count)]['meta']['preloader']) && $soliloquy_data[absint($soliloquy_count)]['meta']['preloader']) {
             $preloader = true;
             $ratio_width = preg_match('|%$|', trim($ratio_width)) ? str_replace('%', '', $ratio_width) : absint($ratio_width);
             $ratio_height = preg_match('|%$|', trim($ratio_height)) ? str_replace('%', '', $ratio_height) : absint($ratio_height);
             $soliloquy_data[absint($soliloquy_count)]['ratio'] = $ratio_width / $ratio_height;
             add_action('tgmsp_callback_start_' . $id, array($this, 'preloader'));
             add_filter('tgmsp_slider_classes', array($this, 'preloader_class'));
         }
         /** Output the slider info */
         $slider = apply_filters('tgmsp_before_slider', $slider, $id, $images, $soliloquy_data, absint($soliloquy_count));
         $slider .= '<div id="soliloquy-container-' . esc_attr($id) . '" ' . $this->get_custom_slider_classes() . ' style="' . apply_filters('tgmsp_slider_width_output', 'max-width: ' . $width, $width, $id) . ' ' . apply_filters('tgmsp_slider_height_output', 'max-height: ' . $height, $height, $id) . ' ' . apply_filters('tgmsp_slider_container_style', '', $id) . '">';
         $slider .= '<div id="soliloquy-' . esc_attr($id) . '" class="soliloquy">';
         $slider .= '<ul id="soliloquy-list-' . esc_attr($id) . '" class="soliloquy-slides">';
         foreach ($images as $image) {
             $alt = empty($image['alt']) ? apply_filters('tgmsp_no_alt', '', $id, $image) : $image['alt'];
             $title = empty($image['title']) ? apply_filters('tgmsp_no_title', '', $id, $image) : $image['title'];
             $link_title = empty($image['linktitle']) ? apply_filters('tgmsp_no_link_title', '', $id, $image) : $image['linktitle'];
             $link_target = empty($image['linktab']) ? apply_filters('tgmsp_no_link_target', '', $id, $image) : 'target="_blank"';
             $slide = '<li id="soliloquy-' . esc_attr($id) . '-item-' . $i . '" class="soliloquy-item" style="' . apply_filters('tgmsp_slider_item_style', 'display: none;', $id, $image, $i) . '" ' . apply_filters('tgmsp_slider_item_attr', '', $id, $image, $i) . '>';
             if (!empty($image['link'])) {
                 $slide .= apply_filters('tgmsp_link_output', '<a href="' . esc_url($image['link']) . '" title="' . esc_attr($link_title) . '" ' . $link_target . '>', $id, $image, $link_title, $link_target);
             }
             $slide .= apply_filters('tgmsp_image_output', '<img class="soliloquy-item-image" src="' . esc_url($image['src']) . '" alt="' . esc_attr($alt) . '" title="' . esc_attr($title) . '" />', $id, $image, $alt, $title);
             if (!empty($image['link'])) {
                 $slide .= '</a>';
             }
             if (!empty($image['caption'])) {
                 $slide .= apply_filters('tgmsp_caption_output', '<div class="soliloquy-caption"><div class="soliloquy-caption-inside">' . $image['caption'] . '</div></div>', $id, $image);
             }
             $slide .= '</li>';
             $slider .= apply_filters('tgmsp_individual_slide', $slide, $id, $image, $i);
             $i++;
         }
         $slider .= '</ul>';
         $slider = apply_filters('tgmsp_inside_slider', $slider, $id, $images, $soliloquy_data, absint($soliloquy_count));
         $slider .= '</div>';
         $slider = apply_filters('tgmsp_inside_slider_container', $slider, $id, $images, $soliloquy_data, absint($soliloquy_count));
         $slider .= '</div>';
         $slider = apply_filters('tgmsp_after_slider', $slider, $id, $images, $soliloquy_data, absint($soliloquy_count));
         // If we are adding a preloading icon, do it now.
         if ($preloader) {
             $slider .= '<style type="text/css">.soliloquy-container.soliloquy-preloader{background: url("' . plugins_url("css/images/preloader.gif", dirname(dirname(__FILE__))) . '") no-repeat scroll 50% 50%;}@media only screen and (-webkit-min-device-pixel-ratio: 1.5),only screen and (-o-min-device-pixel-ratio: 3/2),only screen and (min--moz-device-pixel-ratio: 1.5),only screen and (min-device-pixel-ratio: 1.5){.soliloquy-container.soliloquy-preloader{background-image: url("' . plugins_url("css/images/preloader@2x.gif", dirname(dirname(__FILE__))) . '");background-size: 16px 16px;}}</style>';
         }
     }
     /** Increment the counter in case there are multiple slider instances on the same page */
     $soliloquy_count++;
     return apply_filters('tgmsp_slider_shortcode', $slider, $id, $images);
 }
Пример #10
0
 /**
  * Outputs any error messages when verifying license keys.
  *
  * @since 1.0.0
  */
 public function admin_notices()
 {
     if (Tgmsp_Lite::is_soliloquy_screen() && current_user_can('manage_options')) {
         /** If a user hasn't dismissed the notice yet, output it for them to upgrade */
         if (!get_user_meta(get_current_user_id(), 'soliloquy_dismissed_notice', true)) {
             add_settings_error('tgmsp', 'tgmsp-upgrade-soliloquy', sprintf(Tgmsp_Lite_Strings::get_instance()->strings['upgrade_nag'], sprintf('<a href="' . apply_filters('tgmsp_affiliate_url', 'http://soliloquywp.com/pricing/?utm_source=orgrepo&utm_medium=link&utm_campaign=Soliloquy%2BLite') . '" title="%1$s" target="_blank">%1$s</a>', Tgmsp_Lite_Strings::get_instance()->strings['upgrade_nag_link']), sprintf('<a id="soliloquy-dismiss-notice" href="#" title="%1$s">%1$s</a>', Tgmsp_Lite_Strings::get_instance()->strings['upgrade_nag_dismiss'])), 'updated');
         }
         /** Allow settings notices to be filtered */
         apply_filters('tgmsp_output_notices', settings_errors('tgmsp'));
     }
 }