PageRenderTime 22ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/bitrix/modules/st1234holes/classes/general/xml.php

https://github.com/RosYama/rosyama.ru
PHP | 136 lines | 106 code | 10 blank | 20 comment | 5 complexity | 57d0df45ce13b4c71776a17687821cd1 MD5 | raw file
  1. <?php
  2. IncludeModuleLangFile(__FILE__);
  3. class C1234HoleApiXML
  4. {
  5. /**
  6. * Шаблон ошибки
  7. */
  8. public static function Error($code)
  9. {
  10. return "\t".'<error code="'.htmlspecialchars($code).'">'.GetMessage('APIERROR_'.$code).'</error>'."\n";
  11. }
  12. /**
  13. * Шаблон ямы
  14. */
  15. public static function Hole($hole, $xml_depth = 0)
  16. {
  17. if(!$_users[$hole['USER_ID']])
  18. {
  19. $u = CUser::GetByID($hole['USER_ID']);
  20. $u = $u->Fetch();
  21. $_users[$hole['USER_ID']] = array
  22. (
  23. 'NAME' => htmlspecialchars(trim($u['NAME'])),
  24. 'SECOND_NAME' => htmlspecialchars(trim($u['SECOND_NAME'])),
  25. 'LAST_NAME' => htmlspecialchars(trim($u['LAST_NAME'])),
  26. );
  27. }
  28. ob_start();
  29. ?>
  30. <hole id="<?= $hole['ID'] ?>">
  31. <id><?= $hole['ID'] ?></id>
  32. <username full="<?= $_users[$hole['USER_ID']]['NAME'].' '.$_users[$hole['USER_ID']]['LAST_NAME'].' '.$_users[$hole['USER_ID']]['SECOND_NAME'] ?>">
  33. <name><?= $_users[$hole['USER_ID']]['NAME'] ?></name>
  34. <secondname><?= $_users[$hole['USER_ID']]['SECOND_NAME'] ?></secondname>
  35. <lastname><?= $_users[$hole['USER_ID']]['LAST_NAME'] ?></lastname>
  36. </username>
  37. <latitude><?= $hole['LATITUDE'] ?></latitude>
  38. <longitude><?= $hole['LONGITUDE'] ?></longitude>
  39. <address city="<?= htmlspecialchars(trim($hole['ADR_CITY'])) ?>" subjectrf="<?= $hole['ADR_SUBJECTRF'] ?>"><?= htmlspecialchars($hole['ADDRESS']) ?></address>
  40. <state code="<?= $hole['STATE'] ?>"><?= GetMessage('HOLE_STATE_'.$hole['STATE']) ?></state>
  41. <type code="<?= $hole['TYPE'] ?>"><?= GetMessage('HOLE_TYPE_'.$hole['TYPE']) ?></type>
  42. <datecreated readable="<?= $hole['~DATE_CREATED'] ?>"><?= $hole['DATE_CREATED'] ?></datecreated>
  43. <datesent readable="<?= $hole['~DATE_SENT'] ?>"><?= $hole['DATE_SENT'] ?></datesent>
  44. <datestatus readable="<?= $hole['~DATE_STATUS'] ?>"><?= $hole['DATE_STATUS'] ?></datestatus>
  45. <commentfresh><?= htmlspecialchars($hole['COMMENT1']) ?></commentfresh>
  46. <commentfixed><?= htmlspecialchars($hole['COMMENT2']) ?></commentfixed>
  47. <commentgibddre><?= htmlspecialchars($hole['COMMENT_GIBDD_REPLY']) ?></commentgibddre>
  48. <pictures><? echo "\n\t\t"; foreach($hole['pictures'] as $type => $p): ?>
  49. <<?= $type ?>>
  50. <fresh><? if(sizeof($p['fresh'])) { echo "\n\t"; } foreach($p['fresh'] as $k => $v): ?>
  51. <src><?= $v ?></src>
  52. <? endforeach; ?></fresh>
  53. <gibddreply><? if(sizeof($p['gibddreply'])) { echo "\n\t"; } foreach($p['gibddreply'] as $k => $v): ?>
  54. <src><?= $v ?></src>
  55. <? endforeach; ?></gibddreply>
  56. <fixed><? if(sizeof($p['fixed'])) { echo "\n\t"; } foreach($p['fixed'] as $k => $v): ?>
  57. <src><?= $v ?></src>
  58. <? endforeach; ?></fixed>
  59. </<?= $type ?>>
  60. <? endforeach; ?></pictures>
  61. </hole>
  62. <?
  63. $hole = ob_get_clean();
  64. $hole = str_replace("\n", "\n".str_repeat("\t", $xml_depth), $hole);
  65. return $hole;
  66. }
  67. /**
  68. * Шаблон списка регионов
  69. */
  70. public static function GetRegions()
  71. {
  72. echo "\t<regionslist>\n";
  73. foreach(CGreensightRFSubject::$_RF_SUBJECTS_FULL as $k => $v)
  74. {
  75. echo "\t\t".'<region id="'.$k.'">'.$v.'</region>'."\n";
  76. }
  77. echo "\t</regionslist>\n";
  78. }
  79. public static function GetRegionGIBDD($id)
  80. {
  81. CModule::IncludeModule('iblock');
  82. $res = CIBlockElement::GetList(array(), array('IBLOCK_CODE' => 'GIBDD_HEADS', 'PROPERTY_SUBJECT_ID' => $id), array('PROPERTY_FIO', 'PROPERTY_POST', 'PROPERTY_POST_DATIVE', 'PROPERTY_ADDRESS', 'PROPERTY_TEL_DEGURN', 'PROPERTY_GIBDD_NAME'));
  83. if (!$res) echo C1234HoleApiXML::Error('INTERNAL');
  84. $arElement = $res->Fetch();
  85. echo "\t".'<gibdd subjectid="'.$id.'">'."\n";
  86. echo "\t\t".'<gibdditem address="'.htmlspecialchars($arElement['PROPERTY_ADDRESS_VALUE']).'" tel="'.htmlspecialchars($arElement['PROPERTY_TEL_DEGURN_VALUE']).'">'.htmlspecialchars($arElement['PROPERTY_GIBDD_NAME_VALUE']).'</gibdditem>'."\n";
  87. echo "\t\t".'<nominative post="'.htmlspecialchars($arElement['PROPERTY_POST_VALUE']).'" gibdd="'.htmlspecialchars($arElement['PROPERTY_GIBDD_NAME_VALUE']).'">'.htmlspecialchars($arElement['PROPERTY_FIO_VALUE']).'</nominative>'."\n";
  88. echo "\t\t".'<dative post="'.htmlspecialchars($arElement['PROPERTY_POST_DATIVE_VALUE']).'">'.htmlspecialchars($arElement['PROPERTY_FIO_DATIVE_VALUE']).'</dative>'."\n";
  89. echo "\t".'</gibdd>'."\n";
  90. }
  91. /**
  92. * Сообщить о положительном или отрицательном (что вряд ли бывает, так как
  93. * в этом случае должны торчать сообщения об ошибках) результате
  94. * выполнения некой процедуры (любой).
  95. */
  96. public static function ProcedureResult($bResult = true)
  97. {
  98. echo "\t".'<callresult result="'.(int)$bResult.'">'.($bResult ? 'ok' : 'fail').'</callresult>'."\n";
  99. }
  100. /**
  101. * Отображение авторизационных и прочих данных пользователя.
  102. */
  103. public static function UserAuthParams()
  104. {
  105. global $USER;
  106. $hash = str_replace('<', '&lt;', $USER->GetParam('PASSWORD_HASH'));
  107. $hash = str_replace('>', '&gt;', $hash);
  108. ?>
  109. <user id="<?= $USER->GetID() ?>">
  110. <username full="<?= htmlspecialchars(trim($USER->GetParam('NAME').' '.$USER->GetParam('LAST_NAME').' '.$USER->GetParam('SECOND_NAME'))) ?>">
  111. <name><?= htmlspecialchars(trim($USER->GetParam('NAME'))) ?></name>
  112. <secondname><?= htmlspecialchars(trim($USER->GetParam('SECOND_NAME'))) ?></secondname>
  113. <lastname><?= htmlspecialchars(trim($USER->GetParam('LAST_NAME'))) ?></lastname>
  114. </username>
  115. <passwordhash><?= $hash ?></passwordhash>
  116. </user><? echo "\n";
  117. }
  118. /**
  119. * Шаблон предупреждения.
  120. */
  121. public static function Warning($code)
  122. {
  123. return "\t".'<warning code="'.htmlspecialchars($code).'">'.GetMessage('APIWARNING_'.$code).'</warning>'."\n";
  124. }
  125. }
  126. ?>