Example #1
0
function dsq_export_wp($post, $comments = null)
{
    global $wpdb;
    if (!$comments) {
        $comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = %d AND comment_agent NOT LIKE 'Disqus/%%'", $post->ID));
    }
    // start catching output
    ob_start();
    echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n";
    the_generator('export');
    ?>
<rss version="2.0"
    xmlns:excerpt="http://wordpress.org/export/<?php 
    echo WXR_VERSION;
    ?>
/excerpt/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dsq="https://disqus.com/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:wp="http://wordpress.org/export/<?php 
    echo WXR_VERSION;
    ?>
/"
>

<channel>
    <title><?php 
    bloginfo_rss('name');
    ?>
</title>
    <link><?php 
    bloginfo_rss('url');
    ?>
</link>
    <pubDate><?php 
    echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false);
    ?>
</pubDate>
    <generator>WordPress <?php 
    bloginfo_rss('version');
    ?>
; Disqus <?php 
    echo DISQUS_VERSION;
    ?>
</generator>
<?php 
    global $wp_query, $post;
    $wp_query->in_the_loop = true;
    // Fake being in the loop.
    setup_postdata($post);
    ?>
<item>
<title><?php 
    echo apply_filters('the_title_rss', $post->post_title);
    ?>
</title>
<link><?php 
    the_permalink_rss();
    ?>
</link>
<pubDate><?php 
    echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false);
    ?>
</pubDate>
<dc:creator><?php 
    echo dsq_export_wxr_cdata(get_the_author());
    ?>
</dc:creator>
<guid isPermaLink="false"><?php 
    the_guid();
    ?>
</guid>
<content:encoded><?php 
    echo dsq_export_wxr_cdata(apply_filters('the_content_export', $post->post_content));
    ?>
</content:encoded>
<dsq:thread_identifier><?php 
    echo dsq_identifier_for_post($post);
    ?>
</dsq:thread_identifier>
<wp:post_id><?php 
    echo $post->ID;
    ?>
</wp:post_id>
<wp:post_date_gmt><?php 
    echo $post->post_date_gmt;
    ?>
</wp:post_date_gmt>
<wp:comment_status><?php 
    echo $post->comment_status;
    ?>
</wp:comment_status>
<?php 
    if ($comments) {
        foreach ($comments as $c) {
            ?>
<wp:comment>
<wp:comment_id><?php 
            echo $c->comment_ID;
            ?>
</wp:comment_id>
<wp:comment_author><?php 
            echo dsq_export_wxr_cdata($c->comment_author);
            ?>
</wp:comment_author>
<wp:comment_author_email><?php 
            echo $c->comment_author_email;
            ?>
</wp:comment_author_email>
<wp:comment_author_url><?php 
            echo $c->comment_author_url;
            ?>
</wp:comment_author_url>
<wp:comment_author_IP><?php 
            echo $c->comment_author_IP;
            ?>
</wp:comment_author_IP>
<wp:comment_date><?php 
            echo $c->comment_date;
            ?>
</wp:comment_date>
<wp:comment_date_gmt><?php 
            echo $c->comment_date_gmt;
            ?>
</wp:comment_date_gmt>
<wp:comment_content><?php 
            echo dsq_export_wxr_cdata($c->comment_content);
            ?>
</wp:comment_content>
<wp:comment_approved><?php 
            echo $c->comment_approved;
            ?>
</wp:comment_approved>
<wp:comment_type><?php 
            echo $c->comment_type;
            ?>
</wp:comment_type>
<wp:comment_parent><?php 
            echo $c->comment_parent;
            ?>
</wp:comment_parent>
</wp:comment>
<?php 
        }
    }
    // comments
    ?>
    </item>
</channel>
</rss>
<?php 
    // end of WXR output
    $output = ob_get_clean();
    return $output;
}
Example #2
0
function dsq_comments_text($comment_text)
{
    global $post;
    if (dsq_can_replace()) {
        return '<span class="dsq-postid" data-dsqidentifier="' . esc_attr(dsq_identifier_for_post($post)) . '">' . $comment_text . '</span>';
    } else {
        return $comment_text;
    }
}
    ?>
            </ul>
        </div>
    <?php 
}
?>
</div>

<script type="text/javascript">
/* <![CDATA[ */
    var disqus_url = '<?php 
echo get_permalink();
?>
';
    var disqus_identifier = '<?php 
echo dsq_identifier_for_post($post);
?>
';
    var disqus_container_id = 'disqus_thread';
    var disqus_domain = '<?php 
echo DISQUS_DOMAIN;
?>
';
    var disqus_shortname = '<?php 
echo strtolower(get_option('disqus_forum_url'));
?>
';
    var disqus_title = <?php 
echo cf_json_encode(dsq_title_for_post($post));
?>
;
Example #4
0
function dsq_export_wp($posts)
{
    global $wpdb;
    $categories = (array) get_categories('get=all');
    $tags = (array) get_tags('get=all');
    /**
     * {@internal Missing Short Description}}
     *
     * @since unknown
     *
     * @param unknown_type $categories
     */
    function wxr_missing_parents($categories)
    {
        if (!is_array($categories) || empty($categories)) {
            return array();
        }
        foreach ($categories as $category) {
            $parents[$category->term_id] = $category->parent;
        }
        $parents = array_unique(array_diff($parents, array_keys($parents)));
        if ($zero = array_search('0', $parents)) {
            unset($parents[$zero]);
        }
        return $parents;
    }
    while ($parents = wxr_missing_parents($categories)) {
        $found_parents = get_categories("include=" . join(', ', $parents));
        if (is_array($found_parents) && count($found_parents)) {
            $categories = array_merge($categories, $found_parents);
        } else {
            break;
        }
    }
    // Put them in order to be inserted with no child going before its parent
    $pass = 0;
    $passes = 1000 + count($categories);
    while (($cat = array_shift($categories)) && ++$pass < $passes) {
        if ($cat->parent == 0 || isset($cats[$cat->parent])) {
            $cats[$cat->term_id] = $cat;
        } else {
            $categories[] = $cat;
        }
    }
    unset($categories);
    /**
     * Place string in CDATA tag.
     *
     * @since unknown
     *
     * @param string $str String to place in XML CDATA tag.
     */
    function wxr_cdata($str)
    {
        if (seems_utf8($str) == false) {
            $str = utf8_encode($str);
        }
        // $str = ent2ncr(esc_html($str));
        $str = "<![CDATA[{$str}" . (substr($str, -1) == ']' ? ' ' : '') . "]]>";
        return $str;
    }
    /**
     * {@internal Missing Short Description}}
     *
     * @since unknown
     *
     * @return string Site URL.
     */
    function wxr_site_url()
    {
        global $current_site;
        // mu: the base url
        if (isset($current_site->domain)) {
            return 'http://' . $current_site->domain . $current_site->path;
        } else {
            return get_bloginfo_rss('url');
        }
    }
    /**
     * {@internal Missing Short Description}}
     *
     * @since unknown
     *
     * @param object $c Category Object
     */
    function wxr_cat_name($c)
    {
        if (empty($c->name)) {
            return;
        }
        echo '<wp:cat_name>' . wxr_cdata($c->name) . '</wp:cat_name>';
    }
    /**
     * {@internal Missing Short Description}}
     *
     * @since unknown
     *
     * @param object $c Category Object
     */
    function wxr_category_description($c)
    {
        if (empty($c->description)) {
            return;
        }
        echo '<wp:category_description>' . wxr_cdata($c->description) . '</wp:category_description>';
    }
    /**
     * {@internal Missing Short Description}}
     *
     * @since unknown
     *
     * @param object $t Tag Object
     */
    function wxr_tag_name($t)
    {
        if (empty($t->name)) {
            return;
        }
        echo '<wp:tag_name>' . wxr_cdata($t->name) . '</wp:tag_name>';
    }
    /**
     * {@internal Missing Short Description}}
     *
     * @since unknown
     *
     * @param object $t Tag Object
     */
    function wxr_tag_description($t)
    {
        if (empty($t->description)) {
            return;
        }
        echo '<wp:tag_description>' . wxr_cdata($t->description) . '</wp:tag_description>';
    }
    /**
     * {@internal Missing Short Description}}
     *
     * @since unknown
     */
    function wxr_post_taxonomy()
    {
        $categories = get_the_category();
        $tags = get_the_tags();
        $the_list = '';
        $filter = 'rss';
        if (!empty($categories)) {
            foreach ((array) $categories as $category) {
                $cat_name = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
                // for backwards compatibility
                $the_list .= "\n\t\t<category><![CDATA[{$cat_name}]]></category>\n";
                // forwards compatibility: use a unique identifier for each cat to avoid clashes
                // http://trac.wordpress.org/ticket/5447
                $the_list .= "\n\t\t<category domain=\"category\" nicename=\"{$category->slug}\"><![CDATA[{$cat_name}]]></category>\n";
            }
        }
        if (!empty($tags)) {
            foreach ((array) $tags as $tag) {
                $tag_name = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
                $the_list .= "\n\t\t<category domain=\"tag\"><![CDATA[{$tag_name}]]></category>\n";
                // forwards compatibility as above
                $the_list .= "\n\t\t<category domain=\"tag\" nicename=\"{$tag->slug}\"><![CDATA[{$tag_name}]]></category>\n";
            }
        }
        echo $the_list;
    }
    // start catching output
    ob_start();
    echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n";
    ?>
<!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. -->
<!-- It contains information about your blog's posts, comments, and categories. -->
<!-- You may use this file to transfer that content from one site to another. -->
<!-- This file is not intended to serve as a complete backup of your blog. -->

<!-- To import this information into a WordPress blog follow these steps. -->
<!-- 1. Log into that blog as an administrator. -->
<!-- 2. Go to Tools: Import in the blog's admin panels (or Manage: Import in older versions of WordPress). -->
<!-- 3. Choose "WordPress" from the list. -->
<!-- 4. Upload this file using the form provided on that page. -->
<!-- 5. You will first be asked to map the authors in this export file to users -->
<!--    on the blog.  For each author, you may choose to map to an -->
<!--    existing user on the blog or to create a new user -->
<!-- 6. WordPress will then import each of the posts, comments, and categories -->
<!--    contained in this file into your blog -->

<?php 
    the_generator('export');
    ?>
<rss version="2.0"
	xmlns:excerpt="http://wordpress.org/export/<?php 
    echo WXR_VERSION;
    ?>
/excerpt/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dsq="http://www.disqus.com/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:wp="http://wordpress.org/export/<?php 
    echo WXR_VERSION;
    ?>
/"
>

<channel>
	<title><?php 
    bloginfo_rss('name');
    ?>
</title>
	<link><?php 
    bloginfo_rss('url');
    ?>
</link>
	<description><?php 
    bloginfo_rss("description");
    ?>
</description>
	<pubDate><?php 
    echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false);
    ?>
</pubDate>
	<generator>http://wordpress.org/?v=<?php 
    bloginfo_rss('version');
    ?>
</generator>
	<language><?php 
    echo get_option('rss_language');
    ?>
</language>
	<wp:wxr_version><?php 
    echo WXR_VERSION;
    ?>
</wp:wxr_version>
	<wp:base_site_url><?php 
    echo wxr_site_url();
    ?>
</wp:base_site_url>
	<wp:base_blog_url><?php 
    bloginfo_rss('url');
    ?>
</wp:base_blog_url>
<?php 
    if ($cats) {
        foreach ($cats as $c) {
            ?>
	<wp:category><wp:category_nicename><?php 
            echo $c->slug;
            ?>
</wp:category_nicename><wp:category_parent><?php 
            echo $c->parent ? $cats[$c->parent]->name : '';
            ?>
</wp:category_parent><?php 
            wxr_cat_name($c);
            wxr_category_description($c);
            ?>
</wp:category>
<?php 
        }
    }
    if ($tags) {
        foreach ($tags as $t) {
            ?>
	<wp:tag><wp:tag_slug><?php 
            echo $t->slug;
            ?>
</wp:tag_slug><?php 
            wxr_tag_name($t);
            wxr_tag_description($t);
            ?>
</wp:tag>
<?php 
        }
    }
    if (count($posts)) {
        global $wp_query, $post;
        $wp_query->in_the_loop = true;
        // Fake being in the loop.
        foreach ($posts as $post) {
            setup_postdata($post);
            ?>
<item>
<title><?php 
            echo apply_filters('the_title_rss', $post->post_title);
            ?>
</title>
<link><?php 
            the_permalink_rss();
            ?>
</link>
<pubDate><?php 
            echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false);
            ?>
</pubDate>
<dc:creator><?php 
            echo wxr_cdata(get_the_author());
            ?>
</dc:creator>
<?php 
            wxr_post_taxonomy();
            ?>

<guid isPermaLink="false"><?php 
            the_guid();
            ?>
</guid>
<description></description>
<content:encoded><?php 
            echo wxr_cdata(apply_filters('the_content_export', $post->post_content));
            ?>
</content:encoded>
<excerpt:encoded><?php 
            echo wxr_cdata(apply_filters('the_excerpt_export', $post->post_excerpt));
            ?>
</excerpt:encoded>
<dsq:thread_identifier><?php 
            echo dsq_identifier_for_post($post);
            ?>
</dsq:thread_identifier>
<wp:post_id><?php 
            echo $post->ID;
            ?>
</wp:post_id>
<wp:post_date><?php 
            echo $post->post_date;
            ?>
</wp:post_date>
<wp:post_date_gmt><?php 
            echo $post->post_date_gmt;
            ?>
</wp:post_date_gmt>
<wp:comment_status><?php 
            echo $post->comment_status;
            ?>
</wp:comment_status>
<wp:ping_status><?php 
            echo $post->ping_status;
            ?>
</wp:ping_status>
<wp:post_name><?php 
            echo $post->post_name;
            ?>
</wp:post_name>
<wp:status><?php 
            echo $post->post_status;
            ?>
</wp:status>
<wp:post_parent><?php 
            echo $post->post_parent;
            ?>
</wp:post_parent>
<wp:menu_order><?php 
            echo $post->menu_order;
            ?>
</wp:menu_order>
<wp:post_type><?php 
            echo $post->post_type;
            ?>
</wp:post_type>
<?php 
            $comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = %d AND comment_agent NOT LIKE 'Disqus/%%'", $post->ID));
            if ($comments) {
                foreach ($comments as $c) {
                    ?>
<wp:comment>
<wp:comment_id><?php 
                    echo $c->comment_ID;
                    ?>
</wp:comment_id>
<wp:comment_author><?php 
                    echo wxr_cdata($c->comment_author);
                    ?>
</wp:comment_author>
<wp:comment_author_email><?php 
                    echo $c->comment_author_email;
                    ?>
</wp:comment_author_email>
<wp:comment_author_url><?php 
                    echo $c->comment_author_url;
                    ?>
</wp:comment_author_url>
<wp:comment_author_IP><?php 
                    echo $c->comment_author_IP;
                    ?>
</wp:comment_author_IP>
<wp:comment_date><?php 
                    echo $c->comment_date;
                    ?>
</wp:comment_date>
<wp:comment_date_gmt><?php 
                    echo $c->comment_date_gmt;
                    ?>
</wp:comment_date_gmt>
<wp:comment_content><?php 
                    echo wxr_cdata($c->comment_content);
                    ?>
</wp:comment_content>
<wp:comment_approved><?php 
                    echo $c->comment_approved;
                    ?>
</wp:comment_approved>
<wp:comment_type><?php 
                    echo $c->comment_type;
                    ?>
</wp:comment_type>
<wp:comment_parent><?php 
                    echo $c->comment_parent;
                    ?>
</wp:comment_parent>
<wp:comment_user_id><?php 
                    echo $c->user_id;
                    ?>
</wp:comment_user_id>
</wp:comment>
<?php 
                }
            }
            // comments
            ?>
	</item>
<?php 
        }
    }
    // count(posts)
    ?>
</channel>
</rss>
<?php 
    // end of WXR output
    $output = ob_get_contents();
    ob_end_clean();
    return $output;
}
function dsq_comments_number($comment_text)
{
    global $post;
    if (dsq_can_replace()) {
        return '<span class="dsq-postid" rel="' . htmlspecialchars(dsq_identifier_for_post($post)) . '">View Comments</span>';
    } else {
        return $comment_text;
    }
}
Example #6
0
        'width' => '800',
        'height' => '700',
    );
}

if ( get_option('dsq_external_js') == '1' ) {
    wp_register_script( 'dsq_embed_script', plugins_url( '/media/js/disqus.js', __FILE__ ) );
    wp_localize_script( 'dsq_embed_script', 'embedVars', $embed_vars );
    wp_enqueue_script( 'dsq_embed_script', plugins_url( '/media/js/disqus.js', __FILE__ ) );
}
else {

?>
<script type="text/javascript">
var disqus_url = '<?php echo get_permalink(); ?>';
var disqus_identifier = '<?php echo dsq_identifier_for_post($post); ?>';
var disqus_container_id = 'disqus_thread';
var disqus_shortname = '<?php echo strtolower(get_option('disqus_forum_url')); ?>';
var disqus_title = <?php echo cf_json_encode( dsq_title_for_post($post) ); ?>;
var disqus_config_custom = window.disqus_config;
var disqus_config = function () {
    /*
    All currently supported events:
    onReady: fires when everything is ready,
    onNewComment: fires when a new comment is posted,
    onIdentify: fires when user is authenticated
    */
    
    <?php
    $sso = dsq_sso();
    if ($sso) {
		</ul>
		<?php 
paginate_comments_links();
?>
	</div>
</div>
		
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>

<script type="text/javascript" charset="utf-8">
	var disqus_url = <?php 
echo wp_json_encode(get_permalink());
?>
;
	var disqus_identifier = <?php 
echo wp_json_encode(dsq_identifier_for_post($post));
?>
;
	var disqus_container_id = 'disqus_thread';
	var disqus_domain = <?php 
echo wp_json_encode(DISQUS_DOMAIN);
?>
;
	var disqus_shortname = <?php 
echo wp_json_encode(strtolower(get_option('disqus_forum_url')));
?>
;
	<?php 
if (false && get_option('disqus_developer')) {
    ?>
		var disqus_developer = 1;
                </div>
            </div><!-- .navigation -->
<?php 
    }
    // check for comment navigation
    ?>

        </div>

    <?php 
}
?>
</div>

<?php 
global $wp_version;
$embed_vars = array('disqusConfig' => array('platform' => 'wordpress@' . $wp_version, 'language' => apply_filters('disqus_language_filter', '')), 'disqusIdentifier' => dsq_identifier_for_post($post), 'disqusShortname' => strtolower(get_option('disqus_forum_url')), 'disqusTitle' => dsq_title_for_post($post), 'disqusUrl' => get_permalink(), 'options' => array('manualSync' => get_option('disqus_manual_sync')), 'postId' => $post->ID);
// Add SSO vars if enabled
$sso = dsq_sso();
if ($sso) {
    global $current_site;
    foreach ($sso as $k => $v) {
        $embed_vars['disqusConfig'][$k] = $v;
    }
    $siteurl = site_url();
    $sitename = get_bloginfo('name');
    $embed_vars['disqusConfig']['sso'] = array('name' => wp_specialchars_decode($sitename, ENT_QUOTES), 'button' => get_option('disqus_sso_button'), 'url' => $siteurl . '/wp-login.php', 'logout' => $siteurl . '/wp-login.php?action=logout', 'width' => '800', 'height' => '700');
}
wp_register_script('dsq_embed_script', plugins_url('/media/js/disqus.js', __FILE__));
wp_localize_script('dsq_embed_script', 'embedVars', $embed_vars);
wp_enqueue_script('dsq_embed_script', plugins_url('/media/js/disqus.js', __FILE__));
 function get_thread($post)
 {
     $identifier = dsq_identifier_for_post($post);
     $response = $this->api->get_thread_posts(null, array('thread_identifier' => $identifier, 'filter' => 'approved'));
     return $response;
 }