/**
     * Inserts the shareaholic content meta tags on the page
     * On all pages, it will insert the standard content meta tags
     * On full post pages, it will insert page specific content meta tags
     *
     */
    public static function insert_content_meta_tags($node = NULL, $view_mode = NULL, $lang_code = NULL)
    {
        if ($view_mode === 'rss') {
            return;
        }
        $site_name = ShareaholicUtilities::site_name();
        $api_key = ShareaholicUtilities::get_option('api_key');
        $module_version = ShareaholicUtilities::get_version();
        $content_tags = <<<DOC

<!-- Shareaholic Content Tags -->
<meta name='shareaholic:site_name' content='{$site_name}' />
<meta name='shareaholic:language' content='{$lang_code}' />
<meta name='shareaholic:site_id' content='{$api_key}' />
<meta name='shareaholic:drupal_version' content='{$module_version}' />
DOC;
        if (isset($node) && isset($view_mode) && $view_mode === 'full') {
            $url = $GLOBALS['base_root'] . request_uri();
            $published_time = date('c', $node->created);
            $modified_time = date('c', $node->changed);
            $author = user_load($node->uid);
            $author_name = self::get_user_name($author);
            $tags = implode(', ', self::get_keywords_for($node));
            $image_url = self::get_image_url_for($node);
            $visibility = self::get_visibility($node);
            $shareable = self::is_shareable($node);
            $content_tags .= "\n<meta name='shareaholic:url' content='{$url}' />";
            $content_tags .= "\n<meta name='shareaholic:article_published_time' content='{$published_time}' />";
            $content_tags .= "\n<meta name='shareaholic:article_modified_time' content='{$modified_time}' />";
            $content_tags .= "\n<meta name='shareaholic:article_author_name' content='{$author_name}' />";
            if (!empty($tags)) {
                $content_tags .= "\n<meta name='shareaholic:keywords' content='{$tags}' />";
            }
            if (!empty($image_url)) {
                $content_tags .= "\n<meta name='shareaholic:image' content='{$image_url}' />";
            }
            if (!empty($visibility)) {
                $content_tags .= "\n<meta name='shareaholic:article_visibility' content='{$visibility}' />";
            }
            if (!empty($shareable)) {
                $content_tags .= "\n<meta name='shareaholic:shareable_page' content='{$shareable}' />";
            }
        }
        $content_tags .= "\n<!-- Shareaholic Content Tags End -->\n";
        $element = array('#type' => 'markup', '#markup' => $content_tags);
        drupal_add_html_head($element, 'shareaholic_content_meta_tags');
    }
Ejemplo n.º 2
0
 /**
  * The updating function. This should create a whole configuration
  * object including share buttons and recommendations as well as
  * site name and domain to send back to us.
  */
 public static function update()
 {
     $version = ShareaholicUtilities::get_version();
     $sexybookmarks_configuration = get_option('SexyBookmarks');
     $classicbookmarks_configuration = get_option('ShareaholicClassicBookmarks');
     $recommendations_configuration = get_option('ShareaholicRecommendations');
     $top_bar_configuration = get_option('ShareaholicTopBar');
     $new_share_buttons_configuration = self::transform_sexybookmarks_configuration($sexybookmarks_configuration);
     $new_classicbookmarks_locations = self::transform_classicbookmarks_locations($classicbookmarks_configuration, $sexybookmarks_configuration);
     $new_top_bar_configuration = self::transform_top_bar_configuration($top_bar_configuration);
     $location_names = array_map(array('self', 'grab_location_iterator'), $new_share_buttons_configuration['locations_attributes']);
     // if sexybookmarks are off or not on the bottom
     if ($sexybookmarks_configuration['sexybookmark'] != '1' || !(bool) preg_grep('/below/', $location_names)) {
         // then merge in the classic bookmark locations
         $new_share_buttons_configuration = array_merge($new_share_buttons_configuration, $new_classicbookmarks_locations);
     } elseif ($sexybookmarks_configuration['sexybookmark'] != '1' || !(bool) preg_grep('/above/', $location_names)) {
         $new_share_buttons_configuration = array_merge($new_share_buttons_configuration, $new_top_bar_configuration);
     }
     $new_recommendations_configuration = array('locations_attributes' => self::transform_recommendations_configuration($recommendations_configuration));
     $new_recommendations_configuration = isset($new_recommendations_configuration) ? $new_recommendations_configuration : null;
     $verification_key = md5(mt_rand());
     list($turned_on_share_buttons_location_names, $turned_off_share_buttons_location_names) = self::pad_locations($new_share_buttons_configuration);
     list($turned_on_recommendations_location_names, $turned_off_recommendations_location_names) = self::pad_locations($new_recommendations_configuration);
     $new_configuration = array('configuration_publisher' => array('share_buttons_attributes' => $new_share_buttons_configuration, 'recommendations_attributes' => $new_recommendations_configuration, 'site_name' => ShareaholicUtilities::site_name(), 'domain' => ShareaholicUtilities::site_url(), 'verification_key' => $verification_key, 'platform_id' => '12', 'language_id' => ShareaholicUtilities::site_language()));
     $shortener_configuration = isset($sexybookmarks_configuration['shorty']) ? self::transform_shortener_configuration($sexybookmarks_configuration) : array();
     $new_configuration['configuration_publisher'] = array_merge($new_configuration['configuration_publisher'], $shortener_configuration);
     $response = ShareaholicCurl::post(Shareaholic::API_URL . '/publisher_tools/anonymous', $new_configuration, 'json');
     if ($response && preg_match('/20*/', $response['response']['code'])) {
         ShareaholicUtilities::log_event('6To7ConversionSuccess', array('the_posted_json' => $new_configuration, 'the_created_api_key' => $response['body']['api_key'], 'SexyBookmarks' => $sexybookmarks_configuration, 'ShareaholicClassicBookmarks' => $classicbookmarks_configuration, 'ShareaholicRecommendations' => $recommendations_configuration));
         ShareaholicUtilities::update_options(array('api_key' => $response['body']['api_key'], 'version' => Shareaholic::VERSION, 'verification_key' => $verification_key, 'location_name_ids' => $response['body']['location_name_ids']));
         ShareaholicUtilities::turn_on_locations(array('share_buttons' => array_flip($turned_on_share_buttons_location_names), 'recommendations' => array_flip($turned_on_recommendations_location_names)), array('share_buttons' => array_flip($turned_off_share_buttons_location_names), 'recommendations' => array_flip($turned_off_recommendations_location_names)));
         self::transform_wordpress_specific_settings();
         self::cleanup_v6_options();
     } else {
         ShareaholicUtilities::log_event('6To7ConversionFailed', array('the_posted_json' => $new_configuration, 'SexyBookmarks' => $sexybookmarks_configuration, 'ShareaholicClassicBookmarks' => $classicbookmarks_configuration, 'ShareaholicRecommendations' => $recommendations_configuration));
     }
 }
Ejemplo n.º 3
0
 /**
  * Sends an event when the user has updated
  * the Drupal module
  */
 public static function update_check()
 {
     $version = ShareaholicUtilities::get_option('version');
     if (ShareaholicUtilities::get_option('api_key') && $version != ShareaholicUtilities::get_version()) {
         ShareaholicUtilities::set_version(ShareaholicUtilities::get_version());
         ShareaholicUtilities::log_event('Upgrade', array('previous_plugin_version' => $version));
     }
 }
Ejemplo n.º 4
0
 /**
  * Draws Shareaholic version meta tag.
  */
 private static function draw_plugin_version_meta_tag()
 {
     echo "<meta name='shareaholic:wp_version' content='" . ShareaholicUtilities::get_version() . "' />\n";
 }
Ejemplo n.º 5
0
 /**
  * This function fires after the plugin has been activated.
  */
 public function after_activation()
 {
     $this->terms_of_service();
     ShareaholicUtilities::log_event("Activate");
     // workaround: http://codex.wordpress.org/Function_Reference/register_activation_hook
     add_option('Activated_Plugin_Shareaholic', 'shareaholic');
     if (ShareaholicUtilities::has_accepted_terms_of_service() && ShareaholicUtilities::get_option('api_key') != NULL) {
         ShareaholicUtilities::notify_content_manager_sitemap();
         ShareaholicUtilities::notify_content_manager_singledomain();
     }
     if (!ShareaholicUtilities::get_version()) {
         ShareaholicUtilities::log_event("Install_Fresh");
     }
     // Activate the Shareaholic Cron Job for new users
     ShareaholicCron::activate();
 }
Ejemplo n.º 6
0
 /**
  * This is the function that will perform the update.
  */
 public static function perform_update()
 {
     if (self::get_version() && intval(self::get_version()) <= 6) {
         // an update so big, it gets it's own class!
         ShareaholicSixToSeven::update();
     }
     if (self::get_option('metakey_6to7_upgraded') != 'true') {
         global $wpdb;
         $results = $wpdb->query("UPDATE {$wpdb->postmeta} SET `meta_key` = 'shareaholic_disable_open_graph_tags' WHERE `meta_key` = 'Hide OgTags'");
         $results = $wpdb->query("UPDATE {$wpdb->postmeta} SET `meta_key` = 'shareaholic_disable_share_buttons' WHERE `meta_key` = 'Hide SexyBookmarks'");
         self::update_options(array('metakey_6to7_upgraded' => 'true'));
     }
     $version = ShareaholicUtilities::get_version();
     if (!empty($version)) {
         ShareaholicUtilities::clear_cache();
     }
     // any other things that need to be updated
 }
Ejemplo n.º 7
0
 /**
  * Enqueing styles and scripts for the admin panel
  *
  * @since 7.0.2.0
  */
 public static function enqueue_scripts()
 {
     if (isset($_GET['page']) && preg_match('/shareaholic/', $_GET['page'])) {
         wp_enqueue_style('shareaholic_application_css', ShareaholicUtilities::asset_url_admin('assets/application.css'), false, ShareaholicUtilities::get_version());
         wp_enqueue_style('shareaholic_bootstrap_css', plugins_url('assets/css/bootstrap.css', __FILE__), false, ShareaholicUtilities::get_version());
         wp_enqueue_style('shareaholic_main_css', plugins_url('assets/css/main.css', __FILE__), false, ShareaholicUtilities::get_version());
         wp_enqueue_style('shareaholic_open_sans_css', '//fonts.googleapis.com/css?family=Open+Sans:400,300,700');
         wp_enqueue_script('shareholic_utilities_js', ShareaholicUtilities::asset_url_admin('assets/pub/utilities.js'), false, ShareaholicUtilities::get_version());
         wp_enqueue_script('shareholic_bootstrap_js', plugins_url('assets/js/bootstrap.min.js', __FILE__), false, ShareaholicUtilities::get_version());
         wp_enqueue_script('shareholic_jquery_custom_js', plugins_url('assets/js/jquery_custom.js', __FILE__), false, ShareaholicUtilities::get_version());
         wp_enqueue_script('shareholic_jquery_ui_custom_js', plugins_url('assets/js/jquery_ui_custom.js', __FILE__), array('shareholic_jquery_custom_js'), ShareaholicUtilities::get_version());
         wp_enqueue_script('shareholic_modified_reveal_js', plugins_url('assets/js/jquery.reveal.modified.js', __FILE__), array('shareholic_jquery_custom_js', 'shareholic_jquery_ui_custom_js'), ShareaholicUtilities::get_version());
         wp_enqueue_script('shareholic_main_js', plugins_url('assets/js/main.js', __FILE__), false, ShareaholicUtilities::get_version());
         wp_enqueue_script('shareholic_admin_js', ShareaholicUtilities::asset_url_admin('media/js/platforms/wordpress/wordpress-admin.js'), false, ShareaholicUtilities::get_version(), true);
     }
 }
Ejemplo n.º 8
0
<script>
window.first_part_of_url = '<?php 
echo $settings['base_link'];
?>
';
window.verification_key = '<?php 
echo $settings['verification_key'];
?>
';
window.SHAREAHOLIC_PLUGIN_VERSION = '<?php 
echo ShareaholicUtilities::get_version();
?>
';
window.shareaholic_add_location_nonce = '<?php 
echo wp_create_nonce("shareaholic_add_location");
?>
';
</script>

<script type="text/javascript"
        data-sorendpoint="<?php 
echo Shareaholic::URL;
?>
"
        data-sorassetbase="<?php 
echo ShareaholicUtilities::asset_url('assets');
?>
"
        src="<?php 
echo ShareaholicUtilities::asset_url('assets/headerWidget.js');
?>
Ejemplo n.º 9
0
<div style="margin-top:45px;"></div>
<div class='clear'>
  <small class="muted">
    <?php 
echo sprintf(__('%sShareaholic for WordPress v' . ShareaholicUtilities::get_version() . '%s | %sPrivacy Policy%s | %sTerms of Service%s | %sSupport Center%s | %sAPI%s | %sSocial Analytics%s', 'shareaholic'), '<a href="https://shareaholic.com/?src=wp_admin" target="_new">', '</a>', '<a href="https://shareaholic.com/privacy/?src=wp_admin" target="_new">', '</a>', '<a href="https://shareaholic.com/terms/?src=wp_admin" target="_new">', '</a>', '<a href="http://support.shareaholic.com/" target="_new">', '</a>', '<a href="https://shareaholic.com/api/?src=wp_admin" target="_new">', '</a>', '<a href="https://shareaholic.com/publishers/analytics/' . ShareaholicUtilities::get_host() . '/30?src=wp_admin" target="_new">', '</a>');
?>
  </small>
  <br />
  <small class="muted">
    <?php 
echo sprintf(__('If you like our work, show some love and %sgive us a good rating%s. Made with much love in Boston, Massachusetts.', 'shareaholic'), '<a href="http://wordpress.org/support/view/plugin-reviews/shareaholic?rate=5#postform" target="_new">', '</a>');
?>
  </small>
  <br />
  <br />
  <iframe src="//www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Fshareaholic&amp;width&amp;layout=standard&amp;action=like&amp;show_faces=true&amp;share=false&amp;height=80&amp;width=500&amp;appId=207766518608" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe>
</div>

<!-- Start of Async HubSpot Analytics -->
<script type="text/javascript">
var _hsq = _hsq || [];
_hsq.push(["setContentType", "standard-page"]);
	(function(d,s,i,r) {
	if (d.getElementById(i)){return;}
	var n = d.createElement(s),e = document.getElementsByTagName(s)[0];
	n.id=i;n.src = '//js.hubspot.com/analytics/'+(Math.ceil(new Date()/r)*r)+'/210895.js';
	e.parentNode.insertBefore(n, e);
	})(document, "script", "hs-analytics",300000);
</script>
<!-- End of Async HubSpot Analytics Code -->