Стройте последнюю строку контента отдельно. Предположим, что N - это количество элементов на странице.
1) Если N % 3 == 0, то строим как обычно;
2) Если N % 3 == 1, то строим все, кроме последнего элемента. Затем у последней строки строим так: пропуск-4-столбцов, наш элемент, пропуск-4-столбцов;
3) Если N % 2 == 2, то строим последнюю строку так: пропуск-2-столбцов, наш элемент, наш элемент, пропуск-2-столбцов.
А не лучше ли продумать интерфейс таким образом, чтобы перенести список категорий через классы и медиа-запросы? Если этого никак не избежать, то можно и скрывать элемент до поры до времени.
Ну просто "рукалицо"...
Люди с двумя работами, семьей и детьми как-то находят время на программирование, а школьник найти не может. Ну не смешно ли?
Могу посоветовать вести "расход времени" в блокноте в течение семи-десяти дней. Записывать все-все-все, на что тратишь время: занятие, продолжительность, важность. Потом посмотри на это и ужаснись. Сразу поймешь откуда взять время на программирование.
Во множественном числе, естественно. Интуитивно становится понятно, что там не один элемент содержится. А увидишь ты перед собой переменную order и будешь думать, что там описан один объект. Будет сюрприз, когда окажется, что это массив.
1) Рисуете начальное положение такого слайдера, используя css-классы. Например, такие: leftmost, left, center, right, rightmost.
2) Изменяете через js (при клике на "стрелочки") классы у вложенных изображений.
Сейчас нет времени попробовать, но я бы сделал так:
1) ввел дополнительное поле для группировки/сортировки по временному интервалу (ваши десятиминутки). Скорее всего что-то типа целое число от деления секунды_от_начала_дня на 600 (10 минут в секундах);
3) группируем все, что нужно по этому полю;
3) присоединил точно такой же запрос с этим самым полем к нашей таблице (join), но со смещением (связываем таблицы по вычисленному полю t1.group-id = t2.group-id - 1).
4) вычислил недостающие вещи: разницу между соседними временными интервалами
Вряд ли. Это же системная информация. К ней может иметь доступ разве что браузер, скорее всего именно в нем и настраивается поведение ссылки по-умолчанию. Из js-кода без участия клиента вряд ли можно что-то узнать.
Скорее всего дело не в подключении, а самом файле js. Для начала проверьте через средства разработчика подключается ли ваш js-файл к странице. Если с подключением все в порядке, то нужно изучить сам файл js. Не знаю влияет ли, но возможно, что неверная кодировка файла не дает ему выполнится так, как нужно.
В каком формате приходят данные с клиента? JSON, XML? В любом случае можно воспользоваться встроенными библиотеками СУБД (MS SQL, ORACLE, etc) для перевода входящих данных в таблицу. Пример на Oracle:
SELECT extractValue(value(t),'value') val, extractValue(value(t),'value/@id') attr
FROM TABLE(XMLSequence(XMLType('<form><value id="1">first</value><value id="2">second</value></form>').extract('form/value'))) t;
Мне кажется, что это простое копирование/вставка текста, реализуемая браузером. Если такую функцию отключить на сайте, то вполне возможно, что нельзя будет ее использовать...