Sharing_Service::get_all_services_blog PHP Method

get_all_services_blog() public method

Gets a generic list of all services, without any config
    public function get_all_services_blog()
    {
        $options = get_option('sharing-options');
        $all = $this->get_all_services();
        $services = array();
        foreach ($all as $id => $name) {
            if (isset($all[$id])) {
                $config = array();
                // Pre-load custom modules otherwise they won't know who they are
                if (substr($id, 0, 7) == 'custom-' && is_array($options[$id])) {
                    $config = $options[$id];
                }
                $services[$id] = new $all[$id]($id, $config);
            }
        }
        return $services;
    }

Usage Example

    public function management_page()
    {
        $sharer = new Sharing_Service();
        $enabled = $sharer->get_blog_services();
        $global = $sharer->get_global_options();
        $shows = array_values(get_post_types(array('public' => true)));
        array_unshift($shows, 'index');
        if (false == function_exists('mb_stripos')) {
            echo '<div id="message" class="updated fade"><h3>' . __('Warning! Multibyte support missing!', 'jetpack') . '</h3>';
            echo "<p>" . sprintf(__('This plugin will work without it, but multibyte support is used <a href="%s">if available</a>. You may see minor problems with Tweets and other sharing services.', 'jetpack'), "http://www.php.net/manual/en/mbstring.installation.php") . '</p></div>';
        }
        if (isset($_GET['update']) && $_GET['update'] == 'saved') {
            echo '<div class="updated"><p>' . __('Settings have been saved', 'jetpack') . '</p></div>';
        }
        if (!isset($global['sharing_label'])) {
            $global['sharing_label'] = __('Share this:', 'jetpack');
        }
        ?>

	<div class="wrap">
		<div class="icon32" id="icon-options-general"><br /></div>
		<h2><?php 
        _e('Sharing Settings', 'jetpack');
        ?>
</h2>

		<?php 
        /**
         * Fires at the top of the admin sharing settings screen.
         *
         * @since 1.6.0
         */
        do_action('pre_admin_screen_sharing');
        ?>

		<?php 
        if (current_user_can('manage_options')) {
            ?>

		<div class="share_manage_options">
		<h3><?php 
            _e('Sharing Buttons', 'jetpack');
            ?>
</h3>
		<p><?php 
            _e('Add sharing buttons to your blog and allow your visitors to share posts with their friends.', 'jetpack');
            ?>
</p>

		<div id="services-config">
			<table id="available-services">
					<tr>
					<td class="description">
						<h3><?php 
            _e('Available Services', 'jetpack');
            ?>
</h3>
						<p><?php 
            _e("Drag and drop the services you'd like to enable into the box below.", 'jetpack');
            ?>
</p>
						<p><a href="#TB_inline?height=395&amp;width=600&amp;inlineId=new-service" class="thickbox" id="add-a-new-service"><?php 
            _e('Add a new service', 'jetpack');
            ?>
</a></p>
					</td>
					<td class="services">
						<ul class="services-available" style="height: 100px;">
							<?php 
            foreach ($sharer->get_all_services_blog() as $id => $service) {
                ?>
								<?php 
                if (!isset($enabled['all'][$id])) {
                    $this->output_service($id, $service);
                }
                ?>
							<?php 
            }
            ?>
						</ul>
						<?php 
            if (-1 == get_option('blog_public')) {
                echo '<p><strong>' . __('Please note that your services have been restricted because your site is private.', 'jetpack') . '</strong></p>';
            }
            ?>
						<br class="clearing" />
					</td>
					</tr>
			</table>

			<table id="enabled-services">
				<tr>
					<td class="description">
						<h3>
							<?php 
            _e('Enabled Services', 'jetpack');
            ?>
							<img src="<?php 
            echo admin_url('images/loading.gif');
            ?>
" width="16" height="16" alt="loading" style="vertical-align: middle; display: none" />
						</h3>
						<p><?php 
            _e('Services dragged here will appear individually.', 'jetpack');
            ?>
</p>
					</td>
					<td class="services" id="share-drop-target">
							<h2 id="drag-instructions" <?php 
            if (count($enabled['visible']) > 0) {
                echo ' style="display: none"';
            }
            ?>
><?php 
            _e('Drag and drop available services here.', 'jetpack');
            ?>
</h2>

								<ul class="services-enabled">
									<?php 
            foreach ($enabled['visible'] as $id => $service) {
                ?>
										<?php 
                $this->output_service($id, $service, true);
                ?>
									<?php 
            }
            ?>

									<li class="end-fix"></li>
								</ul>
					</td>
					<td id="hidden-drop-target" class="services">
							<p><?php 
            _e('Services dragged here will be hidden behind a share button.', 'jetpack');
            ?>
</p>

							<ul class="services-hidden">
									<?php 
            foreach ($enabled['hidden'] as $id => $service) {
                ?>
										<?php 
                $this->output_service($id, $service, true);
                ?>
									<?php 
            }
            ?>
									<li class="end-fix"></li>
							</ul>
					</td>
				</tr>
			</table>

			<table id="live-preview">
				<tr>
					<td class="description">
						<h3><?php 
            _e('Live Preview', 'jetpack');
            ?>
</h3>
					</td>
					<td class="services">
						<h2<?php 
            if (count($enabled['all']) > 0) {
                echo ' style="display: none"';
            }
            ?>
><?php 
            _e('Sharing is off. Add services above to enable.', 'jetpack');
            ?>
</h2>
						<div class="sharedaddy sd-sharing-enabled">
							<?php 
            if (count($enabled['all']) > 0) {
                ?>
							<h3 class="sd-title"><?php 
                echo esc_html($global['sharing_label']);
                ?>
</h3>
							<?php 
            }
            ?>
							<div class="sd-content">
								<ul class="preview">
									<?php 
            foreach ($enabled['visible'] as $id => $service) {
                ?>
										<?php 
                $this->output_preview($service);
                ?>
									<?php 
            }
            ?>

									<?php 
            if (count($enabled['hidden']) > 0) {
                ?>
									<li class="advanced"><a href="#" class="sharing-anchor sd-button share-more"><span><?php 
                _e('More', 'jetpack');
                ?>
</span></a></li>
									<?php 
            }
            ?>
								</ul>

								<?php 
            if (count($enabled['hidden']) > 0) {
                ?>
								<div class="sharing-hidden">
									<div class="inner" style="display: none; <?php 
                echo count($enabled['hidden']) == 1 ? 'width:150px;' : '';
                ?>
">
									<?php 
                if (count($enabled['hidden']) == 1) {
                    ?>
										<ul style="background-image:none;">
									<?php 
                } else {
                    ?>
										<ul>
									<?php 
                }
                ?>

									<?php 
                foreach ($enabled['hidden'] as $id => $service) {
                    $this->output_preview($service);
                }
                ?>
										</ul>
									</div>
								</div>
								<?php 
            }
            ?>

								<ul class="archive" style="display:none;">
								<?php 
            foreach ($sharer->get_all_services_blog() as $id => $service) {
                if (isset($enabled['visible'][$id])) {
                    $service = $enabled['visible'][$id];
                } elseif (isset($enabled['hidden'][$id])) {
                    $service = $enabled['hidden'][$id];
                }
                $service->button_style = 'icon-text';
                // The archive needs the full text, which is removed in JS later
                $service->smart = false;
                $this->output_preview($service);
            }
            ?>
									<li class="advanced"><a href="#" class="sharing-anchor sd-button share-more"><span><?php 
            _e('More', 'jetpack');
            ?>
</span></a></li>
								</ul>
							</div>
						</div>
						<br class="clearing" />
					</td>
				</tr>
			</table>

				<form method="post" action="<?php 
            echo admin_url('admin-ajax.php');
            ?>
" id="save-enabled-shares">
					<input type="hidden" name="action" value="sharing_save_services" />
					<input type="hidden" name="visible" value="<?php 
            echo implode(',', array_keys($enabled['visible']));
            ?>
" />
					<input type="hidden" name="hidden" value="<?php 
            echo implode(',', array_keys($enabled['hidden']));
            ?>
" />
					<input type="hidden" name="_wpnonce" value="<?php 
            echo wp_create_nonce('sharing-options');
            ?>
" />
				</form>
		</div>

		<form method="post" action="">
			<table class="form-table">
				<tbody>
					<tr valign="top">
						<th scope="row"><label><?php 
            _e('Button style', 'jetpack');
            ?>
</label></th>
						<td>
							<select name="button_style" id="button_style">
								<option<?php 
            if ($global['button_style'] == 'icon-text') {
                echo ' selected="selected"';
            }
            ?>
 value="icon-text"><?php 
            _e('Icon + text', 'jetpack');
            ?>
</option>
								<option<?php 
            if ($global['button_style'] == 'icon') {
                echo ' selected="selected"';
            }
            ?>
 value="icon"><?php 
            _e('Icon only', 'jetpack');
            ?>
</option>
								<option<?php 
            if ($global['button_style'] == 'text') {
                echo ' selected="selected"';
            }
            ?>
 value="text"><?php 
            _e('Text only', 'jetpack');
            ?>
</option>
								<option<?php 
            if ($global['button_style'] == 'official') {
                echo ' selected="selected"';
            }
            ?>
 value="official"><?php 
            _e('Official buttons', 'jetpack');
            ?>
</option>
							</select>
						</td>
					</tr>
					<tr valign="top">
						<th scope="row"><label><?php 
            _e('Sharing label', 'jetpack');
            ?>
</label></th>
						<td>
							<input type="text" name="sharing_label" value="<?php 
            echo esc_attr($global['sharing_label']);
            ?>
" />
						</td>
					</tr>
					<?php 
            /**
             * Filters the HTML at the beginning of the "Show button on" row.
             *
             * @since 2.1.0
             *
             * @param string $var Opening HTML tag at the beginning of the "Show button on" row.
             */
            echo apply_filters('sharing_show_buttons_on_row_start', '<tr valign="top">');
            ?>
						<th scope="row"><label><?php 
            _e('Show buttons on', 'jetpack');
            ?>
</label></th>
						<td>
						<?php 
            $br = false;
            foreach ($shows as $show) {
                if ('index' == $show) {
                    $label = __('Front Page, Archive Pages, and Search Results', 'jetpack');
                } else {
                    $post_type_object = get_post_type_object($show);
                    $label = $post_type_object->labels->name;
                }
                ?>
							<?php 
                if ($br) {
                    echo '<br />';
                }
                ?>
<label><input type="checkbox"<?php 
                checked(in_array($show, $global['show']));
                ?>
 name="show[]" value="<?php 
                echo esc_attr($show);
                ?>
" /> <?php 
                echo esc_html($label);
                ?>
</label>
						<?php 
                $br = true;
            }
            ?>
						</td>
					<?php 
            /**
             * Filters the HTML at the end of the "Show button on" row.
             *
             * @since 2.1.0
             *
             * @param string $var Closing HTML tag at the end of the "Show button on" row.
             */
            echo apply_filters('sharing_show_buttons_on_row_end', '</tr>');
            ?>

					<?php 
            /**
             * Fires at the end of the sharing global options settings table.
             *
             * @since 1.1.0
             */
            do_action('sharing_global_options');
            ?>
				</tbody>
			</table>

			<p class="submit">
					<input type="submit" name="submit" class="button-primary" value="<?php 
            _e('Save Changes', 'jetpack');
            ?>
" />
			</p>

				<input type="hidden" name="_wpnonce" value="<?php 
            echo wp_create_nonce('sharing-options');
            ?>
" />
		</form>

	<div id="new-service" style="display: none">
		<form method="post" action="<?php 
            echo admin_url('admin-ajax.php');
            ?>
" id="new-service-form">
			<table class="form-table">
				<tbody>
					<tr valign="top">
						<th scope="row" width="100"><label><?php 
            _e('Service name', 'jetpack');
            ?>
</label></th>
						<td>
							<input type="text" name="sharing_name" id="new_sharing_name" size="40" />
						</td>
					</tr>
					<tr valign="top">
						<th scope="row" width="100"><label><?php 
            _e('Sharing URL', 'jetpack');
            ?>
</label></th>
						<td>
							<input type="text" name="sharing_url" id="new_sharing_url" size="40" />

							<p><?php 
            _e('You can add the following variables to your service sharing URL:', 'jetpack');
            ?>
<br/>
							<code>%post_title%</code>, <code>%post_url%</code>, <code>%post_full_url%</code>, <code>%post_excerpt%</code>, <code>%post_tags%</code></p>
						</td>
					</tr>
					<tr valign="top">
						<th scope="row" width="100"><label><?php 
            _e('Icon URL', 'jetpack');
            ?>
</label></th>
						<td>
							<input type="text" name="sharing_icon" id="new_sharing_icon" size="40" />
							<p><?php 
            _e('Enter the URL of a 16x16px icon you want to use for this service.', 'jetpack');
            ?>
</p>
						</td>
					</tr>
					<tr valign="top" width="100">
						<th scope="row"></th>
						<td>
								<input type="submit" class="button-primary" value="<?php 
            _e('Create Share Button', 'jetpack');
            ?>
" />
							<img src="<?php 
            echo admin_url('images/loading.gif');
            ?>
" width="16" height="16" alt="loading" style="vertical-align: middle; display: none" />
						</td>
					</tr>

					<?php 
            /**
             * Fires after the custom sharing service form
             *
             * @since 1.1.0
             */
            do_action('sharing_new_service_form');
            ?>
				</tbody>
			</table>

		<?php 
            /**
             * Fires at the bottom of the admin sharing settings screen.
             *
             * @since 1.6.0
             */
            do_action('post_admin_screen_sharing');
            ?>

				<div class="inerror" style="display: none; margin-top: 15px">
					<p><?php 
            _e('An error occurred creating your new sharing service - please check you gave valid details.', 'jetpack');
            ?>
</p>
				</div>

			<input type="hidden" name="action" value="sharing_new_service" />
			<input type="hidden" name="_wpnonce" value="<?php 
            echo wp_create_nonce('sharing-new_service');
            ?>
" />
		</form>
	</div>
	</div>

	<?php 
        }
        ?>


	</div>

	<script type="text/javascript">
		var sharing_loading_icon = '<?php 
        echo esc_js(admin_url("/images/loading.gif"));
        ?>
';
		<?php 
        if (isset($_GET['create_new_service']) && 'true' == $_GET['create_new_service']) {
            ?>
		jQuery(document).ready(function() {
			// Prefill new service box and then open it
			jQuery( '#new_sharing_name' ).val( '<?php 
            echo esc_js($_GET['name']);
            ?>
' );
			jQuery( '#new_sharing_url' ).val( '<?php 
            echo esc_js($_GET['url']);
            ?>
' );
			jQuery( '#new_sharing_icon' ).val( '<?php 
            echo esc_js($_GET['icon']);
            ?>
' );
			jQuery( '#add-a-new-service' ).click();
		});
		<?php 
        }
        ?>
	</script>
<?php 
    }
All Usage Examples Of Sharing_Service::get_all_services_blog