コード例 #1
0
    public static function stop()
    {
        self::update();

        self::$start        = false;
        self::$time_stop    = time();
    }
コード例 #2
0
$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,
        (
コード例 #3
0
    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);
    }