Вы читали доки? getbootstrap.com/javascript/#carousel-methods
Чем Вас не устраивают методы .carousel('prev') и .carousel('next'), только селектор будет не 1 как в примере, а несколько. Или через each написать. И вызывайте эти методы по клику на что угодно. Хоть на стрелки слайдеров, хоть на отдельные кнопки, хоть на логотип сайта.
А зачем считать длинну массива если все равно все перебираете? Запускаете 1 foreach в нем другой и проводите свои махинации.
Так же обратите внимание на array_diff_assoc и други функции работы с массивами. Например in_array и т.д.
Не совсем понимаю Вы сравниваете зависимо от ключей или нет?
OpenCart работает по принципу mcv. Посмотри куда запрос отправляется, найди контроллер и добавь там все что хочешь. Подсказки тут: docs.opencart.com/developer/module
2 варианта вижу я:
1. Так как под каждый тип превью рационально использовать разные типы данных, то наверное 5 связанных таблиц. И связь не через FK а реализовать в php.
2. Талица blog c id и таблица blog_preview в которой blog_id, и тогда через FK
1 вариант мне более нравится, тем что это более гибкое решение. Потом не надо будет танцев с бубном, что бы добавить еще один тип превью + более рациональное использование памяти. Под разные превью можно использовать разную логику и кол-во полей в базе и т.д. Но любители MySql сейчас назовут меня еретиком и спалят своими комментами.
2 вариант наверное ближе к стандартам, но стандарты пишут и переписывают люди.
Можно почитать тут: https://habrahabr.ru/company/devconf/blog/258979/
Но проще наверное делать через ajax не на сервере. Получили запрос в php, рендерим страницу с загрузкой, из нее запустили ajax на сторонний сервер получили данные, отправили ajax на php, отдали в страницу с загрузкой.
PS: c php7 еще не разбирался, но наталкивался на инфо, что там будет асинхронность.
1. А как у Вас шаблоны связаны с БД(базой данных)?
2. Стадия загрузки идет после стадии формирования html на сервере средствами php и modx. Соответственно именно там и надо вставить логику для выбора шаблона. Если это связанно с юзером, то можно хранить в сессии.
3. Обычно, когда говорят "подменить шаблон на лету" имеют в виду замену в браузере. Например пользователь нажал кнопку "красная тема", сменилась тема, но это делается заменой css файла, средствами javascript
4. Очень туманно сформулировано, добавьте конкретики.
Есть такая классная штука - openserver. Ставишь и тестируешь все что хочешь. Маловероятно, что кто-то даст выполнять php скрипты у себя на сервере, как сервис. Потому что:
- это не безопасно
- это никому не нужно
У Вас довольно уникальный функционал (если курсы в онлайн), а Вы думаете его делать на движке для блогов. Какие плагины? Надо брать framework и писать функционал, если хотите, что бы это работало быстро и так как Вам надо.
В крайнем случае (если курсы высылаются по почте) можно взять скрипт магазина, который умеет торговать электронными товарами.
Но уж точно не стоит пытаться из вафельницы (wordpress) делать автомобиль. Даже прикрутив к нему модуль магазина - танцев с бубном будет очень много. Я уже молчу про дальнейшее развитие проекта.
Бюджет 10к - чего? Если рублей - бегите.
Есть чудесное ПО для парсинга - ContentDownloader sbfactory.ru/?p=600
Так же есть чудесная php библиотека simplehtmldom.sourceforge.net
А еще есть суровая, но рабочая штука - регулярные выражения
Так же, как в любом другом движке: найти шаблон, в нем найти переменную, перенести в другое место шаблона. В случае с характеристикам, там вероятно массив.
Вы передаете в функцию 3 значения, а она принимает 1. Не знаю что Вы хотите, но либо $class->add("12,11,2009");
либо public function add($d,$m,$y)
Странно, что дата у Вас через запятую. Это вообще зачем? Я не знаю, что Вы там делаете, но явно стоит почитать про даты в php, начните отсюда www.php.su/mktime
Это не чистый php это уже использование методов (cms или farmework-а на php), так что не плохо было бы назвать какого.
Или если это самописка - то добавить код методов orderByDescending и т.д.
Так же напишите что не так в результате? Получаете что и чем то что получаете отличается от желаемого.