Прям все 10 друзей круглосуточно сидят на вашем сайте и каждые 10 секунд обновляют страницу? Вот когда такое и будет - тогда и будете оптимизировать, кэшировать, да и вообще откажетесь от MySQL.
А пока сделайте самым простым, но не самым худшим способом.
Тогда без join фото/видео/статьи. Найти нужные события, а потом в цикле отдельный запрос к нужному фото/видео/статье.
Не очень эффективно, но просто. Для начала сойдет.
Подбор по параметрам сверстан отстойно, виджеты не работают.
У многих блоков нет содержимого, есть только заголовок. Например, "С этим товаром покупают".
У "CTV-HDD3620A SE" старая цена 1964 руб, новая - 1964 руб. Офигенная скидка!
У "комплектов" написано "больше нет", но при этом можно купить.
У "комплектов" в списке одна цена, а в карточке совсем другая.
В консоль выводится много отладочной информации.
У меня стоит advblock, который блокирует метрику и прочий мусор. А без метрики кнопка "Купить" не работает, то есть я не могу ничего купить. Вам покупатели не нужны, да?
Можно оформить заказ без единого товара.
Возможно, такое подходит вашему магазину, но уважающая себя компания такое использовать не будет.
sim3x: Мне вообще проще сразу написать регулярку. Но если автор программист - ему надо включить свой мозг самостоятельно. Если не программист - ему путь на фриланс.
Ubuntu вряд ли виноват. Возможно, отличаются версии библиотек, не установлено что-то, кодировки не совпадают и еще множество других неочевидных причин.
Сделайте и выложите test-case (рабочий вариант с минимумом строк), где ошибка воспроизводится. Тогда я смогу запустить его и проверить.
А пока сделайте самым простым, но не самым худшим способом.