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)
Ого, оказывается, Джумла 3 уже успела выйти! Потираю ручки в предвкушении.
vetka: (Default)
Сегодня бОльшую часть дня я развлекалась. Своеобразненько, скажем так. Суть развлечения состояла в том, что я изобретала велосипед обрабатывала напильником платный компонент, купленый моими клиентами (реально, честно купленый, причем, по моей же наводке; был бы пизженный с варезников — было бы не так обидно).

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

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

Победила в конце концов, фигли ж. Но общее впечатление от компонента в целом осталось — как будто его писало стопиццот индийских программистов, каждый — по своему крохотному кусочку кода. Что там теория вероятности утверждала о миллионе обезьян, посаженных за пишущие машинки? Вот примерно тот самый случай.
vetka: (sasha_6)
Моя дочь — она моя, ага. До мозга костей. Захожу в ее комнату и вижу на ноуте, на котором она смотрит мультики, такую картину: поверх этих самых мультиков открыта страничка форума поддержки BS-player'а. Но открыта не просто так, а в виде html-кода в окошке с заголовком «Средства разработчика». Дитятке через месяц будет три года, есличо.
vetka: (Default)
Еще рабочие моменты — пишу себе на заметку, чтобы в будущем знать, где эти грабли зарыты, а то даже всемогущий гугль не помог. Дано: стандартный двухколоночный макет, при этом картинка бекграунда у body привязана к нижнему правому углу. Точнее, должна быть привязана, а на практике — отступает от него пикселей на 10. Все марджины-паддинги-бордеры, разумеется, сброшены в нуль, у body проставлена стопроцентная высота и т.п. — бесполезно. Опытным путем установлено, что лишний padding внизу возникает у элемента html (ну или margin у body — точнее не узнать, поскольку даже файрбаг молчит как партизан). От безысходности начала действовать методом научного тыка: отключать всё подряд и по одному подключать обратно. Так вот, выяснилось, что гадит постоянно используемая и казавшаяся белой и пушистой примочка:

.clear {
	clear: both;
	height: 0px;
	line-height: 0px;
	}


Точнее, два ее последних параметра. На вопрос: «Но как?»© у меня только один ответ: «Не зна-а-а-аю!»©. Но суть в том, что после их отключения всё заверте. Правда, наверняка из-за этого отключения появятся новые сюрпризы, но с ними уже будем разбираться по мере поступления.
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({ ... }) (она там встречается аж три раза) и внутрь каждой из них пихаем этот параметр. Сохраняем, редактируем наши материалы с картинками заново, и наслаждаемся жизнью, попутно недоумевая — почему непременно необходимо дорабатывать напильником и нельзя просто настроить этот параметр через веб-интерфейс.
vetka: (Default)
Долгое время сотрудничала с одной вебстудией, потом в совместной работе случился довольно длительный перерыв, а сейчас опять подкинули макет на верстку. Так в ТЗ в качестве, типа, корпоративного стандарта дали указание использовать названия классов именно те, что я еще в начале сотрудничества с ними ввела в качестве своего собственного стандарта — для своего же удобства. Забавно, так вот нечаянно-негаданно вдруг оказываешься основателем корпоративных стандартов. Пустячок, а приятно.
vetka: (Default)
Есть такой распространенный движок сайтов — Joomla. А к нему есть не менее распространеный компонент интернет-магазина — VirtueMart. А в этом компоненте водится злобный баг.

На самой первой странице настроек Виртумарта есть два поля ввода: «Site URL» и «Адрес для защищенного режима» (в русской локализации; в английской, по-видимому, аналогичные). И если в эти самые поля администратор сайта по незнанию или злому умыслу введет несуществующий адрес (да хотя бы просто адрес каталога без последнего слеша), то Виртумарт моментально превратится в тыкву. То есть станет полностью неработоспособным, поскольку после сохранения параметров все ссылки в его меню приобретут вот такой вид:

19Kb

и получить доступ к настройкам можно будет, только напрямую отредактировав файл %JOOMLADIR%/administrator/components/com_virtuemart/virtuemart.cfg.php — исправив в нем эти кривые ссылки на правильные.

Upd. Впрочем, как выяснилось, можно и внутри Джумловской админки исправить этот баг — достаточно зайти по адресу %JOOMLAURL%/administrator/index.php?pshop_mode=admin&page=admin.show_cfg&option=com_virtuemart и исправить там злополучные ссылки.
vetka: (Default)
Соберу-ка я в этот пост коллекцию полезных ссылочек на всякие вебдевелоперские сайты. Под катом, чтобы не портить себе карму в поисковиках. )
vetka: (Default)
Пару месяцев назад я добровольно влезла в очередную авантюру — акцию «Дизайнеры ищут кодеров». В роли кодера, разумеется, ибо чукча ни разу не читатель дизайнер. Суть акции вкратце была в том, что в комментах все дизайнеры (или считающие себя таковыми) выкладывали свои макеты возможных дизайнов для ЖЖ и их тут же подхватывали желающие сверстать это дело кодеры. И вот не прошло и полгода как я созрела выложить первые результаты. Дизайнер — [livejournal.com profile] alisa_vein, дизайн «Музыкальный». Выглядит вот так:

58Кб


Получше рассмотреть и взять себе можно тут.

А если мне вовремя дадут творческого пенделя, то я и следующий почти доверстанный дизайн того же автора доверстаю окончательно и выложу туда же.
vetka: (Default)
Сегодня у меня прямо-таки день компьютерных сюрпризов. Впервые за хрензнаетсколькилетний стаж пользования тряпнулся Дримвивер. Вот просто так, на ровном месте, работал-работал, а потом вдруг взял и обвалился. Ну ладно, оно несмертельно — благо жизнь приучила сохраняться после каждого изменения редактируемых файлов. Перезапускаю. Ничего не происходит. Думаю — мыша глючит, что ли, не кликнулось толком по иконке. Тыцкаю еще раз. Опять ничего не происходит. Не верю своим глазам. Заглядываю в процессы — и там его таки тоже нет! Сворачиваю все окна, третий раз тыцкаю по иконке и внимательно наблюдаю за происходящим: появляется сплэш-скрин, через секунду исчезает, и больше никаких следов. Лезу в системный журнал — ошибка в msvcr80.dll. Откидываюсь на спинку кресла и стараюсь получить удовольствие лениво размышляю, то ли переставить Дрима, то ли забить и верстать в Ультраэдите. [livejournal.com profile] alex_rex тем временем лезет в гугль и находит несколько упоминаний о тряпнувшихся с теми же симптомами Дримвиверах, зачитывает мне (на английском, блин!), я в пол-уха слушаю, киваю — ну да, ну да, всё как у меня, а чо делать-то? [livejournal.com profile] alex_rex продолжает дальше бубнить: «It appears that if at some point you created a file that is exactly 8.00KB big in Dreamweaver CS3 then it causes the program to crash on start-up». О как! Лезу в файлы, которые редактировала, смотрю — и действительно, CSSник весит ровно 8192 байта. Открываю в ФАРе, добавляю пару переводов строки, сохраняю, запускаю Дрим — вон он, голубчик, пажалста. Как никогда и не вылетал.

Так что если у кого Dreamweaver CS3 точно так же на ровном месте вылетит и откажется запускаться — проверьте файлы, которые вы в нем редактировали, не завалялся ли среди них один размером ровно 8192 байта. В нем-то собака и порылась. Бывают же ж такие смешные баги...
vetka: (mosk)
Два дня угрохала на ковыряние ЖЖшного слоя в попытках понять, почему же у меня не работают conditional comments, тогда как в более других слоях — работают. Расковыряла оба слоя вдоль и поперек, все идентичные функции скопировала к себе, добилась полной взаимности от компилятора — а в результате индейское жилище. Всё есть, а этих чертовых комментов нету. Готова была убить сибя апстенку и перекраситься в блондинки (посмертно), потом пришла в голову светлая мысль прочесть наконец инструкцию. И вот что там вычитала:

2.1. Untrusted layers printing incomplete HTML.

Так что можно убиваться сколько угодно, а раз объявили безобиднейшие HTML-комментарии harmful or potentially harmful, значит нефиг тут! Сегодня он комментит код, а завтра планы продает родного, бля, советского завода!
vetka: (mosk)
Говорите, русские буквы в именах файлов? Так я вам вот что скажу: русские буквы — это, знаете ли, хуйня. А вот когда заказчик присылает вам новый вариант старого проекта и просит сверстать его еще раз, поскольку клиент захотел новый дизайн (не подумайте чего, за отдельную плату, разумеется), вы скачиваете этот макет (9 метров в rar'чике, внутри psd'шник на 18 метров — ну, по большому счету тоже не смертельно), открываете этот psd'шник, и что же там обнаруживается? Думаете, новый дизайн? Хрен там! Дизайн всё тот же старый. Только поверх него еще один слой с тем самым новым вариантом. Ага, всё-всё-всё в едином растровом слое — и логотип, и шапка, и бекграунд, и все тексты поверх бекграунда. Естественно, я их послала подальше с таким заказом — и счастье того дезигнера, что у меня нет физической возможности дотянуться до него, разорвала бы на кусочки, ей-богу! Нечасто меня работа (вообще-то любимая) ввергает в полное бешенство, но тут именно тот самый случай.

И что в каком месте у таких дезингеров должно вырасти? (Лучше всего бы, конечно, мозги, но боюсь, это из области фантастики.)

Вот даже под замок прятать не буду, увидят — и нехай.

(no subject)

Wednesday, 22 March 2006 10:58
vetka: (Default)
Обнаружила еще одну кажется недокументированную багу ИЕ5.0 и попутно способ лечения. Известный CSS-хак для ИЕ < 6.0, способ переназначить стили, которые он интерпретирует по-своему:

<style type="text/css">
div#cont { float: left; width: 685px; /* Здесь пишем значение для ИЕ < 6.0 */ voice-family: "\"}\""; voice-family:inherit; width: 100%; /* А здесь для всех остальных браузеров. */ }
div#cont2 { /* Любой следующий селектор */ margin-right: 159px; }
</style>


Способ всем известный, НО. ИЕ 5.5 после этого продолжает обрабатывать стили нижеследующих селекторов, как положено. А вот ИЕ 5.0 следующий за этим хаком селектор напрочь игнорирует! Поэтому, для того, чтобы он продолжил обрабатывать остальные стили, после хака вставляем любой селектор с пустыми значениями. И код выглядит следующим образом:

<style type="text/css">
div#cont { float: left; width: 685px; /* Здесь пишем значение для ИЕ < 6.0 */ voice-family: "\"}\""; voice-family:inherit; width: 100%; /* А здесь для всех остальных браузеров. */ }
.empty { } /* Пустой селектор, нужный исключительно для ИЕ 5.0 */
div#cont2 { /* Любой следующий селектор */ margin-right: 159px; }
</style>


А вот только что пришла в голову еще одна идея: ведь можно вставлять не пустой селектор, а как раз тот, который и нужно скрыть от ИЕ 5.0. Только нужно учесть, что в ИЕ 5.5 он будет обрабатываться.
vetka: (comp)
Только что столкнулась с неприятным глюком. Обнаружилось, что свежеустановленная система в упор не видит виртуальные хосты, размещенные на адресах начиная со 127.0.0.2 и выше. На 127.0.0.1 все хосты видятся нормально. Гугление сначала выдавало невразумительные советы типа поставить в свойствах оборзевателя галку «Никогда не использовать подключение к интернету», но все это было глобальное не то. В конце концов выяснилось, что виноват SP2, которого на предыдущей системе у меня не было. Мокрософтовцы перемудрили с секьюрностью, и запретили все loopback-адреса, кроме 127.0.0.1, никого не предупредив. Потом, видать, опомнились и выпустили патч. Патч (500 кб) качать отсюда. Более подробная информация здесь.

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

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

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

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

December 2015

S M T W T F S
  12345
6789101112
131415 16171819
20212223242526
2728293031  

Expand Cut Tags

No cut tags
Page generated Monday, 25 September 2017 20:20
Powered by Dreamwidth Studios