Monthly Archives: May 2017

Установяване на правилен локал на формите, създадени с Contact Form 7

от Гонзо
лиценз CC BY-NC-SA

Наскоро ми се наложи да правя сайт с WordPress на Иврит. За незапознатите с особеностите на близкоизточните езици ще напомня, че се пишат от дясно на ляво и нямат главни букви. Освен това чуждите думи, изписани на латиница (или друга писменост, която се пише от ляво на дясно), както и числа, изписани с арабски цифри, се пишат както си трябва – от ляво на дясно. WordPress поддържа достатъчно добре всякакви писмености и езици, правилната локализация също е важно условие за одобряване на темите в wordpress.org. Аз обаче се сблъсках с един проблем на разширението Contact Form 7, който не е очевиден, когато сайтът е на език, изписван от ляво на дясно. В случая с Иврит обаче, въпреки че всичко останало по сайт сменяше посоката на подравняване на текста и елементите, полетата във формата оставаха подравнени вляво. Бърз преглед на генерирания HTML показа наличието на атрибути lang и dir на елемента, който съдържа формата, за манипулиране на които атрибути няма настройка. Проблемът е, че в моя случай тези атрибути имаха стойности като за английски локал, което не само, че обръщаше подравняването на текста, но би имало неприятни последици и за потребителите на екранни четци – ако екранният четец превключи на друг език, това би било най-малкото доста объркващо.

След кратко търсене в сайта на разширението и в Гугъл намерих въпрос, зададен от потребител, използващ Contact Form 7 в многоезичен сайт на английски и арабски. Неговият проблем беше подобен на моя – формите на арабски си оставаха подравнени вляво. Отговорът за мен изглежда доста нелепо: локала на формата се установява на базата на локала на администрацията по време на създаване на формата и се наследява при клониране на формата. При условие, че често в многоезичните (а и не само) сайтове администраторите на сайта използват локал, различен от този на публичния сайт, и като имаме предвид, че новите версии на WordPress дават възможност в администрацията потребителите да избират локал, различен от основния локал на сайта, това поведение на Contact Form 7 има сериозни последствия върху достъпността на сайта. Проблемът може да се отрази не само на потребителите, използващи екранни четци, но и на всички останали – въпреки, че разширението блокира валидирането на формите в браузъра, това може да бъде отменено от други разширения, и тогава съобщенията на браузъра ще са на езика, установен от локала на формата, а не на езика на сайта.

Понеже не намерих конкретно решение на проблема, освен да си сменям езика в администрацията – това не беше решение в случая – се зарових в кода на разширението. И намерих точно каквото ми трябваше – кука за действие, чрез което могат да се манипулират свойствата на обекта, отговарящ за генерирането на формата, точно преди превръщането ѝ в HTML. Ето и кодът, който написах:

function gonzo_fix_cf7_locale( $cf7 ) {
  $cf7->set_locale( get_locale() );
}
add_action( 'wpcf7_contact_form', 'gonzo_fix_cf7_locale' );

Това, което правя е просто – пренаписвам локала на формата с основния локал на сайта. Решението е универсално и ще работи винаги, когато формата е на същия език като сайта.

WannaCry, Windows?

от Ясен Праматаров
лиценз CC BY

Години наред им казваш да не ползват Windows и всякакъв несвободен софтуер, а сега пищят от поредния вирус… ами как да кажа, не че съм доволен, но не ми е неприятно. Яд ме е само на хорската глупост.

Евровидение за овце

от Ясен Праматаров
лиценз CC BY

Май само аз не се вълнувам от “евровизия”. Хлъц и рев за някакво представление, в което никога не е имало достатъчно музика, но пък е “шоу” и прави някои хора “горди”. Подобно на световното по футбол – дъвка за народонаселението.

А като видя онази Армутлиева, която заедно с други корифеи на “авторските права” и “издатели” убиха навремето зараждащата се местна сцена, направо ми се повдига.

Намерете си по-смислено занимание и по-важни неща за впечатляване, а ако наистина искате музика – слушайте и ходете на концерти на местни неизвестни групи. Музика има, а това с телевизионното шоу е нещо друго.

Голов трилър в Еърдри за финал на сезона в Лига 1

от Куинс Парк България
лиценз CC BY-SA

Голът на Орси не стигна за победа в Еърдри. Сн. Queen’s Park Official Website

В един голов трилър на „Екселсиор“ отборът на „Куинс Парк“ не успя да победи „Еърдри“. Мачът беше своеобразен финал за място в плейофите за Чемпиъншип, като и двата тима имаха своите шансове при ред други обстоятелства, за да попаднат там. В крайна сметка домакините надхитриха своя съперник и спечелиха важния двубой с 3:2.

„Куинс Парк“ играха открито, създадоха доста положения в нападение и първи откриха резултата чрез Дарио Заната в 15 мин. Едва към края на полувремето „Еърдри“ намериха начин да противодействат и 41 минута изравниха след гол на Райън. Минута след почивката отново той покачи на 2:1, възползвайки се от ниската концентрация в защитата на „паяците“ в този момент. „Куинс“ обаче се хвърли напред и след 7 минути Калвин Орси възстанови равенството. Всичко обаче пропадна светкавично бързо, след като в ответната атака домакините отбелязаха 3-я си гол в мача. Макфърсън опита някои промени, но гол така и не падна докрая, като в заключителните секунди Брейди пропусна добра възможност за изравняване.

В крайна сметка „Еърдри“ подпечата мястото си в плейофите, а за „Куинс Парк“ остава утешението за много силното си представяне в Лига 1 и финиша на доброто 6-о място в крайното класиране, в своята юбилейна 150-а годишнина.

„Еърдриониънс“ – „Куинс Парк“ 3–2
0:1 Заната – 15′, 1:1 Райън – 41′, 2:1 Райън – 46′, 2:2 Орси – 53′, 3:2 Ръсел – 54′

„Куинс Парк“: 1. Мюър, 2. Къминс, 3. Уортън (67′), 4. Дохърти, 5. Макгийвър, 6. Маквей (76′), 7. Галт, 8. Брейди, 9. Орси (75′), 10. Заната, 11. Бърнс.
Рез.: 20. Стот, 12. Мортимър, 14. Браун (75′), 15. Фой, 16. Гибсън, 17. А. Милър (67′), 18. Макфърсън (76′).

Ст. „Екселсиор“, Еърдри, 1.011 зр.

Войник е професия

от Ясен Праматаров
лиценз CC BY

Задължителната казарма в мирно време учи само на три неща:

  1. скатаване, неработене,
  2. тютюнопушене,
  3. търпене на унижения.

Все неща, от които България има нужда, така ли?

И не, не учи на патриотизъм, приятелство, хигиена – заблудили са ви или изкривените ви спомени, ако сте ходили, или изкривените спомени на други хора, ако не сте.

Не ви учи и на нищо много повече за боравене с оръжие от разлика между “на ремък” и “за почест” и как непълно се разглобява стар автомат. А, и ако имате късмет – два-три пъти стрелби с по няколко патрона. Повече ще научите на стрелбища или на пейнтбол.

Задължителната обща мобилизация има смисъл само във военно време и то в отминали години, когато войната не е била толкова технологична. В мирно време и в наши дни общата задължителна казарма е пълна глупост и си е точно казармено извращение.

Но пък как звучи патриотично, нали… А, да, и печели министерски постове.