/application/models/Logic/Export/Tablica/Translate.php

https://bitbucket.org/sader/domset · PHP · 208 lines · 167 code · 41 blank · 0 comment · 12 complexity · 0044d48ad2360b44da41ed66fd07b7ee MD5 · raw file

  1. <?php
  2. class Model_Logic_Export_Tablica_Translate {
  3. const Flat_Sell = 14;
  4. const Flat_Rent = 15;
  5. const House_Sell = 18;
  6. const House_Rent = 20;
  7. const Land_Sell = 24;
  8. const Land_Rent = 32;
  9. const Local_Sell = 125;
  10. const Local_Rent = 127;
  11. const Warehouse_Sell = 32;
  12. const Warehouse_Rent = 32;
  13. public static function translate($aOffer)
  14. {
  15. switch ($aOffer['id_type']) {
  16. case Model_Logic_Offer_Flat_Sell::ID:
  17. return self::translateFlat($aOffer);
  18. break;
  19. case Model_Logic_Offer_Flat_Rent::ID:
  20. return self::translateFlat($aOffer);
  21. break;
  22. case Model_Logic_Offer_House_Sell::ID:
  23. return self::translateHouse($aOffer);
  24. break;
  25. case Model_Logic_Offer_House_Rent::ID:
  26. return self::translateHouse($aOffer);
  27. break;
  28. case Model_Logic_Offer_Local_Sell::ID:
  29. return self::translateLocal($aOffer);
  30. break;
  31. case Model_Logic_Offer_Local_Rent::ID:
  32. return self::translateLocal($aOffer);
  33. break;
  34. case Model_Logic_Offer_Land_Sell::ID:
  35. return self::translateLand($aOffer);
  36. break;
  37. case Model_Logic_Offer_Land_Rent::ID:
  38. return self::translateLand($aOffer);
  39. break;
  40. case Model_Logic_Offer_Warehouse_Sell::ID:
  41. return self::translateWarehouse($aOffer);
  42. break;
  43. case Model_Logic_Offer_Warehouse_Rent::ID:
  44. return self::translateWarehouse($aOffer);
  45. break;
  46. default:
  47. throw new Exception('Brak formularza dla tej kategorii');
  48. break;
  49. }
  50. }
  51. public static function translateCategory($iCategoryId) {
  52. $aKeyTranslate = array(
  53. Model_Logic_Offer_Flat_Sell::ID => self::Flat_Sell,
  54. Model_Logic_Offer_Flat_Rent::ID => self::Flat_Rent,
  55. Model_Logic_Offer_House_Sell::ID => self::House_Sell,
  56. Model_Logic_Offer_House_Rent::ID => self::House_Rent,
  57. Model_Logic_Offer_Land_Sell::ID => self::Land_Sell,
  58. Model_Logic_Offer_Land_Rent::ID => self::Land_Rent,
  59. Model_Logic_Offer_Local_Sell::ID => self::Local_Sell,
  60. Model_Logic_Offer_Local_Rent::ID => self::Local_Rent,
  61. Model_Logic_Offer_Warehouse_Sell::ID => self::Local_Sell,
  62. Model_Logic_Offer_Warehouse_Rent::ID => self::Local_Rent
  63. );
  64. return isset($aKeyTranslate[$iCategoryId]) ? $aKeyTranslate[$iCategoryId] : '';
  65. }
  66. public static function translateFlat($aData) {
  67. $aReturn = array();
  68. $aReturn['region_id'] = self::translateRegion($aData['province']);
  69. $aReturn['subregion_id'] = self::translateCity($aData['city']);
  70. $aReturn['param_m'] = $aData['surface'];
  71. $aReturn['param_rooms'] = self::translateRooms($aData['rooms']);
  72. $aReturn['param_price'] = $aData['price'];
  73. $aReturn['title'] = self::translateTitle($aData['title']);
  74. $aReturn['description'] = self::translateDescription(urldecode($aData['description']), $aData['id']);
  75. return $aReturn;
  76. }
  77. public static function translateHouse($aData) {
  78. $aReturn = array();
  79. $aReturn['region_id'] = self::translateRegion($aData['province']);
  80. $aReturn['subregion_id'] = self::translateCity($aData['city']);
  81. $aReturn['param_m'] = $aData['surface'];
  82. $aReturn['param_price'] = $aData['price'];
  83. $aReturn['title'] = self::translateTitle($aData['title']);
  84. $aReturn['description'] = self::translateDescription($aData['description'], $aData['id']);
  85. return $aReturn;
  86. }
  87. public static function translateLocal($aData) {
  88. $aReturn = array();
  89. $aReturn['region_id'] = self::translateRegion($aData['province']);
  90. $aReturn['subregion_id'] = self::translateCity($aData['city']);
  91. $aReturn['param_m'] = $aData['surface'];
  92. $aReturn['param_floor'] = self::translateFloor($aData['floor']);
  93. $aReturn['param_price'] = $aData['price'];
  94. $aReturn['title'] = self::translateTitle($aData['title']);
  95. $aReturn['description'] = self::translateDescription(urldecode($aData['description']), $aData['id']);
  96. return $aReturn;
  97. }
  98. public static function translateLand($aData) {
  99. $aReturn = array();
  100. $aReturn['region_id'] = self::translateRegion($aData['province']);
  101. $aReturn['subregion_id'] = self::translateCity($aData['city']);
  102. $aReturn['param_m'] = $aData['surface'];
  103. $aReturn['param_price'] = $aData['price'];
  104. $aReturn['title'] = self::translateTitle($aData['title']);
  105. $aReturn['description'] = self::translateDescription(urldecode($aData['description']), $aData['id']);
  106. return $aReturn;
  107. }
  108. public static function translateWarehouse($aData) {
  109. $aReturn = array();
  110. $aReturn['region_id'] = self::translateRegion($aData['province']);
  111. $aReturn['subregion_id'] = self::translateCity($aData['city']);
  112. $aReturn['param_m'] = $aData['surface'];
  113. $aReturn['param_price'] = $aData['price'];
  114. $aReturn['title'] = self::translateTitle($aData['title']);
  115. $aReturn['description'] = self::translateDescription($aData['description'], $aData['id']);
  116. return $aReturn;
  117. }
  118. private static function translateRegion($iProvince) {
  119. $aKeyTranslate = array(
  120. 1 => 14,
  121. 2 => 3,
  122. 3 => 15,
  123. 4 => 8,
  124. 5 => 9,
  125. 6 => 7,
  126. 7 => 4,
  127. 8 => 2,
  128. 9 => 12,
  129. 10 => 17,
  130. 11 => 18,
  131. 12 => 5,
  132. 13 => 6,
  133. 14 => 13,
  134. 15 => 1,
  135. 16 => 11);
  136. return isset($aKeyTranslate[$iProvince]) ? $aKeyTranslate[$iProvince] : '';
  137. }
  138. private static function translateCity($sCity) {
  139. $iSearched = array_search($sCity, Model_Logic_Export_Tablica_Translate_City:: getCities());
  140. return empty($iSearched) ? 43 : $iSearched;
  141. }
  142. private static function translateRooms($iRooms) {
  143. if (empty($iRooms)) return '';
  144. elseif ($iRooms == 1) return 'one';
  145. elseif ($iRooms == 2) return 'two';
  146. elseif ($iRooms == 3) return 'three';
  147. elseif ($iRooms >= 4) return 'four';
  148. }
  149. private static function translateFloor($iFloor) {
  150. if ($iFloor == 'Parter' && $iFloor == '0') return 'parter';
  151. elseif ($iFloor == 1) return 'one';
  152. elseif ($iFloor == 2) return 'two';
  153. elseif ($iFloor == 3) return 'three';
  154. elseif ($iFloor >= 4) return 'four';
  155. }
  156. private static function translateTitle($sTitle) {
  157. return (mb_strlen($sTitle) < Model_Logic_Export_Tablica::TITLE_LENGHT_LIMIT) ? $sTitle : mb_substr($sTitle, 0, Model_Logic_Export_Tablica::TITLE_LENGHT_LIMIT);
  158. }
  159. private static function translateDescription($sDesc, $iId) {
  160. $sFooter = PHP_EOL .PHP_EOL . 'Numer licencji pośrednika odpowiedzialnego zawodowo za wykonanie umowy pośrednictwa: 15295'. PHP_EOL . PHP_EOL .
  161. 'LINK DO STRONY' . PHP_EOL .
  162. 'http://www.domset.pl/'.$iId. PHP_EOL .
  163. 'DOMSET Nieruchomości'. PHP_EOL .
  164. 'Ełk, ul Wojska Polskiego 43 lok. 3';
  165. return preg_replace('/&nbsp;/' , '' , $sDesc).PHP_EOL.$sFooter;
  166. }
  167. }