beliy_snow: Блог

Главные вкладки

SMSCoin, #ahah и многое другое

24 августа 2009 в 13:12

Итак, настал момент, когда вы твердо решили монетизировать свой проект и выбрали для этого простой и легкий (на первый взгляд) способ - СМС. Допустим, ваш выбор пал на сайт SMSCoin и одну из его услуг - смс:ключ. Рассмотрим во всех деталях порядок действий, подводные камни и возможные решения.

Проблема с формами. Хак функции ядра.

3 июня 2008 в 19:47

Не могу понять откуда, но при рендере формы вылазит варнинг. При чем варнинг вылазит только при первом рендере формы, при нажатии на F5 ошибка не появляется. Откуда ноги растут? Варнинг следующий:
warning: implode() [function.implode]: Bad arguments. in viagra.com\includes\form.inc on line 622.
В связи с этим, убив три часа на поиск порывшейся собаки, пришел к выводу, что решением проблемы с наименьшими кровопотерями будет небольшое изменение функции ядра. Нет, я конечно против такого подхода и в будущем естессно раберусь что за хня, но пока вот такое решение:
<?php function form_get_error($element) {
...

Эксперимент с блоками.

22 мая 2008 в 16:34

Небольшой эксперимент. Столкнулся давно, правил на родных сайтах, но все не решался запостить. Теперь дошло дело и до сайтов на работе. Эксперимент касается блоков и тем. Грубо говоря у нас есть 2 темы: установленная по дефолту и тема для администратора (это важно!). Пусть это будут "viagra" (это важно!) и "garland" соответственно. Ладно, вместо Виагры можете использовать любую другую...

Перед выполнением фокуса, нам нужно иметь в виду следующие пункты:

  • Тема по умолчанию - "viagra";

Sequences table. Стартовые значения.

20 мая 2008 в 14:14

Прислали посмотреть тестовое задание претендента на должность разработчика. В поясниловке написано установить такие-то такие-то модули, все понятно, бла-бла-бла. Дохожу до установки самого модуля, устанавливаю, ошибка. Лезу в код инсталлера модуля, с виду все понятно:
<?php $sfuser_rid = db_next_id('{role}_rid');
db_query("INSERT INTO {role} (rid, name) VALUES (%d, 'superforum user')", $sfuser_rid);
?>
Вроде разумный код, ошибок не должно быть... А, важное замечание - ставлю на голый друпал, as is из коробки. Так вот, код. Все правильно ведь? Правильно, но ошибка вылазит.

Проблема:

Перевод VS Перевод

22 ноября 2007 в 11:29

Заходишь на drupal.ru и сплошняком: Перевод модуля, перевод модуля, перевод модуля... Особенно порадовала строчка "если нужно будет переведу, но большинству не потребуется, как и сам модуль"... Отлично, если никому не надо, то зачем переводить? Smile

Документирование, логика, структура

25 сентября 2007 в 10:20

Случилось такое несчастье. Пришел в понедельник на работу, стал просматривать код и понял... что нифига не помню что писал в прошлую пятницу. Я понимаю, что выходные удались, что понедельник - день тяжелый, но раньше такого не было. То ли код стал на столько нечитабельным, то ли он на столько усложнился, то ли настроение в котором я писал было другим, то ли... Проблема номер 2: ведь дальше этот код будет дальше поддерживать, переделывать, втыкать в него. Судьба у них не завидная...

Эволюция Шаблонизации в Drupal

29 августа 2007 в 13:45

В общем, из-за таймаута сессии вы не увидите красочного, полного примеров текста статьи "Эволюция Шаблонизации в Друпал". Вместо этого...

Ступень 0. Друпал до начала извращений.
page.tpl.php
node.tpl.php
block.tpl.php
comment.tpl.php

Ступень 1. Скрытые возможности.
node-nodetype.tpl.php

Ступень 2. Атака Нодов.

Формы, Переводы, Синхронизация: В Одном Флаконе

20 августа 2007 в 15:40

Мат можно писать? Нет? Ну ладно...
Сегодня мы будем писать модуль без мата. Но, с прикольным функционалом. Для этого нам понадобится Друпал и руки. Ну и ещё что-нибудь, но об этом по ходу изложения. Итак, поехали.

Как Сделать Landing Pages (LP) На Друпале Без Ущерба Для Здоровья

20 июня 2007 в 10:18

У Вас есть свой сайт (домен)?
Ваш сайт использует Друпал в качестве CMS?
Вы занимаетесь рекламой?
Вы знаете что такое Landing Pages?
Вам нужно сделать одну (несколько) Landing Page(s)?
Вы шарите в HTML, PHP, CSS?
Нет?! Тогда не читайте этот текст...

Допустим мы будем продавать Виагру. У нас есть несколько проблем (задач).

Интернационализация. Её мать... Вступление.

13 июня 2007 в 17:04

Ну тут я даже не знаю с чего начать. Кто сталкивался - тот наверное знает что это такое и что эта болезнь не лечится... Опишем симптомы.

Ступор

10 мая 2007 в 17:17

Рано или поздно все наверное сталкивались с такой проблемой. Есть идея, есть друпал, есть модули и есть знания как сделать функциональную часть идеи (проекта). На установку голой версии, настройки, добавления модулей и их настройку и всех остальных технических частей уходит от силы полдня. Ну, плюс/минус, разумеется, но все же... Самое интересное - впереди. Дизайн. Я не дизайнер...

Убираем таксономию из формы редактирования ноды

20 апреля 2007 в 11:52

И вот появилась необходимость убрать таксономию из юзерской части, точнее из формы редактирования ноды. Надо так надо, будем убирать.

Идем в наш модуль, в функцию ваш_модуль_form_alter(). Пишем следующий код.

<?php function ваш_модуль_form_alter($form_id, &$form) {
global $user;
if (isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id) {
foreach ($form['taxonomy'] as $key_taxonomy => $value_taxonomy) {
if (is_array($value_taxonomy) && isset($value_taxonomy['#size'])) {
$default_values = $form['taxonomy'][$key_taxonomy]['#default_value'];

Синхронизация баз данных: local - server

4 апреля 2007 в 14:48

Зачастую происходит так, что у сайта есть 2 версии: локальная (local) и лив-версия (server). Соответственно 2 базы данных, локальная и та, что на сервере лежит. Вы делаете какие-то изменения на локале и хотите перенести их на лив-сервер. Но вот незадача - с файлами все понятно, синхронизнул, переписал, неважно - а вот база. С базой будем разбираться отдельно...

FiveStar Rating. Ещё одно решение...

3 апреля 2007 в 10:49

Итак. Сегодня делаем голосование с помощью звездачек. На эту тему писано-переписано, не я первый, не я последний. Окончательное решение всегда остается за вами. Если вас не устраивает то, что в каком-то модуле подключается AJAX, или ещё что-то не устраивает - тут будет решение работающее только на JavaScript. Даже стилей не надо никаких добавлять. Только звездочки нарисуйте 2 штуки и нормально. Поехали.

Как легко написать padding и margin.

23 марта 2007 в 15:09

Когда в стиле описываем padding или margin, то можно написать padding|margin: 10px, и это будет значить применить эти 10px по всему периметру. Чтобы применить допустим к левому краю - padding|margin-left: 10px, но стороны 4 и для каждой указывать - мне не нравится...

Валидация формы: Пост и Пре.

21 марта 2007 в 18:46

Добрались до форм, точнее до их проверки, то есть валидации, если быть правильным. Вообще валидация в вебе - дело серьезное и т.к. мы работаем с формами, то делится она на 2 части. Пре- и поствалидация.

Превалидация - это например что-нибудь не показать юзеру, чтобы у него не было соблазна это что-то сделать, кнопку например, ссылку, что угодно.

Views 2 или handler наносит ответный удар

16 марта 2007 в 13:17

Если вы знаете, как в модуле Views сделать блок выводящий информацию о текущей (и только текущей) просматриваемой ноде в любом удобном для Вас виде - дальше можете не читать. Если не знаете - попробуйте дочитать до конца, там сюрприз.

Workflow + Actions

13 марта 2007 в 15:09

Один из самых интересных и сложных шагов в настройке сайта.

Administer -> Site building -> Workflow.
Создаем новый workflow с именем "Article Workflow", присваиваем нашему Content type Article только что созданный workflow. Дальше создаем статусы (последовательность имеет значение).

Open for Claim

Настраиваем друпаль с нуля (больше пишу для себя)

13 марта 2007 в 11:49

Настраиваем Друпал.

Administration -> User Management -> User settings.
Тут ставим "Only site administrators can create new user accounts." ибо так надо по проекту.

Создаем роли пользователей. У меня их 3: moderator, translator, member. Для каждой роли создаем тестового пользователя с одноименным логином и паролем. Запомните их хорошенько.

Начисляем автору статьи очки за каждое 1000 посещение его страницы.

10 марта 2007 в 18:27

Начнем с того, что пойдем в админку и включим модуль Profile, если он ещё не включен. Для чего это нужно - читаем дальше.

Считаем посещения страниц. Вариации на тему...

10 марта 2007 в 13:30

Так вот... На сегодня наша главная функция - statistics_exit модуля Statistics, с ней и будем работать. Но для начала несколько рекомендаций. Для того, чтобы заработал стандартный друпаловский функционал, который будет считать посещения стрениц необходимо сделать следующее:

Настройка блока модуля Views для текущей просматриваемой ноды

10 марта 2007 в 11:22

Столкнулся я с такой проблемкой: есть у меня блок в модуле Views, называется "About this article". Из названия понятно, что он должен (по идее) показывать информацию о конкретной статье, при её просмотре. Но вот незадача - среди фильтров этого модуля нет такого, который бы выбирал ноды так, как например работает фильтр "Node: Author is Current user", т.е. показывать те ноды, автором которых является текущий (просматривающий) залогиненный пользователь. Чтож, изголяемся...

Идем в настройки блока, раздел "Arguments", ищем закладку "Argument Handling Code" пишем в неё следующий код.