/** * @return array */ public static function GetEvents() { $tmpEvent = new Event(); $columns = implode(',', $tmpEvent->getColumnNames(true)); $queryStr = "SELECT {$columns} FROM Events ORDER BY Id"; $events = DbObjectArray::Create('Event', $queryStr); return $events; }
/** * Return an array of all time units. * @return array */ public static function GetTimeUnits($p_languageCode) { $queryStr = "SELECT TimeUnits.Unit, TimeUnits.Name " . " FROM TimeUnits, Languages " . " WHERE TimeUnits.IdLanguage = Languages.Id " . " AND Languages.Code = '{$p_languageCode}'" . " ORDER BY TimeUnits.Unit ASC"; $timeUnits = DbObjectArray::Create('TimeUnit', $queryStr); if (count($timeUnits) == 0) { $queryStr = "SELECT TimeUnits.Unit, TimeUnits.Name " . " FROM TimeUnits, Languages " . " WHERE TimeUnits.IdLanguage = Languages.Id " . " AND Languages.Code = 'en'" . " ORDER BY TimeUnits.Unit ASC"; $timeUnits = DbObjectArray::Create('TimeUnit', $queryStr); } return $timeUnits; }
/** * Get all the actions that currently need to be performed. * @return array */ public static function GetPendingActions() { $datetime = strftime("%Y-%m-%d %H:%M:00"); $queryStr = "SELECT * FROM ArticlePublish, Articles " . " WHERE ArticlePublish.fk_article_number=Articles.Number" . " AND ArticlePublish.time_action <= '$datetime'" . " AND ArticlePublish.is_completed != 'Y'" . " AND Articles.Published != 'N'" . " ORDER BY ArticlePublish.time_action ASC"; $result = DbObjectArray::Create('ArticlePublish', $queryStr); return $result; } // fn GetPendingActions
/** * Get all users matching the given parameters. * * @param boolean $p_onlyAdmin * @param string $p_userType * * @return array */ public static function GetUsers($p_onlyAdmin = true, $p_userType = null) { global $g_ado_db; $constraints = array(); if ($p_onlyAdmin) { $constraints[] = "Reader='N'"; } if (!is_null($p_userType)) { $constraints[] = "fk_user_type='".$p_userType."'"; } if (count($constraints) > 0) { $whereStr = " WHERE ".implode(" AND ", $constraints); } $sql = "SELECT * FROM liveuser_users " . $whereStr; return DbObjectArray::Create("User", $sql); } // fn GetUsers
// New Section checking // Verify there is a number for the section newSectionNumber = form.destination_section_new_id.value.trim(); if (form.section_chooser[1].checked && (newSectionNumber == "")) { alert('<?php putGS("You must select a section."); ?>'); return false; } // Verify there is a name for the section if (form.section_chooser[1].checked && (form.destination_section_new_name.value.trim() == "")) { alert('<?php putGS("You must specify a name for the section."); ?>'); return false; } // Check if user specified an existing section in the "New Section" dialog. existingSections = [ <?php p(implode(',', DbObjectArray::GetColumn($allSections, 'Number'))); ?> ]; for (i = 0; i < existingSections.length; i++ ) { if (newSectionNumber == existingSections[i]) { alert('<?php putGS("The section number specified already exists, please specify a different value or use the dropdown to find an existing section."); ?>'); return false; } } } return true; } // fn CustomValidator_DuplicateSection </script> <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1" class="action_buttons" style="padding-top: 5px;"> <TR> <TD><A HREF="/<?php echo $ADMIN; ?>/sections/?Pub=<?php p($f_src_publication_id); ?>&Issue=<?php p($f_src_issue_number); ?>&Language=<?php p($f_language_id); ?>"><IMG SRC="<?php echo $Campsite["ADMIN_IMAGE_BASE_URL"]; ?>/left_arrow.png" BORDER="0"></A></TD> <TD><A HREF="/<?php echo $ADMIN; ?>/sections/?Pub=<?php p($f_src_publication_id); ?>&Issue=<?php p($f_src_issue_number); ?>&Language=<?php p($f_language_id); ?>"><B><?php putGS("Section List"); ?></B></A></TD>
/** * @return array */ public static function GetAuthors() { $tmpAuthor = new Author(); $columns = implode(',', $tmpAuthor->getColumnNames(true)); $queryStr = "SELECT {$columns}\n FROM " . self::TABLE . ' ORDER BY first_name'; $authors = DbObjectArray::Create('Author', $queryStr); return $authors; }
/** * Get the Blogs that have the given Topic. * @param int $p_fk_topic_id * @return array */ public static function XXGetBlogsWithTopic($p_fk_topic_id) { global $g_ado_db; $blogIds = array(); $queryStr = "SELECT fk_blog_id FROM BlogTopics WHERE fk_topic_id = $p_fk_topic_id"; $rows = $g_ado_db->GetAll($queryStr); if (is_array($rows)) { foreach ($rows as $row) { $blogIds[] = $row['fk_blog_id']; } } $queryStr = 'SELECT DISTINCT(BlogType) FROM TopicFields'; $rows = $g_ado_db->GetAll($queryStr); foreach ($rows as $row) { $queryStr = "SELECT FieldName FROM TopicFields WHERE BlogType = '" . $row['BlogType'] . "'"; $rows2 = $g_ado_db->GetAll($queryStr); if (!is_array($rows2) || sizeof($rows2) == 0) { continue; } $columns = ''; foreach ($rows2 as $row2) { $columns .= " OR F" . $row2['FieldName'] . " = $p_fk_topic_id"; } $columns = substr($columns, 3); $queryStr = "SELECT DISTINCT(fk_blog_id) FROM X" . $row['BlogType'] . " WHERE $columns"; $rows2 = $g_ado_db->GetAll($queryStr); if (!is_array($rows2)) { continue; } foreach ($rows2 as $row2) { foreach ($row2 as $fieldName=>$value) { $blogIds[] = $value; } } } if (sizeof($blogIds) == 0) { return null; } $blogIds = array_unique($blogIds); $tmpBlog = new Blog(); $columnNames = implode(',', $tmpBlog->getColumnNames(true)); $queryStr = "SELECT $columnNames FROM Blogs WHERE Number IN (" . implode(', ', $blogIds) . ")"; return DbObjectArray::Create('Blog', $queryStr); } // fn GetBlogsWithTopic
/** * Return all publications as an array of Publication objects. * * @param string $p_name * @param int $p_aliasId * @param array $p_sqlOptions * * @return array */ public static function GetPublications($p_name = null, $p_aliasId = null, $p_sqlOptions = null) { global $g_ado_db; if (is_null($p_sqlOptions)) { $p_sqlOptions = array(); } if (!isset($p_sqlOptions["ORDER BY"])) { $p_sqlOptions["ORDER BY"] = array("Name" => "ASC"); } $tmpPub = new Publication(); $columns = $tmpPub->getColumnNames(true); $queryStr = 'SELECT ' . implode(',', $columns) . ', Aliases.Name as Alias' . ', URLTypes.Name as URLType' . ', Languages.OrigName as NativeName' . ' FROM Publications, Languages, Aliases, URLTypes' . ' WHERE Publications.IdDefaultAlias = Aliases.Id ' . ' AND Publications.IdURLType = URLTypes.Id ' . ' AND Publications.IdDefaultLanguage = Languages.Id '; if (is_string($p_name)) { $queryStr .= " AND Publications.Name=" . $g_ado_db->escape($p_name); } if (is_numeric($p_aliasId)) { $queryStr .= " AND Publications.IdDefaultAlias={$p_aliasId}"; } $queryStr = DatabaseObject::ProcessOptions($queryStr, $p_sqlOptions); $publications = DbObjectArray::Create('Publication', $queryStr); return $publications; }
/** * Get the logs. * * @param int $p_eventId * @param array $p_sqlOptions * * @return array */ public static function GetLogs($p_eventId = null, $p_sqlOptions = null) { if (is_null($p_sqlOptions) || !isset($p_sqlOptions['ORDER BY'])) { $p_sqlOptions['ORDER BY'] = array('time_created' => 'DESC'); } $tmpLog = new Log(); $columns = $tmpLog->getColumnNames(true); $queryStr = "SELECT " . implode(", ", $columns) . ", INET_NTOA(Log.user_ip) AS user_ip_addr" . ", liveuser_users.Name as full_name" . ", liveuser_users.UName as user_name" . " FROM Log" . " LEFT JOIN liveuser_users" . " ON Log.fk_user_id = liveuser_users.Id"; if (!is_null($p_eventId)) { $queryStr .= " WHERE Log.fk_event_id={$p_eventId}"; } $queryStr = DatabaseObject::ProcessOptions($queryStr, $p_sqlOptions); $logLines = DbObjectArray::Create('Log', $queryStr); return $logLines; }
/** * Return an array of Language objects based on the given contraints. * * @param int $p_id * @param string $p_languageCode * @param string $p_name * @param array $p_excludedLanguages * @param array $p_order * @return array */ public static function GetLanguages($p_id = null, $p_languageCode = null, $p_name = null, array $p_excludedLanguages = array(), array $p_order = array(), $p_skipCache = false) { global $g_ado_db; if (!$p_skipCache && CampCache::IsEnabled()) { $paramsArray['id'] = is_null($p_id) ? 'null' : $p_id; $paramsArray['language_code'] = is_null($p_languageCode) ? 'null' : $p_languageCode; $paramsArray['name'] = is_null($p_name) ? 'null' : $p_name; $paramsArray['excluded_languages'] = $p_excludedLanguages; $paramsArray['order'] = $p_order; $cacheListObj = new CampCacheList($paramsArray, __METHOD__); $languages = $cacheListObj->fetchFromCache(); if ($languages !== false && is_array($languages)) { return $languages; } } $selectClauseObj = new SQLSelectClause(); $tmpLanguage = new Language(); $selectClauseObj->setTable($tmpLanguage->getDbTableName()); if (!is_null($p_id)) { $selectClauseObj->addWhere($g_ado_db->escapeKeyVal('Id', (int) $p_id)); } if (!is_null($p_languageCode)) { $selectClauseObj->addWhere($g_ado_db->escapeKeyVal('Code', $p_languageCode)); } if (!is_null($p_name)) { $selectClauseObj->addWhere($g_ado_db->escapeKeyVal('Name', $p_name)); } if (count($p_excludedLanguages) > 0) { $excludedLanguages = array(); foreach ($p_excludedLanguages as $excludedLanguage) { $excludedLanguages[] = (int) $excludedLanguage; } $selectClauseObj->addWhere("Id NOT IN (" . implode(', ', $excludedLanguages) . ")"); } $order = Language::ProcessLanguageListOrder($p_order); foreach ($order as $orderDesc) { $selectClauseObj->addOrderBy($orderDesc['field'] . ' ' . $orderDesc['dir']); } $selectClause = $selectClauseObj->buildQuery(); $languages = DbObjectArray::Create('Language', $selectClause); if (!$p_skipCache && CampCache::IsEnabled()) { $cacheListObj->storeInCache($languages); } return $languages; }
/** * Get all comments associated with the given article. * * @param int $p_articleNumber * @param int $p_languageId * @param string $p_status * This can be NULL if you dont care about the status, * "approved" or "unapproved". * @param boolean $p_countOnly * @return array */ public static function GetArticleComments($p_articleNumber, $p_languageId, $p_status = null, $p_countOnly = false, $p_skipCache = true) { global $PHORUM, $g_ado_db; if (CampCache::IsEnabled() && !$p_skipCache) { $cacheKey = __METHOD__ . '_' . (int)$p_articleNumber . '_' . (int)$p_languageId . '_' . $p_status . '_' . (int)$p_count_only; $result = CampCache::singleton()->fetch($cacheKey); if ($result !== false) { return $result; } } $threadId = ArticleComment::GetCommentThreadId($p_articleNumber, $p_languageId); if (!$threadId) { $result = $p_countOnly ? 0 : null; if (CampCache::IsEnabled()) { CampCache::singleton()->store($cacheKey, $result); } return $result; } // Are we counting or getting the comments? $selectClause = "*"; if ($p_countOnly) { $selectClause = "COUNT(*)"; } // Only getting comments with a specific status? $whereClause = ""; if (!is_null($p_status)) { if ($p_status == "approved") { $whereClause = " AND status=".PHORUM_STATUS_APPROVED; } elseif ($p_status == "unapproved") { $whereClause = " AND status=".PHORUM_STATUS_HIDDEN; } } $queryStr = "SELECT $selectClause " ." FROM ".$PHORUM['message_table'] ." WHERE thread=$threadId" ." AND message_id != thread" . $whereClause ." ORDER BY message_id"; if ($p_countOnly) { $result = $g_ado_db->GetOne($queryStr); } else { $result = DbObjectArray::Create("Phorum_message", $queryStr); } if (CampCache::IsEnabled() && !$p_skipCache) { CampCache::singleton()->store($cacheKey, $result, self::DEFAULT_TTL); } return $result; } // fn GetArticleComments
exit; } $publicationObj = new Publication($Pub); if (!$publicationObj->exists()) { camp_html_display_error(getGS('Publication does not exist.')); exit; } $issueObj = new Issue($Pub, $Language, $Issue); if (!$issueObj->exists()) { camp_html_display_error(getGS('Issue does not exist.')); exit; } $allLanguages = Language::GetLanguages(null, null, null, array(), array(), true); // Get translations of this issue $issueTranslations = Issue::GetIssues($Pub, null, $Issue, null, null, false, null, true); $excludeLanguageIds = DbObjectArray::GetColumn($issueTranslations, 'IdLanguage'); $allEvents = IssuePublish::GetIssueEvents($Pub, $Issue, $Language); $publish_date = date("Y-m-d"); $publish_hour = date("H") + 1; $publish_min = "00"; camp_html_content_top(getGS('Change issue details'), array('Pub' => $publicationObj, 'Issue' => $issueObj), true, true); $url_args1 = "Pub={$Pub}"; $url_args2 = $url_args1 . "&Issue={$Issue}&Language={$Language}"; $url_args3 = "f_publication_id={$Pub}&f_issue_number={$Issue}&f_language_id={$Language}"; if (Issue::GetNumIssues($Pub) <= 0) { $url_add = "add_new.php"; } else { $url_add = "qadd.php"; } //@New theme management $resourceId = new ResourceId('Publication/Edit');
<?php require_once $GLOBALS['g_campsiteDir'] . "/{$ADMIN_DIR}/topics/topics_common.php"; $f_show_languages = camp_session_get('f_show_languages', array()); $topics = Topic::GetTree(); // return value is sorted by language $allLanguages = Language::GetLanguages(null, null, null, array(), array(), true); $loginLanguageId = 0; $loginLanguage = Language::GetLanguages(null, camp_session_get('TOL_Language', 'en'), null, array(), array(), true); if (is_array($loginLanguage) && count($loginLanguage) > 0) { $loginLanguage = array_pop($loginLanguage); $loginLanguageId = $loginLanguage->getLanguageId(); } if (count($f_show_languages) <= 0) { $f_show_languages = DbObjectArray::GetColumn($allLanguages, 'Id'); } $crumbs = array(); $crumbs[] = array(getGS("Configure"), ""); $crumbs[] = array(getGS("Topics"), ""); echo camp_html_breadcrumbs($crumbs); camp_html_display_msgs("0.5em", 0); ?> <form action="" method="post"> <fieldset class="controls"> <legend><?php putGS("Show languages"); ?> </legend> <div class="buttons"> <input type="button" value="<?php
'); return false; } // Verify there is a name for the section if (form.section_chooser[1].checked && (form.destination_section_new_name.value.trim() == "")) { alert('<?php putGS("You must specify a name for the section."); ?> '); return false; } // Check if user specified an existing section in the "New Section" dialog. existingSections = [ <?php p(implode(',', DbObjectArray::GetColumn($allSections, 'Number'))); ?> ]; for (i = 0; i < existingSections.length; i++ ) { if (newSectionNumber == existingSections[i]) { alert('<?php putGS("The section number specified already exists, please specify a different value or use the dropdown to find an existing section."); ?> '); return false; } } } return true; } // fn CustomValidator_DuplicateSection </script>
/** * Return an array of all URL types. * @return array */ public static function GetUrlTypes() { $queryStr = 'SELECT * FROM URLTypes'; $urlTypes = DbObjectArray::Create('UrlType', $queryStr); return $urlTypes; }
/** * Get an array of users who have uploaded images. * @return array */ public static function GetUploadUsers() { $tmpUser = new User(); $columnNames = $tmpUser->getColumnNames(); $queryColumnNames = array(); foreach ($columnNames as $columnName) { $queryColumnNames[] = 'liveuser_users.'.$columnName; } $queryColumnNames = implode(",", $queryColumnNames); $queryStr = 'SELECT DISTINCT liveuser_users.Id, '.$queryColumnNames .' FROM Images, liveuser_users ' .' WHERE Images.UploadedByUser = liveuser_users.Id'; $users = DbObjectArray::Create('User', $queryStr); return $users; } // fn GetUploadUsers
/** * Get all the actions that currently need to be performed. * @return array */ public static function GetPendingActions() { $datetime = strftime("%Y-%m-%d %H:%M:00"); $queryStr = "SELECT * FROM IssuePublish " . " WHERE time_action <= '{$datetime}'" . " AND is_completed != 'Y'" . " ORDER BY time_action ASC"; $result = DbObjectArray::Create('IssuePublish', $queryStr); return $result; }
} // When the user selects a language the form is submitted to the same page (translation.php). // Read article translation form input values for the case when the page has been reloaded // because of language select. $f_translation_title = Input::Get('f_translation_title', 'string', '', true); $f_language_selected = Input::Get('f_translation_language', 'int', 0, true); $f_translation_language = Input::Get('f_translation_language', 'int', 0, true); if ($f_publication_id > 0) { $f_translation_issue_name = Input::Get('f_issue_name', 'string', $issueObj->getName(), true); $f_translation_issue_urlname = Input::Get('f_issue_urlname', 'string', $issueObj->getUrlName(), true); $f_translation_section_name = Input::Get('f_section_name', 'string', $sectionObj->getName(), true); $f_translation_section_urlname = Input::Get('f_section_urlname', 'string', $sectionObj->getUrlName(), true); } $allLanguages = Language::GetLanguages(null, null, null, array(), array(array('field' => 'byname', 'dir' => 'asc')), true); $articleLanguages = $articleObj->getLanguages(); $articleLanguages = DbObjectArray::GetColumn($articleLanguages, "Id"); if ($f_language_selected > 0 && $f_issue_number > 0) { $translationIssueObj = new Issue($f_publication_id, $f_language_selected, $f_issue_number); $translationSectionObj = new Section($f_publication_id, $f_issue_number, $f_language_selected, $f_section_number); } if ($f_publication_id > 0) { $topArray = array('Pub' => $publicationObj, 'Issue' => $issueObj, 'Section' => $sectionObj, 'Article' => $articleObj); camp_html_content_top(getGS('Translate article'), $topArray, true, true); } else { $crumbs = array(); $crumbs[] = array(getGS("Actions"), ""); $crumbs[] = array(getGS('Translate article'), ""); echo camp_html_breadcrumbs($crumbs); } ?> <table cellpadding="1" cellspacing="0" class="action_buttons" style="padding-top: 10px;">
/** * Get the $p_max number of the most recently modified articles. * @param int $p_max * @return array */ public static function GetRecentlyModifiedArticles($p_max) { $queryStr = "SELECT * FROM Articles " ." ORDER BY time_updated DESC" ." LIMIT $p_max"; $result = DbObjectArray::Create('Article', $queryStr); return $result; } // fn GetRecentlyModifiedArticles
/** * @param array $p_sqlOptions * @param boolean $p_update * @param boolean $p_useFilter * filter templates matching setting in SystemPrefs * @param boolean $p_strict * if true, retrieves only template (tpl) files * * @return array */ public static function GetAllTemplates($p_sqlOptions = null, $p_update = true, $p_useFilter = false, $p_strict = false) { if ($p_update) { self::UpdateStatus(); } $queryStr = 'SELECT * FROM Templates'; if ($p_strict) { $queryStr .= ' WHERE Type < 5'; } if ($p_useFilter && ($rexeg = self::GetTemplateFilterRegex(true))) { $queryStr .= $p_strict == false ? ' WHERE ' : ' AND '; $queryStr .= 'Name NOT REGEXP "' . self::GetTemplateFilterRegex(true) . '"'; } if (!is_null($p_sqlOptions)) { $queryStr = DatabaseObject::ProcessOptions($queryStr, $p_sqlOptions); } else { $queryStr .= ' ORDER BY Level ASC, Name ASC'; } $templates = DbObjectArray::Create('Template', $queryStr); return $templates; }
/** * Do a simple search. * * @param array $p_columns * Array of arrays of two strings: column name and search value. * @param array $p_sqlOptions * See ProcessOptions(). * * @return array */ public static function Search($p_className, $p_columns = null, $p_sqlOptions = null) { global $g_ado_db; if (!class_exists($p_className)) { return array(); } $tmpObj = new $p_className(); $queryStr = "SELECT * FROM " . $tmpObj->m_dbTableName; if (is_array($p_columns) && count($p_columns) > 0) { $contraints = array(); foreach ($p_columns as $item) { if (count($item) == 2) { list($columnName, $value) = $item; $contraints[] = $g_ado_db->escapeKeyVal($columnName, $value); } } $queryStr .= " WHERE " . implode(" AND ", $contraints); } $queryStr = DatabaseObject::ProcessOptions($queryStr, $p_sqlOptions); $dbObjects = DbObjectArray::Create($p_className, $queryStr); return $dbObjects; }
/** * Get the Articles that have the given Topic. * @param int $p_topicId * @return array */ public static function GetArticlesWithTopic($p_topicId) { global $g_ado_db; $articleIds = array(); $queryStr = "SELECT NrArticle FROM ArticleTopics WHERE Topicid = {$p_topicId}"; $rows = $g_ado_db->GetAll($queryStr); if (is_array($rows)) { foreach ($rows as $row) { $articleIds[] = $row['NrArticle']; } } $queryStr = 'SELECT DISTINCT(ArticleType) FROM TopicFields'; $rows = $g_ado_db->GetAll($queryStr); foreach ($rows as $row) { $queryStr = "SELECT FieldName FROM TopicFields WHERE ArticleType = '" . $row['ArticleType'] . "'"; $rows2 = $g_ado_db->GetAll($queryStr); if (!is_array($rows2) || sizeof($rows2) == 0) { continue; } $columns = ''; foreach ($rows2 as $row2) { $columns .= " OR F" . $row2['FieldName'] . " = {$p_topicId}"; } $columns = substr($columns, 3); $queryStr = "SELECT DISTINCT(NrArticle) FROM X" . $row['ArticleType'] . " WHERE {$columns}"; $rows2 = $g_ado_db->GetAll($queryStr); if (!is_array($rows2)) { continue; } foreach ($rows2 as $row2) { foreach ($row2 as $fieldName => $value) { $articleIds[] = $value; } } } if (sizeof($articleIds) == 0) { return null; } $articleIds = array_unique($articleIds); $tmpArticle = new Article(); $columnNames = implode(',', $tmpArticle->getColumnNames(true)); $queryStr = "SELECT {$columnNames} FROM Articles WHERE Number IN (" . implode(', ', $articleIds) . ")"; return DbObjectArray::Create('Article', $queryStr); }
/** * Get all the languages to which this issue has been translated. * * @param boolean $p_getUnusedLanguagesOnly * Reverses the search and finds only those languages which this * issue has not been translated into. * @param boolean $p_excludeCurrent * If true, exclude the current language from the list. * @param array $p_order * The array of order directives in the format: * array('field'=>field_name, 'dir'=>order_direction) * field_name can take one of the following values: * bynumber, byname, byenglish_name, bycode * order_direction can take one of the following values: * asc, desc * @param boolean $p_allIssues * If true return all the languages in which all issues of the * publication were translated. * @return array * Return an array of Language objects. */ public function getLanguages($p_getUnusedLanguagesOnly = false, $p_excludeCurrent = false, array $p_order = array(), $p_allIssues = false, $p_published = false) { $tmpLanguage = new Language(); $columnNames = $tmpLanguage->getColumnNames(true); if ($p_getUnusedLanguagesOnly) { $queryStr = "SELECT ".implode(',', $columnNames) ." FROM Languages LEFT JOIN Issues " ." ON Issues.IdPublication = ".$this->m_data['IdPublication']; if (!$p_allIssues) { $queryStr .= " AND Issues.Number = ".$this->m_data['Number']; } if ($p_published) { $queryStr .= " AND Issues.Published = 'Y'"; } $queryStr .= " AND Issues.IdLanguage = Languages.Id " ." WHERE Issues.IdPublication IS NULL"; } else { $queryStr = "SELECT ".implode(',', $columnNames) ." FROM Languages, Issues " ." WHERE Issues.IdPublication = ".$this->m_data['IdPublication']; if (!$p_allIssues) { $queryStr .= " AND Issues.Number = ".$this->m_data['Number']; } $queryStr .= " AND Issues.IdLanguage = Languages.Id "; if ($p_excludeCurrent) { $queryStr .= " AND Languages.Id != " . $this->m_data['IdLanguage']; } if ($p_published) { $queryStr .= " AND Issues.Published = 'Y'"; } } list($languagesKey) = $tmpLanguage->getKeyColumnNames(); $queryStr .= " GROUP BY $languagesKey"; $order = Issue::ProcessLanguageListOrder($p_order); foreach ($order as $orderDesc) { $sqlOrder[] = $orderDesc['field'] . ' ' . $orderDesc['dir']; } if (count($sqlOrder) > 0) { $queryStr .= ' ORDER BY ' . implode(', ', $sqlOrder); } $languages = DbObjectArray::Create('Language', $queryStr); return $languages; } // fn getLanguages
$f_destination_section_number = $tmpSection->getSectionNumber(); } else { $tmpSection = new Section($f_destination_publication_id, $f_destination_issue_number, $firstArticle->getLanguageId(), $f_destination_section_number); if (!$tmpSection->exists()) { $f_destination_section_number = 0; } } } // Special case: // You cannot copy the articles if there is no cooresponding translated issue/section // in the destination issue. For example, you cannot copy a french article to an // issue that has ONLY an english translation. $issueLanguages = array(); if ($f_destination_issue_number > 0) { $issueTranslations = Issue::GetIssues($f_destination_publication_id, null, $f_destination_issue_number, null, null, false, null, true); $issueLanguages = DbObjectArray::GetColumn($issueTranslations, "IdLanguage"); } // $actionDenied is TRUE if any articles cannot be moved/duped. $actionDenied = false; foreach ($articles as $articleNumber => $languageArray) { foreach ($languageArray as $languageId => $article) { $tmpActionDenied = count($issueLanguages) > 0 && !in_array($languageId, $issueLanguages); $actionDenied |= $tmpActionDenied; // Uncheck any articles that cannot be moved/duped. if ($tmpActionDenied) { unset($doAction[$articleNumber][$languageId]); if (isset($doAction[$articleNumber]) && count($doAction[$articleNumber]) == 0) { unset($doAction[$articleNumber]); } } }
if (!in_array($f_language_selected, DbObjectArray::GetColumn($allArticleLanguages, 'Id'))) { $f_language_selected = 0; } $sqlOptions = array("LIMIT" => array("START" => $f_article_offset, "MAX_ROWS" => $ArticlesPerPage)); if ($f_language_selected) { // Only show a specific language. $totalArticles = Article::GetArticles($f_publication_id, $f_issue_number, $f_section_number, $f_language_selected, null, true); $allArticles = Article::GetArticles($f_publication_id, $f_issue_number, $f_section_number, $f_language_selected, $sqlOptions); $numUniqueArticles = $totalArticles; $numUniqueArticlesDisplayed = count($allArticles); } else { // Show articles in all languages. $totalArticles = Article::GetArticles($f_publication_id, $f_issue_number, $f_section_number, null, null, true); $allArticles = Article::GetArticlesGrouped($f_publication_id, $f_issue_number, $f_section_number, null, $f_language_id, $sqlOptions); $numUniqueArticles = Article::GetArticlesGrouped($f_publication_id, $f_issue_number, $f_section_number, null, null, null, true); $numUniqueArticlesDisplayed = count(array_unique(DbObjectArray::GetColumn($allArticles, 'Number'))); } $numArticlesThisPage = count($allArticles); $previousArticleNumber = 0; $pagerUrl = "index.php?f_publication_id=" . $f_publication_id . "&f_issue_number=" . $f_issue_number . "&f_section_number=" . $f_section_number . "&f_language_id=" . $f_language_id . "&f_language_selected=" . $f_language_selected . "&"; $pager = new SimplePager($numUniqueArticles, $ArticlesPerPage, $offsetVarName, $pagerUrl); $topArray = array('Pub' => $publicationObj, 'Issue' => $issueObj, 'Section' => $sectionObj); camp_html_content_top(getGS('Article List') . ': ' . $this->view->escape($sectionObj->getName()), $topArray); ?> <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1" class="action_buttons" style="padding-top: 5px;"> <TR> <TD><A HREF="/<?php echo $ADMIN; ?> /sections/?Pub=<?php p($f_publication_id);
/** * Return an array of SubscriptionSection objects matching the * search criteria. * * @param int $p_subscriptionId * @param int $p_sectionId * @param int $p_languageId * @return array */ public static function GetSubscriptionSections($p_subscriptionId, $p_sectionId = null, $p_languageId = null) { $queryStr = "SELECT SubsSections.*, Sections.Name, Subscriptions.Type, " . "Languages.Name as LangName, Languages.OrigName as LangOrigName" . " FROM Subscriptions, Sections, SubsSections LEFT JOIN Languages " . " ON SubsSections.IdLanguage = Languages.Id " . " WHERE Subscriptions.Id = {$p_subscriptionId} " . " AND Subscriptions.Id = SubsSections.IdSubscription " . " AND Subscriptions.IdPublication = Sections.IdPublication " . " AND SubsSections.SectionNumber = Sections.Number "; if (!is_null($p_sectionId)) { $queryStr .= " AND SubsSections.SectionNumber = {$p_sectionId}"; } if (!is_null($p_languageId)) { $queryStr .= " AND SubsSections.IdLanguage = {$p_languageId}"; } $queryStr .= " GROUP BY SectionNumber, IdLanguage ORDER BY SectionNumber, LangName"; $sections = DbObjectArray::Create('SubscriptionSection', $queryStr); return $sections; }
// Only for the article screens. $publicationObj = null; $issueObj = null; $sectionObj = null; if ($f_publication_id > 0) { $publicationObj = new Publication($f_publication_id); if ($f_issue_number > 0 && $f_article_language > 0) { $issueObj = new Issue($f_publication_id, $f_article_language, $f_issue_number); if ($f_section_number > 0) { $sectionObj = new Section($f_publication_id, $f_issue_number, $f_article_language, $f_section_number); } } } // Only show the languages for sections which have been translated. $sections = Section::GetSections($f_publication_id, $f_issue_number, null, null, null, null, true); $languageIds = DbObjectArray::GetColumn($sections, 'IdLanguage'); $allLanguages = array(); foreach ($languageIds as $languageId) { if (!isset($allLanguages[$languageId])) { $allLanguages[$languageId] = new Language($languageId); } } $allArticleTypes = ArticleType::GetArticleTypes(); $topArray = array('Pub' => $publicationObj, 'Issue' => $issueObj, 'Section' => $sectionObj); camp_html_content_top(getGS('Add new article'), $topArray, true, false, array(getGS("Articles") => "/{$ADMIN}/articles/?f_publication_id={$f_publication_id}&f_issue_number={$f_issue_number}&f_section_number={$f_section_number}&f_language_id={$f_language_id}")); ?> <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1" class="action_buttons" style="padding-top: 5px;"> <TR> <TD><A HREF="<?php echo "/{$ADMIN}/articles/?f_publication_id={$f_publication_id}&f_issue_number={$f_issue_number}&f_section_number={$f_section_number}&f_language_id={$f_language_id}"; ?>