Из разряда «на заметку программисту». Есть такие вещи, о которых знаешь что они есть, но забываешь конкретную реализацию, когда доходит до использования. Именно так обстоит дело с тем, что описано в заголовке. Т.е. у нас есть переменная, где хранится имя свойства объекта, и нужно прочитать значение этого свойства. А возникает ситуация, когда нам нужно предварительно вычислить это имя свойства объекта, а потом уже к нему обратиться.
Все записи категории ‘PHP’
Эта задача из разряда useability. Drupal может штатно создавать блоки вертикальных иерархических меню.
Неудобным будет тот случай, когда мы хотим попасть на страницу в глубине иерархии этого меню. Нам придется последовательно заходить на родительские страницы, пока мы не достигнем нужной нам вложенной публикации. А это и нагрузка на сервер и ожидание пользователя загрузки каждой очередной страницы (а они ох как не любят ждать).
Можно, конечно, сделать какие то ветки меню всегда раскрытыми (expanded). Это подойдет для ряда случаев, когда пунктов меню не очень много (20-30). Если же речь идет о каталоге товаров, то раскрывать сразу всю портянку будет не разумно. А с закрытыми (collapsed) подменю Drupal обходится так, что просто их не выводит в шаблон (раз их не видно), пока они свернуты, и вы не активизировали соответствующий пункт меню.
Есть несколько задач, связанных с конвертацией документов в PDF. Меня интересует перевод из HTML и создание PDF средствами PHP.
Обычно задача возникает, когда мы исследуем скриптом html страничку, и нам нужно получить, используя её абсолютный адрес, адреса страниц на которые она ссылается. Для этого к текущему абсолютному адресу страницы, надо «добавлять» адреса других страниц. Эти адреса могут быть абсолютным или относительным, канонизированными и нет и т.д.
Сформулируем задачу. Нужно вывести 3 (а в общем случае N) анонсов новостей, с картинкой, в шаблоне на главной странице сайта. Этот кусочек должен выглядеть примерно вот так:
Самое не приятное, с чем можно встретиться на многих сайтах — это регистрация учетной записи. Неприятное ощущение усиливается ещё и от контраста — везде написано — как мы рады вас видеть, подписываетесь, голосуйте, покупайте и т.п. И вот вы решаете как то поучаствовать в проекте и жмете кнопку «регистрация». Вот тут, обычно, для пользователя начинается самое не приятное.
О сути метода я рассказываю здесь — Бегство от спама.
Для работы понадобится hook на новые комментарии — pre_comment_approved, который мы объявим в файле темы — function.php. Если в вашей теме нет такого файла — создайте :). Нужно модифицировать всего два файла в папке темы.
Да, представьте себе, у этой «пижни» есть свой API! Раньше им пользоваться было намного проще, не было этих наворотов с OAuth. Не смотря на мое личное отношение к Twitter, появилась задача озвученная в заголовке. Но так как публиковать ничего длиннее 140 симв там нельзя, то, понятно, речь идет не о полноценных публикациях, а об анонсах.
Встречались, наверное, с этой задачей — когда из статьи надо вырезать небольшой (а чаще всего, известной длины) кусочек, чтобы сформировать «тизер» или аннотацию. Наиболее правильный подход — предусмотреть для каждого вида аннотации (если статья может быть представлена в разных видах аннотаций, отличающихся, к примеру, длинной) — аннотацию, составленную вручную. Работы для редактора, конечно, прибавится, но и текстовых повторов будет меньше и пользователям будет приятнее.
Но отвлечемся от идеального случая, т.к. на практике аннотацией обычно служит первый параграф статьи. Читать далее »
Простому пользователю от пароля хочется двух вещей — надежности и легкости запоминания.
В случае произвольно создаваемых паролей, желаемая надежность достигается очень легко (увеличили длину генерируемого пароля или расширили набор символов, из которого он генерируется). Но запомнить такой пароль очень сложно. Во-первых, сочетание произвольных букв и цифр получается не читаемым для членораздельного произношения. Во-вторых, цифры, буквы, их регистры — все это перемешано в одной куче и, конечно же создавая нужную надежность, никак не помогают их запомнить своему владельцу.