<?php
 
/************************************************************* 
 
 * This script is developed by Arturs Sosins aka ar2rsawseen, http://webcodingeasy.com 
 
 * Feel free to distribute and modify code, but keep reference to its creator 
 
 * 
 
 * Disqus Import class can generate XML file from provided information
 
 * about articles and comments, to be imported in your Disqus commenting system.
 
 * This helps to transfer comments from any existing system to Disqus.
 
 * 
 
 * For more information, examples and online documentation visit:  
 
 * http://webcodingeasy.com/PHP-classes/Import-comments-in-Disqus
 
**************************************************************/
 
 
date_default_timezone_set("Europe/Helsinki");
 
 
//usually you would retrieve it from database, but...
 
 
//here we have some articles on our blog
 
$articles = array(
 
    1 => array(
 
        "title" => "This is a cool article about Life",
 
        "link" => "http://awesomewebsite.com/article1",
 
        "article_text" => "This website does this and that. How do you like it?"
 
    ),
 
    2 => array(
 
        "title" => "Another cool article",
 
        "link" => "http://awesomewebsite.com/article2",
 
        "article_text" => "This article is also so cool!"
 
    )
 
);
 
 
//and here we have some comments
 
$comments = array(
 
    array(
 
        "ID" => 1,
 
        "username" => "somedude",
 
        "email" => "[email protected]",
 
        "pub_date" => 1364114398,
 
        "comment" => "Cool website",
 
        "status" => "active",
 
        "articleID" => 1
 
    ),
 
    array(
 
        "ID" => 2,
 
        "username" => "somechick",
 
        "email" => "[email protected]",
 
        "pub_date" => 1364114398,
 
        "comment" => "Completely agree",
 
        "status" => "active",
 
        "articleID" => 1,
 
        "repliedTo" => 1
 
    ),
 
    array(
 
        "ID" => 3,
 
        "username" => "someguy",
 
        "email" => "[email protected]",
 
        "pub_date" => 1364114398,
 
        "comment" => "Also cool article ;)",
 
        "status" => "active",
 
        "articleID" => 2
 
    )
 
);
 
 
//import importer (no joke intented :) )
 
include("./disqus_import.php");
 
 
//create instance of generator
 
$d = new Disqus\Generator();
 
 
//here we will store instances of articles
 
$arts = array();
 
 
//loop through all the comments
 
foreach($comments as $comment)
 
{
 
    //if there is no instance for this article
 
    if(!isset($arts[$comment["articleID"]]))
 
    {
 
        //create instance
 
        $arts[$comment["articleID"]] = new Disqus\Article();
 
        
 
        //provide information about article
 
        $arts[$comment["articleID"]]->set_title($articles[$comment["articleID"]]["title"]);
 
        $arts[$comment["articleID"]]->set_link($articles[$comment["articleID"]]["link"]);
 
        $arts[$comment["articleID"]]->set_contents($articles[$comment["articleID"]]["article_text"]);
 
        
 
        //add article to generator
 
        $d->add_article($arts[$comment["articleID"]]);
 
    }
 
    
 
    //create comment instance
 
    $com = new Disqus\Comment();
 
    
 
    //provide information about comment
 
    $com->set_id($comment["ID"]);
 
    $com->set_author($comment["username"]);
 
    $com->set_author_email($comment["email"]);
 
    $com->set_comment_date(date("Y-m-d H:i:s", $comment["pub_date"]));
 
    $com->set_content($comment["comment"]);
 
    if($comment["status"] == "active")
 
    {
 
        $com->set_approved(1);
 
    }
 
    else
 
    {
 
        $com->set_approved(0);
 
    }
 
    if(isset($comment["repliedTo"]))
 
    {
 
        $com->set_parent($comment["repliedTo"]);
 
    }
 
    
 
    //add comment to article
 
    $arts[$comment["articleID"]]->add_comment($com);
 
}
 
 
//output xml
 
echo $d->generate();
 
?>
 
 |