public function testPublishText()
 {
     $xml = simplexml_load_file(APPLICATION_PATH . '/../tests/fixtures/' . self::TEXT_XML);
     $item = NewsItem::createFromXml($xml->itemSet->newsItem);
     $articles = \Article::GetByName($item->getContentMeta()->getHeadline(), null, null, null, null, true);
     foreach ($articles as $article) {
         $article->delete();
     }
     $this->assertFalse($item->isPublished());
     $this->service->publish($item);
     $this->assertTrue($item->isPublished());
     $this->assertInstanceOf('DateTime', $item->getPublished());
     $articles = \Article::GetByName($item->getContentMeta()->getHeadline(), null, null, null, null, true);
     $this->assertEquals(1, count($articles));
     $article = $articles[0];
     $this->assertEquals($item->getContentMeta()->getHeadline(), $article->getTitle());
     $this->assertEquals('newsml', $article->getType());
     $this->assertEquals($item->getItemMeta()->getFirstCreated()->format('Y-m-d H:i:s'), $article->getCreationDate());
     $articleData = $article->getArticleData();
     $this->assertEquals($item->getId(), $articleData->getFieldValue('guid', true));
     $this->assertEquals($item->getVersion(), $articleData->getFieldValue('version'));
     $this->assertEquals($item->getContentMeta()->getUrgency(), $articleData->getFieldValue('urgency'));
     $this->assertEquals($item->getRightsInfo()->first()->getCopyrightNotice(), $articleData->getFieldValue('copyright'));
     $this->assertEquals($item->getItemMeta()->getProvider(), $articleData->getFieldValue('provider'));
     $this->assertEquals($item->getContentMeta()->getDescription(), $articleData->getFieldValue('description'));
     $this->assertEquals($item->getContentMeta()->getDateline(), $articleData->getFieldValue('dateline'));
     $this->assertEquals($item->getContentMeta()->getByline(), $articleData->getFieldValue('byline'));
     $this->assertEquals($item->getContentMeta()->getCreditline(), $articleData->getFieldValue('creditline'));
     $this->assertEquals((string) $item->getContentSet()->getInlineContent(), $articleData->getFieldValue('inlinecontent'));
 }
/**
 * Campsite set_article function plugin
 *
 * Type:     function
 * Name:     set_article
 * Purpose:
 *
 * @param array
 *     $p_params[name] The Name of the article to be set
 *     $p_params[number] The Number of the article to be set
 * @param object
 *     $p_smarty The Smarty object
 */
function smarty_function_set_article($p_params, &$p_smarty)
{
    // gets the context variable
    $campsite = $p_smarty->getTemplateVars('gimme');
    if (isset($p_params['number'])) {
        $attrName = 'number';
        $attrValue = $p_params['number'];
        $articleNumber = intval($p_params['number']);
    } elseif (isset($p_params['name'])) {
        $articles = Article::GetByName($p_params['name'], $campsite->publication->identifier, $campsite->issue->number, $campsite->section->number, $campsite->language->number);
        if (isset($articles[0])) {
            $attrName = 'name';
            $attrValue = $p_params['name'];
            $articleNumber = intval($articles[0]->getArticleNumber());
        } else {
            $campsite->article->trigger_invalid_value_error($attrName, $attrValue, $p_smarty);
            return false;
        }
    } else {
        $property = array_shift(array_keys($p_params));
        CampTemplate::singleton()->trigger_error("invalid parameter '{$property}' in set_article");
        return false;
    }
    $articleObj = new MetaArticle($campsite->language->number, $articleNumber);
    if ($articleObj->defined) {
        $campsite->article = $articleObj;
    } else {
        $campsite->article->trigger_invalid_value_error($attrName, $attrValue, $p_smarty);
    }
}
Example #3
0
     if ($f_mode == "single") {
         $url = camp_html_article_url($tmpArticle, $tmpArticle->getLanguageId(), "edit.php");
     } else {
         $url = $destArticleIndexUrl;
     }
     ArticleIndex::RunIndexer(3, 10, true);
     camp_html_goto_page($url);
 } elseif ($f_action == "submit") {
     // Submit all the articles requested.
     $tmpArticles = array();
     foreach ($doAction as $articleNumber => $languageArray) {
         foreach ($languageArray as $languageId => $action) {
             $tmpArticle = new Article($languageId, $articleNumber);
             $tmpArticle->setTitle($articleNames[$articleNumber][$languageId]);
             // Check if the name already exists in the destination section.
             $conflictingArticles = Article::GetByName($tmpArticle->getTitle(), $f_destination_publication_id, $f_destination_issue_number, $f_destination_section_number, null, true);
             if (count($conflictingArticles) > 0) {
                 $conflictingArticle = array_pop($conflictingArticles);
                 $conflictingArticleLink = camp_html_article_url($conflictingArticle, $conflictingArticle->getLanguageId(), "edit.php");
                 camp_html_add_msg($translator->trans("The article could not be submitted.", array(), 'articles') . " " . $translator->trans("You cannot have two articles in the same section with the same name.  The article name you specified is already in use by the article '\$1'.", array('$1' => "<a href='{$conflictingArticleLink}'>" . $conflictingArticle->getName() . "</a>"), 'articles'));
                 $args = $_REQUEST;
                 unset($args["action_button"]);
                 unset($args["f_article_code"]);
                 $argsStr = camp_implode_keys_and_values($args, "=", "&");
                 foreach ($_REQUEST["f_article_code"] as $code) {
                     $argsStr .= "&f_article_code[]={$code}";
                 }
                 $backLink = "/{$ADMIN}/articles/duplicate.php?{$argsStr}";
                 camp_html_goto_page($backLink);
             } else {
                 $tmpArticle->move($f_destination_publication_id, $f_destination_issue_number, $f_destination_section_number);
Example #4
0
         if ($f_section_number > 0) {
             $sectionObj = new Section($f_publication_id, $f_issue_number, $f_article_language_id, $f_section_number);
             if (!$sectionObj->exists()) {
                 camp_html_display_error($translator->trans('Section does not exist.'), $backlink);
                 exit;
             }
         }
     }
 }
 // Loads article data from XML file into database
 $xmlArticle = array();
 $articleFields = array();
 $errorMessages = array();
 $articleCount = 0;
 foreach ($xml->article as $article) {
     $existingArticles = Article::GetByName((string) $article->name, $f_publication_id, $f_issue_number, $f_section_number, $f_article_language_id, true);
     // There is already an article with same name and language
     if (count($existingArticles) > 0) {
         $existingArticle = array_pop($existingArticles);
         // Is overwrite articles false? then skip and process next article
         if ($f_overwrite_articles == 'N') {
             $errorMessages[][] = $translator->trans('Article <i>$1</i> already exists, and was not overwritten.<br />', array('$1' => $article->name), 'articles');
             continue;
         }
     }
     if (isset($existingArticle) && $existingArticle->exists()) {
         $articleObj = $existingArticle;
     } else {
         $articleObj = new Article($f_article_language_id);
         $articleName = (string) $article->name;
         $articleObj->create($f_article_type, $articleName, $f_publication_id, $f_issue_number, $f_section_number);
Example #5
0
        if (!$issueObj->exists()) {
            camp_html_display_error(getGS('Issue does not exist.'));
            exit;
        }
        if ($section_number > 0) {
            $sectionObj = new Section($publication_id, $issue_number, $f_article_language, $section_number);
            if (!$sectionObj->exists()) {
                camp_html_display_error(getGS('Section does not exist.'));
                exit;
            }
        }
    }
}
// Create article
$articleObj = new Article($f_article_language);
$conflictingArticles = Article::GetByName($f_article_name, $publication_id, $issue_number, $section_number, null, true);
if (count($conflictingArticles) > 0) {
    $conflictingArticle = array_pop($conflictingArticles);
    $conflictingArticleLink = camp_html_article_url($conflictingArticle, $conflictingArticle->getLanguageId(), 'edit.php');
    camp_html_add_msg(getGS("You cannot have two articles in the same section with the same name.  The article name you specified is already in use by the article '\$1'.", "<a href='{$conflictingArticleLink}'>" . $conflictingArticle->getName() . "</a>"));
    camp_html_goto_page($backLink);
} else {
    $articleObj->create($f_article_type, $f_article_name, $publication_id, $issue_number, $section_number);
}
if ($articleObj->exists()) {
    $author = $this->_helper->service('user')->getCurrentUser()->getAuthorId();
    if (empty($author)) {
        $articleObj->setCreatorId($g_user->getUserId());
        $authorObj = new Author($g_user->getRealName());
        if (!$authorObj->exists()) {
            $authorData = Author::ReadName($g_user->getRealName());