public static function stop() { self::update(); self::$start = false; self::$time_stop = time(); }
$options = $script->getOptions( '[apply]', "", array( 'apply' => 'Applique les modification' )); $script->initialize(); $cli = eZCLI::instance(); // user admin $user = eZUser::fetchByName('admin'); $userID = $user->attribute( 'contentobject_id' ); eZUser::setCurrentlyLoggedInUser( $user, $userID ); $db = eZDB::instance(); MMSynchMonitor::start(); // Mise a jour des related_content $query = ' SELECT DISTINCT c.id as c_id, a.id as a_id, a.language as a_language, st.version as st_version, (Select MAX(version) From import_status Where import_status.article_id = a_id) as st_last_version, ( SELECT GROUP_CONCAT(rc.content_id2 SEPARATOR \',\') FROM related_content as rc WHERE content_id1 = c.id ) as a_related, (
public function initialize() { $query = ' SELECT c.id as c_id, c.parent_id as c_parent_id, (case when c.parent_id is null then c.id else c.parent_id end) as c_common_id, a.id as a_id, st.id as st_id, st.version as st_version, (Select MAX(version) From import_status Where import_status.article_id = a_id) as last_version FROM article as a INNER JOIN content as c ON a.content_id = c.id LEFT JOIN import_status as st ON a.id = st.article_id %s HAVING version = last_version Order By rand(), c_common_id, ISNULL(c_parent_id) ASC %s; '; $conds = array(); if (isset($this->options['id'])) { $ids = explode('-', $this->options['id']); $conds[] = sprintf('a.id IN (%s)', implode(', ', $ids)); } if (isset($this->options['publisher'])) { $ids = explode('-', $this->options['publisher']); $conds[] = sprintf('c.publisher_folder_id IN (%s)', implode(', ', $ids)); } if ( isset($this->options['publisher_internal_id']) ) { $ids = explode('-', $this->options['publisher_internal_id']); $conds[] = sprintf('a.publisher_internal_id IN ("%s")', implode('", "', $ids)); } if ( isset($this->options['publisher_parent_id']) ) { $ids = explode('-', $this->options['publisher_parent_id']); $conds[] = sprintf('a.publisher_parent_id IN ("%s")', implode('", "', $ids)); } if ( isset($this->options['language']) ) { $languages = explode('-', $this->options['language']); $conds[] = sprintf('a.language IN ("%s")', implode('", "', $languages)); } if (isset($this->options['after-time'])) { $conds[] = sprintf('st.date >= %s', $this->options['after-time']); } if ( !isset($this->options['force']) || !in_array($this->options['force'], array('1', 'true')) ) { $conds[] = sprintf('st.status_mdd_ez = %s', isset($this->options['status']) ? $this->options['status'] : MMSynchArticleImportStatus::INITIAL); } else { $this->force = true; } $conds[] = sprintf('a.publication_status = %d', 1); $limit = ''; if (isset($this->options['limit'])) { $limit = ' Limit 0, ' . $this->options['limit']; } if (count($conds)) $query = sprintf($query, 'WHERE ' . implode(' AND ', $conds), $limit); else $query = sprintf($query, '', $limit); $result = $this->synchronizer->db->arrayQuery($query); while(list(,$row) = each($result)) { $this->dataSource[] = $row['a_id']; } $this->total = count($this->dataSource); unset($result); MMSynchMonitor::start($this->total); }