vetka: (Default)
Vetka ([personal profile] vetka) wrote2012-04-20 11:57 pm

Рабочие развлечения

Сегодня бОльшую часть дня я развлекалась. Своеобразненько, скажем так. Суть развлечения состояла в том, что я изобретала велосипед обрабатывала напильником платный компонент, купленый моими клиентами (реально, честно купленый, причем, по моей же наводке; был бы пизженный с варезников — было бы не так обидно).

У замечательной (а начиная с версии 1.7 она действительно стала на мой взгляд замечательной) CMS Joomla существуют несколько разных компонентов интернет-магазинов. Общепризнанным стандартом стал Virtuemart, но он лишку монстрообразен — как с точки зрения подгонки под нужды конкретного сайта, так и с точки зрения администрирования. И когда очередным моим клиентам понадобился интернет-магазин, я стала искать альтернативы виртумарту — уж очень не хотелось трахаться с этим монстром. В качестве почти полной бесплатной альтернативы по функционалу на форумах упоминался компонент JoomShopping. Посмотрев на него вполглаза, я решила, что это то что надо. Поставила, стала настраивать. В процессе выяснилось, что такая элементарная функция, как сравнение товаров, в нем почему-то отсутствует. Точнее, существует, но в виде отдельного платного модуля. За его-то приобретением клиенты и были посланы («уж послала так послала!») к разработчику. Оплатили, получили, прикрутила я его к джумшоппингу. А вот при настройке и началось веселье.

Во-первых, выяснилось, что в самой табличке сравнения он генерит неправильный URL на товар, который в джумле вызывает 404 ошибку. Патамушта ID категории, который должен присутствовать в URLе, формально вроде как присутствует, а фактически — нет, не вытаскивается он текущим запросом («теоретически — так это лошадь, а практически — так она падает!»). Кстати, по поводу этого category_id тоже обнаружилось отдельное веселье. В джумшоппинге он хранится ни разу не в табличке с товарами. Он хранится в совершенно отдельной табличке, содержащей product_id и category_id. Нахрена так было делать — непонятно (при том, что аналогичный параметр — manufacturer_id — вполне себе хранится именно в табличке с товарами). Ладно, ID категории выгрызли, корректный URL сгенерили. Теперь собственно само сравнение. В табличке сравнения по умолчанию присутствуют: название продукта, картинка продукта (одна), ссылка на подробное описание (нерабочая) и кнопочка «удалить из сравнения». И еще характеристики товаров (типа — материал: оловянный, деревянный, стеклянный), которые в админке заполняются совершенно отдельно, а могут и не заполняться вовсе. Зато полностью отсутствуют цена товара, производитель, вес — на мой взгляд, как раз самые необходимые параметры для сравнения. И если с ценой возни практически не было — можно сказать, одно движение, и даже не напильником, а так — пилочкой для ногтей, то с производителем пришлось повозиться.

Победила в конце концов, фигли ж. Но общее впечатление от компонента в целом осталось — как будто его писало стопиццот индийских программистов, каждый — по своему крохотному кусочку кода. Что там теория вероятности утверждала о миллионе обезьян, посаженных за пишущие машинки? Вот примерно тот самый случай.

Post a comment in response:

(will be screened)
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org