Из часа в час приходится читать ваш код, код 1С Битрикса, вникать в мысли ваших программистов, и не редкий случай сталкиваюсь с какими то парадоксальными решениями от которых волосы встают дыбом... хочется иногда понять мотивацию человека писавшего код ... а лучше посмотреть ему в глаза и спросить, ну зачем? зачем усложнять так простую задачу и логику и писать излишний код .... (кстати я потихоньку прихожу к доводу что зарплату вам за количество кода начисляют ...)
Сегодня в очередной раз столкнулся с тем что, вышла очередная рассылка наших новостей нашим подписчикам, и удивление мое вызвало что многие вложенные картинки побились... как так то? собственно ничего страшного и не случилось, НО! всё же случилось. А что именно?!
Оказывается менеджер новостей не вникая в идеологию наименования файлов картинок прикрепил к новостям картинки содержащие пробелы, типа:
Имя один.jpg
И снова ведь ничего страшного, ведь <img src="Имя один.jpg"> отработает успешно если имя файла в ФС лежит в той же кодовой кодировке что и в html'е ...
Но картинок нет ...
Смотри что же пытаются отобразить браузеры, а они почему то старательно хотят показать: <img src="Имяодин.jpg"> ... хочется ругаться .. куда делся пробел то? ведь если генерировать пробную страницу в админке, то в темплейте пробел есть!
Смотрим исходный код письма и видем что то жуткой и страшненькое ...
body пошинкован по определенной длине строк, но как то не ровненько ... где то пролетают длиные строки всё же ...
что то типа:
заинтересовало... начал искать корни злодеяний, и вот оно, modules/subscribe/classes/general/posting.php:
с красивым таким комментом ... но тут посыпались вопросы:
1) программист писавший это осознал что есть лимиты у мташек, но тем не менее строки (не содержащие пробелы) более 512 байт пропускает: .{512}[^ ]* ...
2) программист почему то заложился только на пробелы, а табуляторы пропускает ...
по вине этого кода бьются на переносы пробелы в именах файлов картинок в том числе ...
а теперь вопрос, зачем было городить огород если он строго не делает того чего должен был бы?! в чём логика та?!
пс. Все комменты типа что сложного добавить к примеру urlencode или ему подобное в темплейты рассылок опускаю, так как сейчас речь не об этом!
просто хочется узнать, зачем?!
Сегодня в очередной раз столкнулся с тем что, вышла очередная рассылка наших новостей нашим подписчикам, и удивление мое вызвало что многие вложенные картинки побились... как так то? собственно ничего страшного и не случилось, НО! всё же случилось. А что именно?!
Оказывается менеджер новостей не вникая в идеологию наименования файлов картинок прикрепил к новостям картинки содержащие пробелы, типа:
Имя один.jpg
И снова ведь ничего страшного, ведь <img src="Имя один.jpg"> отработает успешно если имя файла в ФС лежит в той же кодовой кодировке что и в html'е ...
Но картинок нет ...
Смотри что же пытаются отобразить браузеры, а они почему то старательно хотят показать: <img src="Имяодин.jpg"> ... хочется ругаться .. куда делся пробел то? ведь если генерировать пробную страницу в админке, то в темплейте пробел есть!
Смотрим исходный код письма и видем что то жуткой и страшненькое ...
body пошинкован по определенной длине строк, но как то не ровненько ... где то пролетают длиные строки всё же ...
что то типа:
Код |
---|
<tr> <td> <span style="font-size: 12px;color: #313236;font-family: arial;"> НВП «Сибирский Арсенал» представило новые версии охранных извещателей. </span> </td> </tr> .... target="_blank" style="font-family:arial; color:#000000; font-size: 13px; font-weight:bold; color: #000000; text-decoration: none; border-bottom: 1px solid black;" href="http://www.site.ru/catalog/">Каталог</a> </td> <td align="center" > <a target="_blank" st yle="font-family:arial; ....!!!!! <div></div><div></div><div></div><img src="Имя один.jpg"><div></div><div></div><div></div><div></div> !!!!!.... |
заинтересовало... начал искать корни злодеяний, и вот оно, modules/subscribe/classes/general/posting.php:
Код |
---|
578 $sBody = implode( 579 "\n", 580 array_filter( 581 preg_split("/(.{512}[^ ]*[ ])/", $sBody." ", -1, PREG_SPLIT_DELIM_CAPTURE) 582 ) 583 ); //Some MTA has 4K limit for fgets function. So we have to split the message body. |
1) программист писавший это осознал что есть лимиты у мташек, но тем не менее строки (не содержащие пробелы) более 512 байт пропускает: .{512}[^ ]* ...
2) программист почему то заложился только на пробелы, а табуляторы пропускает ...
по вине этого кода бьются на переносы пробелы в именах файлов картинок в том числе ...
а теперь вопрос, зачем было городить огород если он строго не делает того чего должен был бы?! в чём логика та?!
пс. Все комменты типа что сложного добавить к примеру urlencode или ему подобное в темплейты рассылок опускаю, так как сейчас речь не об этом!
просто хочется узнать, зачем?!