Доброе утро, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 CMS Status-X | Основная тема
         Планировщик заданий (SyncImport)

Похожие темы  |  Печать страницы

Планировщик заданий (SyncImport)


События Четверг, 27.06.2013, 21:26

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
Итак как сделать собственное запускаемое по расписанию задание. Разбираем задачу ТС, главное принцип понять, все просто:)

Итак идем в админку и создаем новое задание. Все поля заполняем по логике, поле модуль - выбираем функция.
Вписываем в поле функция SyncImport::update, в поле параметры функции - вписываем имя таблицы (этот параметр будет в переменной $table, метода update)
Далее создаем новый класс
PHP-код
<?php
if (!defined('STATUS_DIR')) exit('Доступ запрещен');

class 
SyncImport {

    public static function 
update($table) {
        
$allow = array('table1''table2''table3'); // Проверять разрешенные таблицы
    
        
if (!empty($table) && in_array($table$allow)) {
            
$sql DB::getDB()->Query("SELECT * FROM " PREFIX "_shop_produkte");
            while (
$row $sql->Result_Fetch_Object()) {
                
DB::getDB()->Query("UPDATE " PREFIX "_" $table " SET  
                    Artikelnummer = '" 
s($row->Artikelnummer) . "', 
                    Titel_1 = '" 
s($row->Titel_1) . "', 
                    Titel_2 = '" 
s($row->Titel_2) . "', 
                    Erstellt = '" 
s($row->Erstellt) . "', 
                    Bild = '" 
s($row->Bild) . "', 
                    Bilder = '" 
s($row->Bilder) . "', 
                    EAN_Nr = '" 
s($row->EAN_Nr) . "', 
                    ISBN_Nr = '" 
s($row->ISBN_Nr) . "',             
                    Beschreibung_1 = '" 
s($row->Beschreibung_1) . "', 
                    Beschreibung_2 = '" 
s($row->Beschreibung_2) . "', 
                    Beschreibung_lang_1 = '" 
s($row->Beschreibung_lang_1) . "', 
                    Beschreibung_lang_2 = '" 
s($row->Beschreibung_lang_2) . "', 
                    Aktiv = '" 
s($row->Aktiv) . "', 
                    Preis_Liste_Ab = '" 
s($row->Preis_Liste_Ab) . "', 
                    Preis_Liste_Gueltig = '" 
s($row->Preis_Liste_Gueltig) . "', 
                    Preis_Liste = '" 
s($row->Preis_Liste) . "', 
                    Preis = '" 
s($row->Preis) . "', 
                    Preis_EK = '" 
s($row->Preis_EK) . "', 
                    Hersteller = '" 
s($row->Hersteller) . "', 
                    Kategorie = '" 
s($row->Kategorie) . "', 
                    Kategorie_Multi = '" 
s($row->Kategorie_Multi) . "', 
                    Gewicht = '" 
s($row->Gewicht) . "', 
                    Gewicht_Ohne = '" 
s($row->Gewicht_Ohne) . "', 
                    Schlagwoerter = '" 
s($row->Schlagwoerter) . "', 
                    Lagerbestand = '" 
s($row->Lagerbestand) . "', 
                    MaxBestellung = '" 
s($row->MaxBestellung) . "', 
                    Startseite = '" 
s($row->Startseite) . "',             
                    Position = '" 
s($row->Position) . "', 
                    Spez_1 = '', 
                    Spez_2 = '', 
                    Spez_3 = '', 
                    Spez_4 = '', 
                    Spez_5 = '', 
                    Spez_6 = '', 
                    Spez_7 = '', 
                    Spez_8 = '', 
                    Spez_9 = '', 
                    Spez_10 = '', 
                    Spez_11 = '', 
                    Spez_12 = '', 
                    Spez_13 = '', 
                    Spez_14 = '', 
                    Spez_15 = '', 
                    Spez_2_2 = '', 
                    Spez_3_2 = '', 
                    Spez_4_2 = '', 
                    Spez_5_2 = '', 
                    Spez_6_2 = '', 
                    Spez_7_2 = '', 
                    Spez_8_2 = '', 
                    Spez_9_2 = '', 
                    Spez_10_2 = '', 
                    Spez_11_2 = '', 
                    Spez_12_2 = '', 
                    Spez_13_2 = '', 
                    Spez_14_2 = '', 
                    Spez_15_2 = '' 
                    WHERE Id = '" 
$row->Id "'");
            }
            
$sql->Result_Close();
        }
    }
}
?>


И кидаем в папку класс с именем class.SyncImport.php и все класс будет запускаться по расписанию и будет выполнять метод update.

Можно собрать в один класс все нужные задания и различать их только названиями методов в поле вызова функции SyncImport::update2, SyncImport::update3 и тд.

Не забываем что это статическая функция в классе и следовательно нельзя применять $this->,
Что бы это обойти используем такой фокус

PHP-код
    static public function update() {
        new 
self;
    }

    private function 
__construct() {
        
// а здесь уже можно использовать $this->
    
}





Пользователь офлайн


Похожие темы  |  Печать страницы  |   Предыдущая тема  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте


Пользователей: 0, Гостей: 32

Поисковые боты: 11
BingBot(4), Baidu.com(2), Unknown Bot, Yandex, oBot, Googlebot, Inktomi Slurp

 Статистика форума


  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: somik

 Дни рождения


MaximK (55), slavutich7 (28)
Печать | Copyright © 2009 - 2016 Status-X All rights reserved | Powered by CMS Status-X 1.05 | Контакты