Избавление от спагетти кода в Smarty шаблоне

Навеяно холиваром про Смарти

Дано:

  • северный шаблон, написанный с нуля
  • табличная верстка (корзина покупателя табличного вида)
  • каша из PHP, Smarty, HTML, CSS, JS/JQuery и прочих радостей жизни веб разработчика
  • Активная вычислительная логика (общая сумма заказа, которая зависит от выбранных вариантов товаров, цены, кол-ва и установленного чекбокса “Я уже это имею”) по управлению

Что нужно:

  • респонсив
  • Добавить довольно сложная логика управления видимостью (или же “серостью/возможностью редактирования внутренних элементов”) ячеек или целых столбцов
  • управляемый и тестируемый код, в который легко вносить изменения
  • идеальный вариант: возможность покрытия авто-тестами кода

Что сделано:

  • Логика JS по вычислению общей суммы корзины уже вынесена в отдельный JS модуль, доступ к элементам (по JQuery), находящимся к корзине уже изолирован. Является ли это решение верным?

Вопрос:

что делать дальше? Сеньором был предложен переход на MVVM/Knockout как наиболее оптимальный вариант. И как теперь осуществлять миграцию текущего кода?

Хочу все знать!

С уважением, единственный потенциальный русскоязычный юзер гремучей смеси Oxid + Smarty + Knockout, проживающий в Германии,

Зы. В Oxid теперь пришли JavaScript хипсторы, да :wink:

:smiley:

С таким же успехом можно спросить “В чём смысл жизни?” или “как собрать ядерную бомбу из лего, живательной резинки и 3 рулонов туалетной бумаги?”…
Программировать тебе? Тогда впрос не “что делать?”, а скорее “что ты можешь сделать?”. Если сначала надо учить какие-нибудь фрэймворки, то ждать хороших результатов придется долго. Есть сроки или бюджет на этот проект?
OXID рабоет на smarty, там ничего изменить не получится. Можно сделать/купить REST API, которая будет выдавать все нужные данные в формате JSON ну а дальше сделать фронтэнд на knockout.js или angular или все чего душа пожелает. Но совсем без смарти обойтись не получится, я думаю, один чекоут в OXID чего стоит… его очень сложно переделать.

Если надо как можжо быстрее, то я бы взял flow, roxive или один из другин шаблонов и встроил бы туда ваши собственные изменения.

Извините, я должен кому то сегодня написать о проблемах в Смарти зачеркнуто (в моей голове). Тоже сегодня стресс, меня окружают больные люди, я из-за этого немного больной.

Итак, элементарнейшая проблема: вывести список ссылок без дубликатов.

Что происходит в моей хипсторской голове, жаждущей Явасктипт на стороне и клиента и сервера:

написать JS код на стороне сервера (контроллер) используя TDD подход за 1 минуту, передать результат во View.

Все.

Теперь смарти шаблон… аа… контроллеров у нас нет. Пишем код в шаблоне. А мне говорят Smarty ist keine Programmiersprache.

писать код в {php} ? И без юнит тестов?

А может быть используя убогий набор смарти тегов (еще одна сущность, которую ПХП профи избегают)? Ну да, если получится.

А может перепрыгнуть на сторону клиента и писать на браузерном JS?

Все равно оно будет выполняться потом на стороне клиента (передаваться как параметр в слик слайдер)

да
Извините, может быть Оксид не для меня?