Илья, можно на стороне клиента получить данные и передать их на сервер. Потом периодически обновлять.
Либо реализовать через php с использованием curl, например. Посмотрите что происходит в Network, какие запросы уходят, на какие адреса, попробуйте их повторить.
Для начала неплохо бы вычеслить длину строки (она ещё пригодится) и сравнить её с $length, и если окажется меньше, то просто вернуть как есть.
Попробуйте определить позицию "по умолчанию" как первое вхождение пробела (точки, тире или т.п.) начиная с позиции $length (но тогда будет длиннее, чем требуется). Этот вариант проще:
$pos = mb_strpos ($postText, ' ', $length);
Либо как последнее вхождение пробела до символа $length, т.е. offset должен иметь отрицательное значение. Но в данном случае возможны некоторые подводные камни (если вы решите обрезать также и первый абзац, а не выдавать его целиком, в таком бы случае я рекомендовал бы использовать рекурсивный выхов функции с первым абзацем в качестве параметра):
anton99zel, функция, которую вы используете asort как раз этим и занимается, а добавить в массив можно так:
$arResult['DISPLAY_PROPERTIES']['OTHER_COLORS']['LINK_ELEMENT_VALUE'][400] = 'ваши данные';
Figment, он более универсален и обладает большими возможностями.
Что касается гамбургеров, которые вам нужны, то у Bootstrap 3 для этих целей есть только navbar-collapse, который схлопывается только лишь при 786px (по умолчанию, но можно кастомизировать через sass или с помощью кастомайзера на оф.сайте).
Антон Антонов, хотя бы стили для подробнее и расположение блоков. Хотя есть вариант, что просто у подробнее задана ширина 100% или вообще не задана. Возьмите подробнее в один блок с превью статьи
Либо реализовать через php с использованием curl, например. Посмотрите что происходит в Network, какие запросы уходят, на какие адреса, попробуйте их повторить.
Вот немного старенький пример: webmap-blog.ru/bez-rubriki/mnozhestvennoe-geokodir...