вторник, 1 декабря 2015 г.

«Чайка». Фильм Фонда борьбы с коррупцией.

четверг, 11 июня 2015 г.

Up and Running with NoSQL Databases

Up and Running with NoSQL Databases
Up and Running with NoSQL Databases

Up and Running with NoSQL Databases. Слишком просто для начала работы, но кое-какие понятия оставит. Мне нужно за 4 дня подготовиться для трудоустройства. Нелегкое это дело. Но составляющие процесса знакомы мне неплохо. JSON я использую уже давно. Работа с ним не представляет особых проблем. Лектор приводит несколько несиквельных баз, но показывает всё в couchdb. Я поставил и попробовал, но файлы баз этапов-примеров у меня не загрузились. Менял и разрешения, но не помогло. Видимо, разные версии. В принципе. файлы упражнений и не нужны, если что.


Переход с курения табака на вдыхание водяного пара электронных сигарет очень мне помогло. очистились легкие. Во время утренней пробежки дыхание уже не напрягается. Одышки нет вообще. Устают ноги только. При условии покупки хороших жидкостей без ароматизаторов курение электронных сигарет — нормальная и полезная помощь курильщику со стажем. Долой эмфизему и закупорку сосудов. Перехожу к MongoDB и Node.js, посокльку это и есть условие трудоустройства. Все проекты стали вдруг высоконагруженными, а делать сайты стало слишком легко для получение приличной зарплаты. Поэтому нужно быть на острие новизны. Поехали.



Up and Running with NoSQL Databases

вторник, 26 мая 2015 г.

iPad Tips and Tricks

iPad Tips and Tricks
iPad Tips and Tricks

Погода устанавливается. Уже тепло с переходом в душно. Скоро будет жара. Мозг отдыхает и, чтобы не заплыть жиром, я просматриваю всякие увесилительные лекции. Очередная оказалась про использование планшета яблочной фирмы. Про то, как нам оттуда навязывают анальное рабство, говорить не буду. Толком ничего интересного из этого курса я не почерпнул. Так, пару жестов и вставку точки двумя нажатиями пробела. Никакого айтюнз я не использую. Строго imobiledevices+fuse, iFile на джейлбрейкнутом аппарате. Получается интеллектуальная флэшка, умеющая показывать сериалы и проигрывать музыку. Все сервисы работают, мессенджеры, получение почты. Покупать я ничего не собираюсь, поскольку денег лишних у меня нет. Халявщик я. Безработный в данный момент, но работа тоже достатка не прибавляет. Устройство очень удачное, батарейка приличная, 64 гига вполне хватает. Экран отличный, не помню, чтобы айпад завис или перестал реагировать. Рекомендую всем, но лучше купить пользованный со скидкой в США. Я так и не понял, зачем нужны новые.



iPad Tips and Tricks

понедельник, 25 мая 2015 г.

Up and Running with reddit

Up and Running with reddit
Up and Running with reddit

Пользуюсь реддитом уже больше года. Это, конечно, удивительный сервис. 40 миллионов пользователей. Структурированная информация. Свежайшая. Анонимные пользователи, никем особо не модерируемые. Богатство мнений на любые темы. Супер. Учитывая аудиторию, наиболее продвинутый и смотрящий в будущее контингент населения этой планеты.


Курс особо ничему меня не научил. Реддит — не сложное приложение. Много понятно интуитивно. Но подписки и сохраненный контент я не знал. Теперь воспользуюсь. Ищите, да обрящете, как говорилось в одной великой книге.


Продолжаю парить основой для изготовления жидкостей для электронных сигарет. Не курю табак полгода. Легкие продолжают очищаться. Не знаю, как это отражается на мозге, но мышление стало яснее. Вернулась память. Исчезла одышка. Не совсем, конечно, победа, но пасленышу в моем лице нанесен удар. А также миллиардным прибылям табачных компаний.



Up and Running with reddit

суббота, 23 мая 2015 г.

Total Training WordPress Mastery

Total Training - WordPress Mastery
Total Training – WordPress Mastery

Total Training WordPress Mastery — неплохой курс для совсем еще начинающих. Мне не пригодился. Всё это я уже давно знаю и применяю на автоматизме. Есть один недостаток у Total Training и InfiniteSkills — лекторы (инструкторы) говорят с плохой дикцией. Стремясь быть поближе к аудитории, некоторые скатываются уже до акцентов и говорков. Мне, понимающему и лондонский кокни и техасский диалект рейнджеров, всё понятно и знакомо. Но я сомневаюсь, что человек, закончивший курсы ИДавыдовой хоть что-нибудь поймет из сказанного. Посмотрит картинки и забудет через пару дней. Жаль.


В целом же всё нормально и американцам смотреть можно. Правда, версия вордпресса ниже третьей. Но основы есть основы. Если ничего из видео на вашем компьютере нет, то и это сгодится. Умение вести блог, то есть упорядоченные по дате записи, похоже, становится базовым. Что происходит на земле мы узнаем из новостей. Желания ходить по земле с этими новостями все меньше и меньше. Уход в виртуальную реальность — путь к сохранению головы и мозга. А если получится электронная коммерция, то можно неплохо таскать угли из этого очага и видеть реальность в крайнем случае из окна автомобиля.


Мысль, конечно, спорная. Но, как я пытаюсь донести моему приятелю, получившему визу в Штаты, там уже именно так. Обуревшие латиносы и черные контролируют целые районы. Полиция туда предпочитает не соваться и ничего не расследовать. Если полиция пересекается с обитателями этих гетто, то обязательно кого-нибудь убивает. После этого возникают райоты и по первой программе говорят о революции в Америке. Заканчивается всё разграблением магазинов и поджогом машин. Нормальные люди ничего этого не видят, проезжая по хайвею в машине с кондиционером.


Чего и вам желаю.


P.S. Вчера получил 4 бутыли с жидкостью для электронных сигарет. 12мг и 6 мг активного вещества никотин. Начинал с 18мг. Снижаю очень плавно. Полгода уже. Здоровье немного подтянулось. Пропало желание пить алкоголь. Прочистились мозги. Плюс ощутимая экономия, до 90% я сохранил.



Total Training WordPress Mastery

пятница, 22 мая 2015 г.

YouTube Essential Training

YouTube Essential Training
YouTube Essential Training

Просто для устранения недопонимания просмотрел с утра короткий этот курс. В принципе, YouTube Essential Training — неплохое введение в распространение всякого мусорного видео. Много внимания уделяется созданию и редактированию видео, но ничего не даст человеку незнакомому с процессом. так, галопом по Европам. Как это иожно было сделать иначе — не знаю. Мне понравилось и пригодится только вставка аннотаций, которые представляют собой просто html-текст.


Новые медиа и социальные сети в Интернете давно уже работают. Как обойтись без этого безработному фрилансеру? Все остальные бизнесы отняли торговые сети, места на ранках и в проходимых торговых центрах или стоят бешенных денег, или просто заняты навсегда. Остается только проталкивать свое гуано в массы, авось кто откликнется и даст пару центов.


Следом у Lynda идут курсы по монетизации. Это может быть интереснее немного. По копеечке наберется рубль. Может.



YouTube Essential Training

четверг, 21 мая 2015 г.

SteamOS for Developers First Look

SteamOS for Developers First Look
SteamOS for Developers First Look

Для искоренения безграмотности просмотрел этот вводный курс в игровую индустрию и продажу всего и вся. SteamOS for Developers First Look — неплохое руководство к действию. Продается там все, что можно представить. Правда, только 25% идет создателю. Аудитория составляет 75 миллионов сумасшедших геймеров, то есть, решайте сами. Деньги пока не отменили, пейпал с властями подружился (забанили антиправительственные фонды). Если не обращать внимание на общественно-политическую жизнь и подковаться по игровым и 3D дисциплинам, то вполне можно неплохо зарабатывать сидя дома. Экономить на проезде и износе сапог. А также сберечь мозги от разговоров с коллегами.


Следом предлагают пройти курс по Unity, поскольку поддерживает разработу игр для Линукса. Задумка эта заменяет собой консоль, но выигрывает по фичам у больших собратьев. Сони и Микрософт такого у себя не разрешают. Может быть, пока. Курс в архив. Как появится время и случится апгрейд мозга, может быть вернусь к этому вопросу. Пока заканчиваю курс по Убунту, о чём сообщу. Вот, к чему приводит отказ от алкоголя и курения табака, этого пасленыша, отравившего жизнь миллионам людей. Глицерин + вода = электронная сигарета. Испарять пар без копоти можно в любом месте. Правда, в предбаннике поликлиники меня забанили. Сказали, что не видят никакой разницы. Простим им невежество и затянемся. Нажму на кнопочку и выпущу пар. Электронная сигарета рулит.



SteamOS for Developers First Look

четверг, 14 мая 2015 г.

Завершено: VTC Wordpress 3.5

Просто, чтобы подчистить и убрать в архив. Практически ничего нового для меня в VTC WordPress не обнаружилось. Кроме, пожалуй, промоушена очередных плагинов. Именно так, как инструктор. я всё и делаю. Ну что ж, для начинающих и это пойдет. Правда, голос хриплый и плохо знающим язык глотание звуков будет запретительным фактором, к сожалению. У Lynda такой курс сделан более качественно. Этнический норвежец (или кто он там,  в Канаде) читает более внятно. Всем советую смотреть именно его. Приступаю к созданию дочерних тем в WordPress, а сам подымливаю электронной сигаретой. Пришла пора покупать батарейный мод. Это блок питания для электронной сигареты, у которого можно достать аккумулятор и зарядить в зарядном устройстве. Там и емкость элемента побольше, и есть регулятор напряжения для катушек, намотанных самостоятельно. Никотин снижаю, начал с 18-16, перехожу на 10-12. Не курю табак и сигареты уже полгода. Полет нормальный. Легие очистились.



Завершено: VTC Wordpress 3.5

воскресенье, 10 мая 2015 г.

Кино, потерянное искусство: Теорема ЗероТеорема Зеро. Чистейшей воды Кибер...

Кино, потерянное искусство: Теорема Зеро



Теорема Зеро. Чистейшей воды Кибер...
: Теорема Зеро Теорема Зеро. Чистейшей воды Киберпанк. Высокое техническое развитие сожительствует с полным социальным упадком. ...

суббота, 9 мая 2015 г.

Электроснабжение:  Продолжаю ликвидировать свою неграмотность.  Дела...

Электроснабжение:  Продолжаю ликвидировать свою неграмотность.  Дела...:  Продолжаю ликвидировать свою неграмотность.  Делаю первые шаги для восстановления легендарного катушечного магнитофона высшего класса Олим...

Прошел весь Lynda Wordpress Essential Training


По сути, я — человек неграмотный. Хоть и знаю прилично (как переводчик) английский язык и иногда выполняю задания на фрилансе за деньги. Тут и там у меня пробелы и, что называется, обучение тыком, то есть по интуиции. Мой опыт обучения в Университете говорил мне, что это — неверный путь и надо учиться фундаментально. Вот я и решил. Не буду говорить, где взял, считайте, что купил.


Lynda WordPress Essential Training — прекрасный курс. Визуально всё понятно и инструктор, этот норвежец, живущий в Канаде — отличный. Не мямлит, как другие и рассказывает с хорошим, незнакомым мне акцентом. Просмотрел, большую часть, конечно, знал уже. Ведь программировал WordPress неоднократно. Добавил по его совету фиды в список, чтобы пост пинговал сборщиков. Не знаю, как оно влияет на продвижение. Думаю, хуже не будет.


Мне необходимо срочно ликвидировать безграмотность. На очереди Gimp, Inkscape, jQuery, Bootstrap. Это для верстки и производства сайтов. Остальные планы пока раскрывать не буду. Всё впереди. Я не пью спиртное несколько месяцев, не курю табак. Только попыхиваю электронной сигаретой. Катушку или спираль перемотал проводом, который мне дал бывший коллега по работе. Не заню, получится ли здесь магазин, но создав блог на WordPress и самостоятельно его изготавливая, я хоть чему-то научился кроме изготовления своих компонентов для Битрикса и Джумлы.



Прошел весь Lynda Wordpress Essential Training

пятница, 1 мая 2015 г.

Кино, потерянное искусство: Люди Икс: Дни минувшего будущегоЛюди Х, отличн...

Кино, потерянное искусство: Люди Икс: Дни минувшего будущего



Люди Х, отличн...
: Люди Икс: Дни минувшего будущего Люди Х, отличная идея, отличный комикс. Я, как и многие мои сверстники, выросли на мультсер...

Кино, потерянное искусство: RelatossalvajesВ русском переводе "Дикие истор...

Кино, потерянное искусство: Relatossalvajes



В русском переводе "Дикие истор...
: Relatos salvajes В русском переводе "Дикие истории". Аргентинская картина, руку к которой приложил никто иной, как са...

четверг, 16 апреля 2015 г.

Кино, потерянное искусство: "Небо и земля"("Heaven & Earth",1993 года) пре...

Кино, потерянное искусство:



"Небо и земля"("Heaven & Earth",1993 года) пре...
: "Небо и земля"("Heaven & Earth", 1993 года) превосходная картина. Давно я не смотрел ничего подобного, чт...

jQuery Идем дальше.

Иногда лучше увидеть, чем услышать. Качнул Lynda jQuery for designers. Чем интересны такие видео, это возможностью подглядеть иногда трюки и приемы работы профессионалов. Или инструкторов, которые готовят настощих программистов. Я же не настоящий, недоучился, работал бухгалтером, таксистом и тд.

И вот, подсмотрел.

Чтобы можно было грузить jQuery из cdn(если уже есть в кэше браузера, что 99% так и есть, то грузить ничего не будет) или подгрузить с нашего сайта(точно будет грузить как в первый раз), есть вот такой удобный способ.



<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="jquery.min.js"><\/script>')</script>

Такой вот удобный фолбэк. Точно воспользуюсь и занесу его в сниппеты.

Чтобы избежать конфликтов со всякими там mootools, можно сделать так.



jQuery(document).ready( function($)

Тогда дальше можно писать $ без проблем. А я раньше писал везде JQuery, болван.

Как проверить, загрузился ли jQuery?

Поможет консоль. Просто колотим туда $ — покажет определен ли этот объект, для уверенности JQuery — если показывает функцию — всё ОК. Так просто. Ну почему я не читаю учебников?

Консоль поможет также и лицезреть плоды селекта. Ежели ввести $(») что вы там выбрали и нажать enter — то всё и выведет. Ну надо же. До этого я знал только про отладку с breakpoints. Ну что ж, надо смотреть дальше и пересмотреть, в конце концов, всё. Кстати, чел продал галерею на jQuery 2000 раз по 16 долларов за 2 года. То есть, заработал на однокомнатную квартиру в пригороде Москвы. Вы можете дальше не смотреть, а я продолжу. При этом продолжаю парить приятным парком электронной сигареты, которая помогла мне бросить курить табачные изделия.

Инструктор ставит в начале каждого скрипта «use strict»; Как я понял, это отключает совместимость с нестандартными версиями браузеров из Редмонда.

Прошел первый уровень вот здесь. Нормально, внятно, с тестами. Обычно качаю всё по теме и всё читаю. так делал в университете и продолжаю. Прояснил, что #id el — выделение ВСЕХ потомков, а #id > el только прямых детей. По капле нужно выдавливать из себя раба. В моем возрасте необходимо заниматься обучением. Умственная работа не позволяет мозгу заплыть жиром или одеревенеть. Английский я знаю(хватает для чтения художественной литературы и просмотра кино), может японский начать? раскурю электронную сигарету, пожалуй. Пар развяжет язык.



jQuery Идем дальше.

jQuery Ликвидация неграмотности.

Так сложилось, что я стал писать плагины и модули к разным CMS на лету, не совсем отдавая себе отчет, что же я компилирую из разных источников. Потерял много времени, работая в такси, системным администратором и тд. jQuery пользуюсь уже давно, но на фрилансе столкнулся с сложными заданиями. И, что называется, «поплыл». Скачал массу литературы, поскольку безработный и время есть.

Итак с чего начинается jQuery. Начинается оно с селекторов и маршрутов по объектной модели браузера. Selectors. DOM traversing. Советую изучить тему подробнее, поскольку это — основа. Написали авторы много и подробно. Что можно селектить? А селектить можно теги(и атрибуты), классы css и id css. Дальше нужно иметь понятие о parent, child, sibling и descendant. От этих основных действий и пляшем.

Начинать лучше с охватывания всего скрипта условием частичной загрузки страницы —



$(document).ready( function()
);

Не могу пока представить, что можно делать, если не загрузился документ, поэтому теперь буду ставить всегда. Почему частичной? Вроде как window.onload() грузит вообще всё, включая картинки. Нам это не всегда интересно(точнее — никогда). Поэтому, в 99% хватит jQuery.

Выбираем детей, строго, не всех потомков.



$('#selected > li');

Выбираем то же самое, но не такого-то класса.



$('#selected li:not(.our-class)');

Выбираем по атрибуту. Можно проверить по регулярному выражению(конец, начало. входимость(*=)).



$('a[href^=mailto]').addClass('mailto');
$('a[href$=".pdf"]').addClass('pdflink');

Выбрать все ссылки с атрибутом href.



$('a[href]');

Выбирая коллекции объектов селекторами, помним, что цикл по всем для нас выполняет сам jQuery. Если селектор встретится еще, то лучше его занести в переменную и пользоваться переменной, так сэкономится время и ресурсы. А методы можно объединять в цепочку, если метод возвращает jQuery. Эту информацию можно подсмотреть в документации по API.

Выбираем n-й элемент коллекции(считаются от нуля, как массивы, но являются объектами с методами и свойствами).



$('div.our-class:eq(1)');

Выбираем дивы, которые являются первыми ребенками своих родителей.



$('div:nth-child(1)');

Индикатор показывает зеленый свет, то есть норму слов я набрал для нормального поста. Надо проштудировать более 20 книг известных издательств. Скачал бесплатно попаривая электронную сигарету без ароматизатора. Не курю уже 5 месяцев. Прощай, анальное рабство табачных компаний. Здравствуй, технокиберпанк.



jQuery Ликвидация неграмотности.

суббота, 28 марта 2015 г.

Joomla. Курс контент-менеджера ч.1

Почему и зачем Joomla


Время нынче тяжелое. Случилось так, что мои близкие и друзья кто не работает, а кто устал от ежедневной работы за копейки. Я и сам устал от ежедневного стояния в пробках. К тому же эксплуатация автомобиля не выдерживает такой зарплаты. Пришла пора сидеть дома и работать, простите за банальность, по интернету. Я — программист, но мои друзья ими не являются. Поэтому я собрался обучить их профессии контент-менеджера. То есть, буду публиковать для них уроки по разным системам управления контентом(CMS). Будем делать примерный сайт про общестов любителей смешных картинок. Прошу не кидаться помидорами. Интернету я ничего не обязан, обязан только моим друзьям. Обязан за их заботу и за терпение, с которым они сносят мои выходки.

Итак, приступим.


Установка Joomla


Джумлу мы все поставили. Не без проблем, оказалось. Джумла 3 работает только на php 5.5, плюс для установки надо поменять в файле sql-скрипта joomla.sql «ENGINE=InnoDB» на «ENGINE=MyIsam», иначе на новом xammp’е не развернется база Джумлы. Будем считать, что Джумла установилась и вы не установили демо-данные. Если всё-таки установили, то не проблема переставить. Итак, Джумла должна иметь у вас первоначальный пустой вид.


Первый взгляд


В публичной части страница сайта разделяется на области. Заголовок, контент(содержание), меню, футер(низ страницы). Если присмотреться к разным сайтам, то почти у всех именно так. Так проще систематизировать информацию для разных позиций(на странице позиция — место размещения блока). Где-то вот так это выглядит, как пример.
joomla базовый лейаут

Меню и боковые колонки называют модулями. В базе Джумлы хранятся имена модулей и позиции, в которых их необходимо показывать.

Джумла состоит из публичной части(фронт-энд) и админки(бэк-энд). Переход в админку осуществляется добавлением к строке браузера /administrator. Возникнет форма логина и пароля. Ввести нужно те данные, которые использовались при установке.

К следующему разу нужно научиться заходить на локальную Джумлу и в админку. Уяснить, что у джумлы есть позиции на странице. Пока хватит, а то голова уже болит.



Joomla. Курс контент-менеджера ч.1

суббота, 21 марта 2015 г.

Электроснабжение:  Ликвидация белых пятен в образовании. Начнем с ба...

Электроснабжение:  Ликвидация белых пятен в образовании. Начнем с ба...:  Ликвидация белых пятен в образовании. Начнем с базисных определений.  Электрический ток - это упорядоченное движение заряженных частиц...

понедельник, 9 марта 2015 г.

Эмуляция мобильных устройств в Google Chrome

Совместимость со всевозможными мобильными телефонами и планшетами последнее время преследует меня по пятам. Несколько раз уже приходилось переделывать готовые проекты, поскольку заказчик решил посмотреть свой сайт на подвернувшимся ему некстати планшетом. Отсюда моя заинтересованность в bootstrap и 960grid. Как выяснилось, в Хроме в режиме разработчика есть волшебная кнопочка.(Или CTRL-Shift-M для ускоренных).
mobile development on google chrome

Что можно эмулировать и видеть:


  1. проверять responsive на всевозможных разрешениях, ландшафтном и портретном режимах, включая Retina

  2. смотреть, как приложение работает в сети

  3. смотреть, как работают media queries

  4. эмулировать события touch, geolocation и ориентацию устройства

  5. совмещать всё вышеперечисленное с режимом разработчика

Для Ретины ставим Device pixel ratio в 2, для всех остальных — 1.


Что может встретиться для Ретины в сети — @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) … , image-set, srcset в картинках, свойство window.devicePixelRatio.


Сохранение пресета выполняется при нажатии кнопки в правом верхнем углу.

Шорткат — Esc


Эмуляция различных сетей осуществляется в меню выбора сети. Проблем не вызывает, всё понятно.


Просмотр в прямом эфире media queries — вот эта кнопка.
media queries

Экраны от максимального до минимального помечены разными цветами.

Правый клик по полоске открывает правило в css.


Удобнее пока ничего не видел. Идем дальше.


Можно смотреть и в режиме print. Тоже полезно.


Дальше идут сенсоры и геолокация. Так далеко я пока не зашел, не было заданий. Разобраться там несложно тоже.


Поддерживаются события touchstart, touchmove и touchend.


С шифтом эмулируется pinch. Надо проверить, что это такое, я туповат.


Много еще чего эмулируется и можно всё это проверить с сайтами html5rocks, html5demos. У меня лично сползла крыша от новых фич и я угасаю. Пока займусь версткой и гридами. Много воды утекло с тех пор, как я начал верстать дивами, но, похоже, теперь надо верстать гридами уже. И пользовать мобильный эмулятор от Гугла.



Эмуляция мобильных устройств в Google Chrome

воскресенье, 8 марта 2015 г.

Bootstrap: Как добавить к Storefront




Включаем Bootstrap в посте


В стандартной теме woocommerce Storefront мне менять ничего не хотелось, но всякие кнопочки и элементы форм bootstrap, иконки, применить хотелось.

Уж очент там всё привлекательно и на моих устройствах хорошо выглядит.



Стили в body


Да, почему бы нет? Немного не правильно, поскольку там, снизу в подвале может всё переназначиться, но чем чёрт не шутит? Поставлю-ка я включение стилей вначале поста и скрипт бутстрапа в конце. И посмотрим.





На телефоне по-другому


будет выглядеть, поскольку колонки переопределяются. Работает!



По моему, работает нормально


Но хотелось бы просмотреть все элементы. да и сверстать что-нибудь. При этом пользоваться уже Gimp’ом и Inkscape для дизайна и нарезки. А шаблон перерисовать, позаимствовав у мастеров. Что поделать, миром правит посредственность. Я — не исключение. Рисовать не умею и своего вкуса нет. В наше время каждый имеет право лепить, что хочет. Постомодернизм — никто никому ничего. И смешение стилей с полным отсутствием смысла.



Зачем бутстрап? Всё очень просто. Идеология mobile first, мало по малу, завоевывает место в умах заказчиков. Телефоны и планшеты становятся полноправными участниками user experience. Что тут поделаешь? Надо верстать и для них, или преимущественно для них, уж и не знаю. К тому же, я — не художник, а плагиатор. Мне нужно быстро создать кнопку, например или селект. Не заморачиваться со стилями. Дальше в бутстрапе еще интереснее. Всякие вертелочки. Пока могу сказать, что grid и заголовки — работают. Идем дальше. А пока я посмотрю матчи последнего тура США по баскетболу, проще говоря — NBA. 8 марта, можно и отдохнуть. Водку я не пью, бросил. Софт я использую строго GNU или бесплатный. Поддерживать корпорации не хочу. Хотя капитализм мне ближе. Он лучше оплачивает труд, справедливее. Тимофей Мозгов вот, например, получает миллионы в год за игру. Сколько бы он получал в своем родном городе? Я знал одного баскетболиста. Баскетбол он бросил, жизнь прожил весело. Умер от цирроза печени. А если бы играл и эмигрировал? Много вопросов в связи с бутстрапом. Многослойная тема. Продолжим скоро верстку с бутстрапом.



Bootstrap: Как добавить к Storefront

понедельник, 23 февраля 2015 г.

Прекрасный гол Los Angeles King vs San Jose Sharks

Прекрасный гол Los Angeles King vs San Jose Sharks


Про первый гол я уже где-то написал. Красавец, с длинной дистанции. Сейчас таких мало. Оборона не дремлет. На скрине слева готовится пробить товарищ. Матч супернапряженный. Впечатляют размеры стадиона. 
Везде пишу, что работаю только средствами GNU-программ. Чего и вам желаю.
Голова забита картинками зомби с антимайдана. Только виртуальность. Спасительная. Будем смотреть спорт и фантастическое кино. Всем привет. Сомневаюсь, правда, что кто-то читает.

пятница, 20 февраля 2015 г.

Devil against Exorcist

Как добавить поле к форме регистрации и профилю пользователя Wordpress woocommerce

добавить поле к форме регистрации woocommerce wordpress


Задача стоит такая: Предложить новому пользователю выбрать, физическое он лицо или юридическое и добавить поле к форме регистрации woocommerce wordpress. Если юридическое, то попросить у него название компании и все реквизиты. Потом к юридическому лицу применяются скидки на разные виды опта. Или не применяются. В WordPress есть hooks, то есть «крючки» или «зацепки». А проще это объяснить, если понять, что страница wordpress формируется сначала в буфере, поэтому возможны операции уже с готовой страницей, но еще не отданной по http. Вот туда и вставляются результаты работы функций, вызываемых с помощью hooks. add_action и add_filter — синонимы. Это как-то туманно, но надо запомнить и всё. Итак, добавляем поле выбора юридического статуса к форме регистрации.

add_action( 'woocommerce_register_form', 'abc_show_person_or_company' );

show_person_or_company — мне нравятся говорящие названия. woocommerce_register_form — hook, событие после отрисовки основных данных формы регистрации, типа. Ну и функция, которая будет вызываться.

function abc_show_person_or_company()
 echo "<p class=\"form-row form-row-wide\"><select class=\"input-text\" name=\"person_or_company\" id=\"person_or_company\">";
 echo "<option value=\"_person\" ";
 if($_POST['person_or_company'] == '_person') echo "selected=\"selected\"";
 echo ">Физическое лицо</option>";
 echo "<option value=\"_company\" ";
if($_POST['person_or_company'] == '_company') echo "selected=\"selected\"";
 echo ">Юридическое лицо</option>";
 echo "</select></p>";?>
 <script> 
 jQuery( "#person_or_company" ).change(function() 
 switch (jQuery( "select#person_or_company" ).val()) 
 case '_person':
 jQuery( "p#_company_name_p" ).css( "display", "none");
 break
 case '_company':
 jQuery( "p#_company_name_p" ).css( "display", "block"); 
 break);
 </script> 
 <?php
 echo "<p id=\"_company_name_p\" class=\"form-row form-row-wide\" style=\"display: none;\">" .
 "<label for=\"_company_name\">Название компании<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_company_name\" " .
 "id=\"_company_name\" value=\""; 
 if ( ! empty( $_POST['_company_name'] ) ) echo esc_attr( $_POST['_company_name'] );
 echo "\">";
echo "<label for=\"_inn\">ИНН<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_inn\" " .
 "id=\"_inn\" value=\""; 
 if ( ! empty( $_POST['_inn'] ) ) echo esc_attr( $_POST['_inn'] );
 echo "\">";
 echo "<label for=\"_kpp\">КПП<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_kpp\" " .
 "id=\"_kpp\" value=\""; 
 if ( ! empty( $_POST['_kpp'] ) ) echo esc_attr( $_POST['_kpp'] );
 echo "\">";
 echo "<label for=\"_rschet\">Р\счет<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_rschet\" " .
 "id=\"_rschet\" value=\""; 
 if ( ! empty( $_POST['_rschet'] ) ) echo esc_attr( $_POST['_rschet'] );
 echo "\">"; 
 echo "<label for=\"_bik\">БИК<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_bik\" " .
 "id=\"_bik\" value=\""; 
 if ( ! empty( $_POST['_bik'] ) ) echo esc_attr( $_POST['_bik'] );
 echo "\">";
echo "<label for=\"_korschet\">К\счет<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_korschet\" " .
 "id=\"_korschet\" value=\""; 
 if ( ! empty( $_POST['_korschet'] ) ) echo esc_attr( $_POST['_korschet'] );
 echo "\">";
echo "<label for=\"_bank_name\">Название банка<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_bank_name\" " .
 "id=\"_bank_name\" value=\""; 
 if ( ! empty( $_POST['_bank_name'] ) ) echo esc_attr( $_POST['_bank_name'] );
 echo "\">";
echo "<label for=\"_jur_address\">Юридический адрес<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_jur_address\" " .
 "id=\"_jur_address\" value=\""; 
 if ( ! empty( $_POST['_jur_address'] ) ) echo esc_attr( $_POST['_jur_address'] );
 echo "\">";
echo "<label for=\"_telephon\">Телефон<span class=\"required\">*</span></label>" .
 "<input type=\"text\" class=\"input-text\" name=\"_telephon\" " .
 "id=\"_telephon\" value=\""; 
 if ( ! empty( $_POST['_telephon'] ) ) echo esc_attr( $_POST['_telephon'] );
 echo "\">";
 echo "</p>";

У физических лиц нет названия компании, а у юридических — необходимое условие, как и все остальные реквизиты. Как ни странно, работает. Дальше расскажу(сам себе), как эти поля проверить и сохранить в базе.

Перед обработкой нужно проверить, ввел ли корпоративный пользователь свои реквизиты. Лично я считаю, что покупка и расчет должны осуществляться в один-два клика, но заказчик считает так, как он считает.

Поэтому добавляем туда же, то есть в functions выбранного шаблона, хук и проверку полей.

add_action('woocommerce_registration_errors', '_registration_errors_validation', 10,3);

И сама функция.

function _registration_errors_validation($reg_errors, $sanitized_user_login, $user_email) 
  global $woocommerce;
 
  extract($_POST); // extracting $_POST into separate variables
 //print_r($_company_name);
  if($person_or_company == '_company' ) 
  return $reg_errors;

Дальше немного сложнее, поскольку заказчик решил изменить стандартный ход регистрации. Пост набрал 300 слов, поэтому пока достаточно.

Поставим плагин, поскольку с ним удобнее. И немного его поправим, чтобы сохранить все наши поля. Всем привет, если кто читал, в чем я сомневаюсь.


Как добавить поле к форме регистрации и профилю пользователя Wordpress woocommerce

вторник, 17 февраля 2015 г.

Test

Test

Test Post from Просто пар

Test Post from Просто пар http://prostopar.ru