/**
  * 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;
     }
 }
Exemple #2
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";
     }
 }