vetka: (Default)
Пока не забыла, надо записать — чтоб второй раз не встать на эти грабли.

По умолчанию ссылки в Джумле выглядят примерно так:
www.site.com/index.php?option=com_jevents&view=year&task=year.listevents&Itemid=119&lang=ru
Страшненько так, и ни разу не человекопонятно. Чтобы этот недостаток исправить, в Джумлу встроена штатная фича алиасов. Прописываешь у нужного пункта меню желаемый алиас, например, calendar, включаешь нужные настройки, и эта же страшненькая ссылка уже будет выглядеть как www.site.com/calendar или даже как www.site.com/calendar.html. При этом, например, в тексте материалов ссылки лучше всё же размещать в исходном, страшненьком виде — а Джумла их уже сама любезно преобразует на выходе.

А глюк заключается в следующем. Если ссылка прописана как
<a href="index.php?option=com_jevents&view=year&task=year.listevents&Itemid=119&lang=ru">йа ссылко</a>
— Джумла ее преобразует в нашу заданную заранее красивенькую. А вот если эта же ссылка прописана как
<a href='index.php?option=com_jevents&view=year&task=year.listevents&Itemid=119&lang=ru'>йа ссылко</a>
— то она нифига не будет преобразована. Работать будет, но отображаться будет в исходном, страшненьком виде. Кто не разглядел разницы — поясняю: дело в кавычках.

Замечено было на Джумле 1.5.26 (и не надо мне ничего говорить про извращенцев, которые до сих пор сидят на полторахе). В двапятой не наблюдала - то ли уже исправили, то ли просто не попадалось.
vetka: (Default)
Сегодня бОльшую часть дня я развлекалась. Своеобразненько, скажем так. Суть развлечения состояла в том, что я изобретала велосипед обрабатывала напильником платный компонент, купленый моими клиентами (реально, честно купленый, причем, по моей же наводке; был бы пизженный с варезников — было бы не так обидно).

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

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

Победила в конце концов, фигли ж. Но общее впечатление от компонента в целом осталось — как будто его писало стопиццот индийских программистов, каждый — по своему крохотному кусочку кода. Что там теория вероятности утверждала о миллионе обезьян, посаженных за пишущие машинки? Вот примерно тот самый случай.
vetka: (Default)
Столкнулась с неприятным багом: при редактировании материалов в админке сайта на Joomla, с включенным редактором TinyMCE в относительных адресах картинок срезается первый слэш. Например, я в режиме HTML-редактирования черным по белому пишу ему: <img src="/images/kartinko1.jpg" />. Сохраняю. При сохранении оно само переключается на визуальный редактор, и в конечной страничке этот кусок выглядит уже таким образом: <img src="images/kartinko1.jpg" />. И дальше начинаются глюки. То есть, если адрес страницы, на которой находится эта картинка, выглядит как http://site.com/stranichka.html или даже как http://site.com/stranichka — то всё нормально. А вот если он выглядит, например, как http://site.com/ru/razdel/category/stranichka — тогда картинку на страничке просто-напросто не видно. Пробовала разные шаманские пляски. Отключала очистку кода при сохранении в настройках TinyMCE — но это была стрельба по воробьям из пушки, тем более, что в отместку эта зараза мне начинала свой мусор туда кидать (типа <img src="/images/kartinko.jpg" mce_src="images/kartinko.jpg" style="border: 0pt none; float: left; padding-right: 20px;" mce_style="border: 0; float:left; padding-right: 20px;" />). Подставляла абсолютный URL вместо относительного, но это и вовсе было не выходом, поскольку я часто редактирую материалы на локальном зеркале сайта, а потом просто переношу дамп базы. Обильное гугление дало результаты: на оффсайте TinyMCE советовали в параметры вызова редактора включать строчку convert_urls : false. Осталось найти еще, где это всё вызывается в Джумле. А вызывается оно в файлике /plugins/editors/tinymce.php. В нем ищем саму строку вызова: tinyMCE.init({ ... }) (она там встречается аж три раза) и внутрь каждой из них пихаем этот параметр. Сохраняем, редактируем наши материалы с картинками заново, и наслаждаемся жизнью, попутно недоумевая — почему непременно необходимо дорабатывать напильником и нельзя просто настроить этот параметр через веб-интерфейс.

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

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

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

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

December 2015

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

Expand Cut Tags

No cut tags
Page generated Saturday, 7 June 2025 14:02
Powered by Dreamwidth Studios