/** * Get a list of serwis to be added or remove. Write the serwis to database. * @return null|int */ public function GetService() { if (!$this->WS()) { return null; } try { $params = array('sid' => $this->_sid); $result = $this->WS()->getSC()->__soapCall("GetSerwis", array($params)); if ($result->GetSerwisResult->Status != 0) { Errors::LogError("WebService:GetSerwis", "Response: " . $result->GetSerwisResult->Message); return 0; } Serwisy::DeleteSerwis(0); $xml = simplexml_load_string($result->GetSerwisResult->XMLContent); $cnt = 0; foreach ($xml->children() as $child) { if ($child->getName() == "wersja") { //read serwis $node = $child; $mieszkania = $node->Mieszkania == "True" ? 1 : 0; $domy = $node->Domy == "True" ? 1 : 0; $dzialki = $node->Dzialki == "True" ? 1 : 0; $lokale = $node->Lokale == "True" ? 1 : 0; $hale = $node->Hale == "True" ? 1 : 0; $gospodarstwa = $node->Gospodarstwa == "True" ? 1 : 0; $kamienice = $node->Kamienice == "True" ? 1 : 0; $biurowce = $node->Biurowce == "True" ? 1 : 0; $serwis = new Serwis($node["GID"], $node["jezyk"], $node->NazwaFirmy, $node->AdresWWW, $node->EmailKontaktowy, $node->StartowyJezyk, $node["oddzial"], $node["uzytkownik"], $mieszkania, $domy, $dzialki, $lokale, $hale, $gospodarstwa, $kamienice, $biurowce, $node->RodzajeOfert, $node->TagTitle, $node->TagKeywords, $node->TagDescription, $node->Head, $node->Body, $node->Foot); Serwisy::AddEditSerwis($serwis); echo DataBase::GetDbInstance()->LastError(); $cnt++; } else { if ($child->getName() == "Oddzial") { //read departments $node = $child; $dep = new Department($node["ID"], $node->Nazwa, $node->Nazwa2, $node->Adres, $node->Miasto, $node->Kod, $node->Nip, $node->Wojewodztwo, $node->Www, $node->Telefon, $node->Email, $node->Fax, $node->Uwagi, $node->Naglowek, $node->Stopka, $node->PlikLogo, $node->ZdjecieWWW, $node->Subdomena, $node->Firma); Departments::AddEditDepartment($dep); echo DataBase::GetDbInstance()->LastError(); } else { if ($child->getName() == "Agent") { //read agents $node = $child; $agent = new Agent($node["ID"], $node->Nazwa, $node->Telefon, $node->Komorka, $node->Email, $node->Oddzial, $node->JabberLogin, $node->NrLicencji, $node->OdpowiedzialnyNazwa, $node->OdpowiedzialnyNrLicencji, $node->Komunikator, $node->PlikFoto, $node->KodPracownika, $node->DzialFunkcja); Agents::AddEditAgent($agent); echo DataBase::GetDbInstance()->LastError(); } else { if ($child->getName() == "parametry") { $s = $xml->xpath("/Serwis/wersja[1]/@GID"); $sGID = (string) $s[0]['GID']; $params = array(); foreach ($child->children() as $param) { $key = $param['nazwa']; $params["{$key}"] = $param; } Serwisy::SaveParams($sGID, $params); echo DataBase::GetDbInstance()->LastError(); } } } } } return $cnt; } catch (Exception $ex) { Errors::LogError("WebService:GetSerwis", $ex->getMessage()); return 0; } }
/** * Synchronize passed element. * @param int $element * @param string $gid * @param boolean $del * @param boolean $force * @return string */ public function SynchronizeSiteElement($element, $gid, $del, $force) { if (!$this->checkwebext()) { return "Function unavailable in this version."; } try { if ($element < 1 || $element > 12) { return "Invalid element: {$element}"; } $ret = 0; WebServiceWeb::WS()->LoginEx(); switch ($element) { case self::SITE_ELEMENT_SERWIS: if ($del) { Serwisy::DeleteSerwis($gid); } else { $ret = WebServiceWeb::WS()->GetService(); } break; case self::SITE_ELEMENT_MIEJSCE_SERWISU: if ($del) { Miejsca::DeleteMiejsce($gid, Miejsca::MIEJSCE_RODZAJ_SERWISU); } else { $ret = WebServiceWeb::WS()->GetMiejsca(Miejsca::MIEJSCE_RODZAJ_SERWISU, $gid); } break; case self::SITE_ELEMENT_MIEJSCE_MENU: if ($del) { Miejsca::DeleteMiejsce($gid, Miejsca::MIEJSCE_RODZAJ_MENU); } else { $ret = WebServiceWeb::WS()->GetMiejsca(Miejsca::MIEJSCE_RODZAJ_MENU, $gid); } break; case self::SITE_ELEMENT_MIEJSCE_GRUPY: if ($del) { Miejsca::DeleteMiejsce($gid, Miejsca::MIEJSCE_RODZAJ_GRUPY); } else { $ret = WebServiceWeb::WS()->GetMiejsca(Miejsca::MIEJSCE_RODZAJ_GRUPY, $gid); } break; case self::SITE_ELEMENT_MENU: if ($del) { Menus::DeleteMenu($gid); } else { $ret = WebServiceWeb::WS()->GetMenu($gid); } break; case self::SITE_ELEMENT_ARTYKUL: if ($del) { Artykuly::DeleteArtykul($gid); } else { $ret = WebServiceWeb::WS()->GetArtykuly($gid); GaleriePozycje::IndeksujGaleriePozycjeDlaArtykulu($gid); } break; case self::SITE_ELEMENT_ARKUSZ_CSS: if ($del) { ArkuszeSkrypty::DeleteArkuszSkrypt($gid, ArkuszeSkrypty::ARKUSZ_RODZAJ_CSS); } else { $ret = WebServiceWeb::WS()->GetArkuszeSkrypty(ArkuszeSkrypty::ARKUSZ_RODZAJ_CSS, $gid); } break; case self::SITE_ELEMENT_ARKUSZ_JS: if ($del) { ArkuszeSkrypty::DeleteArkuszSkrypt($gid, ArkuszeSkrypty::ARKUSZ_RODZAJ_JS); } else { $ret = WebServiceWeb::WS()->GetArkuszeSkrypty(ArkuszeSkrypty::ARKUSZ_RODZAJ_JS, $gid); } break; case self::SITE_ELEMENT_BANER: if ($del) { Banery::DeleteBaner($gid); } else { $ret = WebServiceWeb::WS()->GetBanery($gid); } break; case self::SITE_ELEMENT_GRAFIKA: $pfn = base64_decode($gid); if ($del) { Grafiki::DeleteGrafike($gid); } else { if ($force) { Grafiki::DeleteGrafike($gid); } } $ret = WebServiceWeb::WS()->GetGrafiki($gid); break; case self::SITE_ELEMENT_GALERIA: if ($del) { Galerie::DeleteGaleria($gid); } else { $ret = WebServiceWeb::WS()->GetGalerie($gid); GaleriePozycje::IndeksujGaleriePozycjeDlaGalerii($gid); } break; case self::SITE_ELEMENT_GALERIA_POZYCJA: if ($del) { GaleriePozycje::DeleteGaleriaPozycja($gid); } break; case self::SITE_ELEMENT_OSOBA: if ($del) { Osoby::DeleteOsoba($gid); } else { $ret = WebServiceWeb::WS()->GetOsoby($gid); } break; default: break; } WebServiceWeb::WS()->Logout(); return "Element: {$element}, GID: {$gid}, ret: {$ret}"; } catch (Exception $ex) { Errors::LogError("WebAPI:SynchronizeSiteElement", $ex->getMessage()); return "ERROR"; } }