Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
Создание и поддержка сайтов web-aim.ru
Готовое решение для создания
корпоративного сайта
8 800 201-07-68
8 800 201-07-68
Заказать звонок
E-mail
hello@web-aim.ru
Написать нам
Услуги
  • Сайт
    • Интернет-магазин с индивидуальным дизайном
    • Интернет-магазин на шаблоне
    • Корпоративный сайт на шаблоне
    • Корпоративный сайт с индивидуальным дизайном
    • Личный кабинет
  • Поддержка и развитие
    • Интеграция Битрикс24
    • Интеграция с 1С
    • Интеграция с МойСклад
    • Технология: композитный сайт
    • Техподдержка
  • CRM
    • Интернет-магазин + CRM
    • Коробочная версия Битрикс24.CRM
Портфолио
  • CRM
  • Интернет-магазин
  • Корпоративные сайты
  • Техподдержка
О нас
  • О Компании
  • Работа в WEB-AiM
  • Партнеры
  • Новости
  • Мероприятия
  • Сертификаты
  • Как мы работаем
  • Отзывы
  • Реквизиты
Блог
Контакты
Партнерская программа
8 800 201-07-68
8 800 201-07-68
Заказать звонок
E-mail
hello@web-aim.ru
Заказать звонок
Создание и поддержка сайтов web-aim.ru
Услуги
  • Сайт
    Сайт
    • Интернет-магазин с индивидуальным дизайном
    • Интернет-магазин на шаблоне
    • Корпоративный сайт на шаблоне
    • Корпоративный сайт с индивидуальным дизайном
    • Личный кабинет
  • Поддержка и развитие
    Поддержка и развитие
    • Интеграция Битрикс24
    • Интеграция с 1С
    • Интеграция с МойСклад
    • Технология: композитный сайт
    • Техподдержка
  • CRM
    CRM
    • Интернет-магазин + CRM
    • Коробочная версия Битрикс24.CRM
Портфолио
  • CRM
  • Интернет-магазин
  • Корпоративные сайты
  • Техподдержка
О нас
  • О Компании
  • Работа в WEB-AiM
  • Партнеры
  • Новости
  • Мероприятия
  • Сертификаты
  • Как мы работаем
  • Отзывы
  • Реквизиты
Блог
Контакты
Партнерская программа
    Создание и поддержка сайтов web-aim.ru
    Услуги
    • Сайт
      Сайт
      • Интернет-магазин с индивидуальным дизайном
      • Интернет-магазин на шаблоне
      • Корпоративный сайт на шаблоне
      • Корпоративный сайт с индивидуальным дизайном
      • Личный кабинет
    • Поддержка и развитие
      Поддержка и развитие
      • Интеграция Битрикс24
      • Интеграция с 1С
      • Интеграция с МойСклад
      • Технология: композитный сайт
      • Техподдержка
    • CRM
      CRM
      • Интернет-магазин + CRM
      • Коробочная версия Битрикс24.CRM
    Портфолио
    • CRM
    • Интернет-магазин
    • Корпоративные сайты
    • Техподдержка
    О нас
    • О Компании
    • Работа в WEB-AiM
    • Партнеры
    • Новости
    • Мероприятия
    • Сертификаты
    • Как мы работаем
    • Отзывы
    • Реквизиты
    Блог
    Контакты
    Партнерская программа
      8 800 201-07-68
      Заказать звонок
      E-mail
      hello@web-aim.ru
      Написать нам
      Создание и поддержка сайтов web-aim.ru
      Телефоны
      8 800 201-07-68
      Заказать звонок
      Создание и поддержка сайтов web-aim.ru
      • Услуги
        • Услуги
        • Сайт
          • Сайт
          • Интернет-магазин с индивидуальным дизайном
          • Интернет-магазин на шаблоне
          • Корпоративный сайт на шаблоне
          • Корпоративный сайт с индивидуальным дизайном
          • Личный кабинет
        • Поддержка и развитие
          • Поддержка и развитие
          • Интеграция Битрикс24
          • Интеграция с 1С
          • Интеграция с МойСклад
          • Технология: композитный сайт
          • Техподдержка
        • CRM
          • CRM
          • Интернет-магазин + CRM
          • Коробочная версия Битрикс24.CRM
      • Портфолио
        • Портфолио
        • CRM
        • Интернет-магазин
        • Корпоративные сайты
        • Техподдержка
      • О нас
        • О нас
        • О Компании
        • Работа в WEB-AiM
        • Партнеры
        • Новости
        • Мероприятия
        • Сертификаты
        • Как мы работаем
        • Отзывы
        • Реквизиты
      • Блог
      • Контакты
      • Партнерская программа
      Написать нам
      • 8 800 201-07-68
        • Телефоны
        • 8 800 201-07-68
        • Заказать звонок
      • hello@web-aim.ru

      Самый длинный адрес

      Главная
      —
      Статьи
      —
      Битрикс24
      —Самый длинный адрес
      Битрикс24
      12 апреля 2019

      Ванька свернул вчетверо исписанный лист и вложил его в конверт, купленный накануне за копейку... Подумав немного, он умокнул перо и написал адрес:

      На деревню дедушке.

      Потом почесался, подумал и прибавил: «Константину Макарычу».

      А.П. Чехов «Ванька»

      У заказчика возникла проблема – не помещался длинный адрес в отведенную строку таблицы в бланке заказа (печатные документы в «Заказах» для администраторов), который печатался и прикреплялся к коробке с товаром. Файл, содержащий предустановленный шаблон, находится в каталоге

      /bitrix/modules/sale/ru/reports/order_form.php

      Адрес не помещался в строку печатного документа.

      1.jpg

      Решили сделать, чтоб было красиво и аккуратно.

      Для этого написали код:

      <?
          $userAddr = $arOrderProps["ADDRESS"];
          $addrArray = explode (" ", $userAddr);
          $rowNum = 0;
          $addrRow = [];
          foreach($addrArray as $addrElement){
              if (strlen($addrRow[$rowNum]) + strlen($addrElement) > 55){
                  $rowNum++;	
              }	
              $addrRow[$rowNum] = $addrRow[$rowNum] . $addrElement . " ";
          }
      ?>
      <? 
          foreach($addrRow as $userAddr){?>
              <tr>
                  <td width="180"><font class="sub_header"></font></td>
                  <td style="border-bottom : 1px solid Black;">
                      <input class="user" size="50" style="border:0px solid #000000;" 
                      type="text" value="<?=$userAddr?>">
                  </td>
              </tr>		
          }
      ?>

      Этот метод универсален, и применяется не только для 1С-Битрикс.

      Разберем код.

      В переменной $userAddr хранится строка с адресом, который вводил пользователь. Строка адреса передается в документ в элементе массива $arOrderProps["ADDRESS"], содержащего данные формы, которую заполняет пользователь при оформлении заказа. Там может оказаться любое количество символов.

      Блок <tr>…</tr> в конце – это та часть html кода, которая отвечает за вывод строки с адресом, который находится в переменной $userAddr

      Изначально кроме переменной и блока вывода строки ничего не было. Но у пользователя «случился» длинный адрес и печатный документ был не читабелен.

      (Первая строка – это адрес, выбираемый из списков. Нас интересует вторая строка, в которой пользователь мог бы не заполнять первую половину адреса, но система его никак в этом не ограничивает, и он написал и выбрал всё, что мог)

      Пришлось писать код, чтоб было красиво и аккуратно.

      К переменной с адресом применили функцию explode:

      $addrArray = explode (" ", $userAddr);

      Она разбивает строку на массив элементов и использует в качестве сепаратора символ пробела. Можно было бы использовать запятую, но где гарантия, что все умеют ими пользоваться? :)

      Далее мы задаем номер элемента массива для первой строки:

      $rowNum = 0;

      foreach($addrArray as $addrElement){

      Цикл перебирает все элементы массива $addrArray и кладет их содержимое в $addrElement.

      То есть на каждой итерации этой функции мы в $addrElement имеем «слово» от пробела до пробела.

      Далее идет условие:

      if (strlen($addrRow[$rowNum]) + strlen($addrElement) > 55){

      Это условие проверяет, не превышает ли наша строка ограничение по длине (55 знаков), если к ней присоединить еще одно «слово».

      Если нет:

      $addrRow[$rowNum] = $addrRow[$rowNum] . $addrElement . " ";

      добавляет к текущей строке очередное «слово» $addrElement и пробел (у нас же теперь нет пробелов)

      Если да:

      $rowNum++;

      Инкрементирует номер элемента массива и новый элемент начинает заполнятся «словами». Это будет следующая строка.

      Повторяем, пока не кончатся «слова».

      Длина строки подбирается под конкретные условия. В нашем случае помещалось 55 символов.

      После завершения работы цикла у нас будет массив $addrRow[n], где n – количество строк. И в каждой строке будут содержаться «слова», суммарная длина которых не превышает 55 символов.

      Далее мы переходим к выводу массива на страницу.

      <?
          foreach($addrRow as $userAddr){
      ?>
              <tr>	
                      …
              </tr>	 	
      <?}?>

      Функция перебирает все элементы массива $addrRow[n], содержащие строки для вывода, и выполняет html-код столько раз, сколько строк содержится в массиве.

      Теперь документ выглядит следующим образом:

      2.jpg

      Если адрес будет очень длинным, то и строк будет больше.

      Существует в России адрес, ставший претендентом на внесение в книгу рекордов России, состоящий из 138 знаков.

      3.jpg

      (источник http://svidetel24.info/archives/35147)

      И даже он помещается теперь в документ и выглядит там хорошо и читабельно.

      4.jpg

      Назад к списку
      • Кейс 15
      • Аудит 9
      • Битрикс24 28
      • Маркетинг 37
      • Ценные советы 20
      8 800 201-07-68
      8 800 201-07-68
      Заказать звонок
      E-mail
      hello@web-aim.ru
      Заказать звонок
      hello@web-aim.ru
      © 2023 WEB-AiM
      Политика конфиденциальности This site is protected by reCAPTCHA and the Google Privacy Policy Terms of Service
      Подписаться на рассылку