Группа: Администратор Регистрация: 23.10.2009 | Итак как сделать собственное запускаемое по расписанию задание. Разбираем задачу ТС, главное принцип понять, все просто:) Итак идем в админку и создаем новое задание. Все поля заполняем по логике, поле модуль - выбираем функция. Вписываем в поле функция SyncImport::update, в поле параметры функции - вписываем имя таблицы (этот параметр будет в переменной $table, метода update) Далее создаем новый класс <?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->, Что бы это обойти используем такой фокус static public function update() { new self; } private function __construct() { // а здесь уже можно использовать $this-> }
| |