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

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

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

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

Date: Friday, 20 April 2012 20:55 (UTC)
From: [identity profile] polarlightwolf.livejournal.com



Джумла, и некоторые ее компоненты порой просто удивляют своей "логикой"...

Date: Friday, 20 April 2012 20:58 (UTC)
From: [identity profile] vetka-nn.livejournal.com
Ага, именно так оно и происходит. :)))

«Меж двух стульев»

«Все это — и дикое несоответствие частей, и странный лексический контраст, не говоря уже о голосе, невероятным образом совмещавшем в себе разные регистры, — настолько ошарашило Петропавла, что тот не только не извинился, но и не поздоровался.

— Смежная Королева, — очаровательно противно улыбнулась хозяйка и, опять не дождавшись ответа, предложила: — Входите, пожалуйста, или гребите отсюда тогда уж!»

(Евгений Клюев. «Меж двух стульев»)

December 2015

M T W T F S S
 123456
78910111213
1415 1617181920
212223242526 27
28293031   

Expand Cut Tags

No cut tags
Page generated Monday, 9 June 2025 03:05
Powered by Dreamwidth Studios