public static function GetContent($ids, $orderby = null)
{
$logger = \Swiftriver\Core\Setup::GetLogger();
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [Method Invoked]", \PEAR_LOG_DEBUG);
$content = array();
if (!\is_array($ids) || \count($ids) < 1) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [No Ids supplied]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [Method Finished]", \PEAR_LOG_DEBUG);
return $content;
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [START: Building SQL Statment]", \PEAR_LOG_DEBUG);
$getContentSql = "CALL SC_GetContent( :ids )";
$idsArray = "(";
foreach ($ids as $id) {
$idsArray .= "'{$id}',";
}
$idsArray = \rtrim($idsArray, ",") . ")";
$getTagsSql = "CALL SC_SelectTags ( :id )";
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [END: Building SQL Statment]", \PEAR_LOG_DEBUG);
try {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [START: Connecting via PDO]", \PEAR_LOG_DEBUG);
$db = self::PDOConnection();
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [END: Connecting via PDO]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [START: Preparing PDO statements]", \PEAR_LOG_DEBUG);
$getContentStatement = $db->prepare($getContentSql);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [END: Preparing PDO statements]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [START: Executing PDO statement]", \PEAR_LOG_DEBUG);
$result = $getContentStatement->execute(array(":ids" => $idsArray));
if ($result === false) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [An Exception was thrown by the PDO framwork]", \PEAR_LOG_ERR);
$errorInfo = $getContentStatement->errorInfo();
$errorMessage = $errorInfo[2];
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [{$errorMessage}]", \PEAR_LOG_ERR);
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [END: Executing PDO statement]", \PEAR_LOG_DEBUG);
if (isset($result) && $result != null && $result !== 0) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [START: Looping over results]", \PEAR_LOG_DEBUG);
foreach ($getContentStatement->fetchAll() as $row) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [START: Constructing content Object from json]", \PEAR_LOG_DEBUG);
$sourcejson = $row["sourcejson"];
$source = \Swiftriver\Core\ObjectModel\ObjectFactories\SourceFactory::CreateSourceFromJSON($sourcejson);
$contentjson = $row["contentjson"];
$item = \Swiftriver\Core\ObjectModel\ObjectFactories\ContentFactory::CreateContent($source, $contentjson);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [END: Constructing content Object from json]", \PEAR_LOG_DEBUG);
$content[] = $item;
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [END: Looping over results]", \PEAR_LOG_DEBUG);
}
$db = null;
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [START: Getting Content Tags]", \PEAR_LOG_DEBUG);
foreach ($content as $item) {
$db = self::PDOConnection();
$getTagsStatement = $db->prepare($getTagsSql);
$result = $getTagsStatement->execute(array("id" => $item->id));
if ($result === false) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [An Exception was thrown by the PDO framwork]", \PEAR_LOG_ERR);
$errorInfo = $getTagsStatement->errorInfo();
$errorMessage = $errorInfo[2];
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [{$errorMessage}]", \PEAR_LOG_ERR);
}
if (isset($result) && $result != null && $result !== 0) {
$item->tags = array();
foreach ($getTagsStatement->fetchAll() as $row) {
$item->tags[] = new \Swiftriver\Core\ObjectModel\Tag($row["text"], $row["type"]);
}
}
$db = null;
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [START: Getting Content Tags]", \PEAR_LOG_DEBUG);
} catch (\PDOException $e) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [An Exception was thrown:]", \PEAR_LOG_ERR);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [{$e}]", \PEAR_LOG_ERR);
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetContent [Method Finished]", \PEAR_LOG_DEBUG);
return $content;
}