Архив рубрики: PHP

Statt zu schlafen

Учёт домашних доходов с расходами — сплошное расстройство. Теперь вот вместо того, чтоб спать, пытаюсь вспомнить, что же умею делать за деньги, потому что на одну зарплату прокормить семью вообще нереально.

Могу:

  • Программировать на Перле — как древние CGI-приложения, так и современные, с использованием фреймворков Mojolicious, Dancer, Catalyst.
  • Программировать на PHP: в основном допиливать существующие приложения, а не писать с нуля что-то большое.
  • Настраивать CMS Drupal и WordPress, а также дорабатывать их темы оформления.
  • Настраивать и дорабатывать Open Journal Systems, включая реализацию многоязычности имён — делал это в OJS 2.4.2, 2.4.7.1, 2.4.8.1, думаю, и в Open Conference Systems смогу реализовать.
  • Кроссбраузерно верстать веб-страницы.
  • Немножко программировать на Руби (в том числе, с использованием Ruby on Rails) — наверное, на юниорском уровне.
  • Немножко программировать на ЯваСкрипте — как голый JavaScript, так и с jQuery.
  • Постоянно внушать коллегам необходимость использования багтрекера и системы контроля версий.
  • (хоть и не считаю это основными профессиональными навыками) фотографировать, петь, аккомпанировать на шестиструнной гитаре, водить легковой автомобиль, быть Дедом Морозом, набирать ноты в MuseScore и LilyPond — медленно, но красиво.

1000 рублей

Хочу от 15 USD / 1 kRUB в час.


Statt zu schlafen (нем.) — вместо того, чтобы спать

Re: А воз и ныне там

Раз уж в третьем OJS так и не добавили многоязычность, попробую портировать свой хак на последнюю из версий второй ветки — 2.4.8.1. В прошлый раз, когда портировал из 2.4.2 на 2.4.7.1, обошёлся изменением не более, чем семидесяти трёх файлов, хотя если поискать все, где попадаются слова firstname, middlename, lastname, fullname и citation, получится почти в пять раз больше. И это ещё без учёта файлов с переводами */locale/*.xml

diff

Поглядим через неделю-другую, что получится.

MapBBCode — в вордпрессе

Для вставки использующих библиотеку Leaflet подвижных карт на сайт, работающий под управлением вордпресса, есть разные пути: можно, например, вставить нужный HTML-код прямо в текст страницы — оно будет работать (вот пример), но ковыряться в коде каждый раз, когда нужна карта — неудобно. Такой метод подойдёт лишь тогда, когда надо вставить одну карту и забыть о ней.

Если же карт много, можно воспользоваться монстрообразным плагином Leaflet Maps Marker — он многое умеет, но страшен. Меня пугает обилие кнопочек, ссылочек и призывов перейти на платную версию.

Нужен способ, позволяющий в удобном виде описывать карту и куда-нибудь эту карту вставлять. Питерский осмер Илья Зверев несколько дней назад написал библиотеку MapBBCode для встраивания карт на форумы. На форумах для форматирования текста часто используют команды разметки вида [tag]text[/tag], действующие аналогично тэгам языка HTML, основное их отличие, бросающееся в глаза — квадратные скобки вместо угловых. Подобный код используется и для описания карты в MapBBCode.

Такие же коды применяются и в вордпрессе — с их помощью можно, например, вставлять на страницы аудиозаписи, видеоролики, фотогалереи — подобная функциональность есть в могучем плагине Jetpack. Можно и карты вставлять — так сделано в уже упоминавшемся Leaflet Maps Marker.

Я попробовал минувшей ночью написать свой плагин — получилось. Теперь для того, чтоб вставить карту, достаточно написать

[map]55.16473,61.32601[/map]

вместо этого кода отобразится такая карта:

[map]55.16473,61.32601[/map]

Исходный код — https://github.com/shoorick/mapbb-wordpress, ZIP-архив — https://github.com/shoorick/mapbb-wordpress/archive/master.zip.

Без звёздочек

У Subversion (во всяком случае, у линуксовой версии 1.7) есть странная на первый взгяд особенность: свежедобавленные PHP-файлы при первом же коммите получают свойство svn:executable и становятся исполняемыми, что вовсе не требуется. Предполагая, что это не баг, а фича, заглянул в конфигурационный файл ~/.subversion/config — так и есть. Subversion может выставлять некоторые свойства свежедобавленным файлам. Такое поведение можно настроить. Во-первых, глобально включить — нужный параметр находится в секции [miscellany]:

### Set enable-auto-props to 'yes' to enable automatic properties
### for 'svn add' and 'svn import', it defaults to 'no'.
### Automatic properties are defined in the section 'auto-props'.
enable-auto-props = yes

Во-вторых, настроить, какие именно свойства надо установить:

### Section for configuring automatic properties.
[auto-props]
### The format of the entries is:
### file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?'). All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
# *.c = svn:eol-style=native
# *.cpp = svn:eol-style=native
# *.h = svn:eol-style=native
# *.dsp = svn:eol-style=CRLF
# *.dsw = svn:eol-style=CRLF
*.pl = svn:eol-style=native;svn:executable
*.pm = svn:eol-style=native
*.php = svn:eol-style=native

В моём случае и для перловых модулей, и для PHP-файлов среди свойств значилось svn:executable — убрал.