Есть предложение встретиться друпалерам Москвы и их окрестностей.
Дата: конец августа-начало сентября.
Вариант 1. Посидеть в традиционном месте в ёлках-палках. Кафе такое, кто не знает.
Вариант 2. Весело всей толпой сходить на картинг, lasertag или любое другое времяпрепровождение.
Вариант 3. Выбраться ближе к природе и пожарить мяса на открытом огне.
Варианты 4, 5, 6 – предлагайте.
Attached poll “Что делаем?”.
Register or login to poll
Results:
Вариант 1: 4 голоса
Вариант 2: 5 голосов
Вариант 3: 8 голосов
Свой вариант: 0 голосов
Я ассоциальная личность и не буду ни с кем встречаться!: 8 голосов
Источник: http://www.drupal.ru/node/66206
Кто помнит или не помнит – я писал когда то, что под заказ пишу модуль для Промокодов (пруфлинк).
Собственно постепенно я его дописываю и сегодня ударным темпом закрыл одну из хотелок.
В чем профит модуля, спросите вы?
Все просто. Если вам нужно пользователю присвоить уникальный номер из заданного диапазона и присвоить ему роль – этот модуль предназначен именно для этого. Администратор генерит промокоды через админку, выдает людям. При регистрации или при редактировании профиля пользователь может указать в специальном поле промокод и получить номер и роль. Полученный номер можно использовать, к примеру, для выдачи значков или футболок и т.п. На роль можно повесить специфические права и доступы.
Для проекта открыл sandbox http://drupal.org/sandbox/softovick/1190802 – если кто желает, может поучаствовать в тестировании и фидбеке. На всякий случай прикрепил к посту архив с модулем.
UPD:
+ добавлен выбор роли, которая присваивается при активации промокода
+ сделан прототип более детального списка промокодов в виде таблицы с ссылкой на профиль пользователя.
Прикрепленный файл
Размер
promocode.zip
49.19 кб
Источник: http://www.drupal.ru/node/66200
На главной странице есть лента новостей. Она состоит из:
1. Дата новости;
2. Анонс новости;
3. Ссылка на саму новость.
Захотелось мне реализовать ajax-загрузку основного текста новости на место ссылки.
Изучив “как создать свой модуль”, основы javascript, jquery и вспомнив основы php-программирования я все таки реализовал свою идею. Возможно для профи это 5 минутное дело, у меня ушло около 5 дней в совокупности. Работу модуля можете посмотреть на www.appri.ru.
Модуль назвал loadnews. Здесь обноленный код.
Файл loadnews.module:
<?php
/*
* Implementing hook_init
*/
function loadnews_init() {
drupal_add_css(drupal_get_path('module', 'loadnews') . "/loadnews.css");
drupal_add_js(drupal_get_path('module', 'loadnews') ."/loadnews.js");
}
/*
* Implementation hook_perm
*/
function loadnews_perm() {
return array('access onthisdate content');
}
/**
* Implementation hook_menu()
*/
function loadnews_menu() {
// Элемент меню с соответствующим путем
$items['loadnews'] = array (
// Функция, которая будет "обрабатывать" путь
'page callback' => 'loadnews_ajax',
// Права на доступ к пути
'access arguments' => array('access content'),
// Элемент не будет отображаться в меню сайта
'type' => MENU_CALLBACK,
);
return $items;
}
/* Функция обработки запроса */
function loadnews_ajax() {
/*
* Ссылка на на новость передается методом GET в переменной 'url'
* В БД алисы адресов хранятся без первого слеша, поэтом удаляем его
*/
$url = substr($_GET['url'], 1);
// По полученному алиасу ищем в таблице url_alias соответствующий системный адрес
$sys_url = db_result(db_query("SELECT n.src FROM {url_alias} n WHERE dst = '%s'", $url));
/* Адрес получаем в виде "node/nid". Нам нужно получить параметр nid.
* Для этого разбиваем строку на массив из 2-х элементов, второй который наш nid
*/
$sys_url_array = explode('/',$sys_url);
// Сохраняем наш nid в переменную
$nid = $sys_url_array['1'];
// Выбираем поле основного текста новости "field_news_text_value" из таблицы "content_type_news"
$result = db_result(db_query("SELECT n.field_news_text_value FROM {content_type_news} n WHERE n.nid = '%d'", $nid));
// Наш ответ клиенту
drupal_json(array('status' => 1, 'data' => $result));
}
?>
Файл loadnews.js:
Drupal.behaviors.loadnews = function(context) {
// Добавляем для всех ссылок в блоке новостей class =loadnews
$('#block-views-news-block_news', context).find('a').addClass('loadnews')
// Реагируем на клик
.bind('click', function() {
// Передаем с методом get адрес ссылки
var href = $(this).attr('href');
// Переменная, это куда мы будем выводить ответ
var target = $(this).parents(".field-content");
// Прячем ссылку
$(this).hide();
// Вместо нее выводим анимацию
$(target).append("<div class=loading></div>");
// Получаем данные с сервера
$.get(Drupal.settings.basePath + 'loadnews', {url:href} , function(response) {
// Сохраняем ответ в переменной
var result = Drupal.parseJson(response);
// Прячем анимацию
$(target).find(".loading").hide();
// Вместо нее ставим "Свернуть"
$(target).append("<span class=hidenews>Свернуть</span>");
$(target).append("<span class=shownews>Подробнее...</span>");
$(target).find(".shownews").hide();
// Создаем блок для вывода текста новости
$(target).append("<div class='newstext'></div>");
// Изначально блок будет скрыт, чтобы потом красиво его развернуть
$(target).find("div.newstext").hide();
// Загружаем текст из переменной в блок
$(target).find("div.newstext").html(result.data);
// Красиво раскрываем наш блок
$(target).find("div.newstext").slideDown("fast").addClass("active");
// Реализация скрытия и раскрытия блока (нужно оптимизировать код)
$(target).find(".hidenews").click(function() {
$(target).find(".hidenews").hide();
$(target).find("div.newstext").slideUp("fast").removeClass("active");
$(target).find(".shownews").show();
});
$(target).find(".shownews").click(function() {
$(target).find(".shownews").hide();
$(target).find("div.newstext").slideDown("fast").addClass("active");
$(target).find(".hidenews").show();
});
});
return false;
});
}
Хотелось бы услышать мнения и замечания профи по коду. Спасибо за внимание.
Прикрепленный файл
Размер
loadnews_v6.x-1.6.zip
3.62 кб
Источник: http://www.drupal.ru/node/66172
Давно хочу прикрепить свою ленту сообщений из новой социальной сети Google plus на свой же хоумпейдж. Официального пути это сделать пока нет. Вот один из “неофициальных” вариантов:
1) создать RSS-поток ваших сообщений на сайте http://plusfeed.appspot.com/. В общем-то для этого просто надо добавить ваш ID на сайте G+ к адресу Plusfeed’а. Вот так, например – http://plusfeed.appspot.com/116910563308964275374
2) включить модуль Feed aggregator (есть в стандартном дистрибутиве Drupal) на странице ВАШСАЙТ/admin/build/modules/list.
3) добавить полученный на шаге 1 адрес фида в настройках на странице ВАШСАЙТ/admin/content/aggregator/add/feed
4) и, конечно, настроить cron (если он у вас еще не настроен) и не забыть установить права для просмотра ленты (на ВАШСАЙТ/admin/user/permissions).
И все…
По желанию можно задать адрес для этой страницы, добавить ссылку в меню сайта, сделать более внятное оформление и т.п.
Получится что-то вроде такого: http://vadimbarsukov.com/aggregator/sources/1
Не скажу, что меня все устраивает (например, не показываются фото и видео), но все же это лучше, чем ничего.
Источник: http://www.drupal.ru/node/66099
Приветствую.
Как оказалось, есть модуль, позволяющий отказаться от необходимости прописывать теги страницы в отдельном поле – Hashtags, теги как в твиттере, отмечаются непосредственно в тексте. И для seo лучше.
Единственный минус в том, что он есть только под 6-ю версию, и с портом D7 совершенно не ясно… аналогов модуля не нашел.
Источник: http://www.drupal.ru/node/66069
Default Node Gallery – дополнение к модулю Node Gallery – создает галерею по умолчанию для каждого юзера (и для каждой пары тип_галереи – тип_изображения) при входе его на сайт.
Так же позволяет управлять доступом к галерее по умолчанию, чтобы юзер случайно ее не удалил.
В общем, это должно работать как функция “неразобранные фотки” на многих фотосайтах.
Модуль пока сыроват – возможны ошибки, о которых прошу сообщать в issue queue модуля.
Источник: http://www.drupal.ru/node/66060
Вышел drupal 7.7., который является 7.6, но с поправленными строками в “версии”
7.5 содержит фиксы безопасности.
Короче говоря. Качать и ставить надо 7.7.
Drupal 7.5, a maintenance release which fixes security vulnerabilities is now available for download. Drupal 7.6 7.7 also fixes other issues reported through the bug tracking system.
Note: Drupal 7.7 is just Drupal 7.6 with a fixed VERSION string (7.6 was reporting itself as 7.5). No other changes.
читаем, качаем тут
Источник: http://www.drupal.ru/node/66057
Компания «1С-Битрикс» начинает продажу готовых веб-приложений для сайтов и корпоративных порталов через маркетплейс. Приложения маркетплейса, созданные профессиональными веб-студиями и опытными веб-разработчиками, расширяют стандартный функционал проектов на платформе «1С-Битрикс».Сегодня в маркетплейсе уже более 200 дополнений для решения самых разных бизнес-задач.
Источник: http://www.1c-bitrix.ru/about/life/news/316619/
Долго капашилась, вроде что-то получилось, а вдруг кому-нибудь пригодиться.
Для быстрой и удобной работы с использованием хуков может пригодиться Eclipse PDT. После его установки, необходимо сделать следующее – скачать файл http://drupal.org/project/eclipse, его содержимое Drupal.xml импортировать в Preferences > PHP > Editor > Templates. Зайдите в Help menu, потом Install New Software введите
Name: XTND.US
Location: http://xtnd.us/downloads/eclipse.
У меня установилось, но почему-то в пункте Php Content Type не отобразились Drupal Module и Drupal Themes. Поэтому я ввела в ручную следующее -
# *.module
# *.install
# *.test
# *.info
# *.po
# *.theme
# *.engine
(для того, чтобы пхп их распознавал).
После данных действий, при наборе hook появляется выборка всевозможных хуков, а после выбора конкретного, его код отображается на странице. (Или же надо при наборе нажать ctrl+space)
Источник: http://www.drupal.ru/node/66000
Всем привет, презентую модуль-шлюз http://sms24×7.ru для SMS Framework.
Модуль очень простой, меньше 100 строк, использует их библиотеку, подробное описание api нашел тут.
Ссылка на модуль – https://github.com/stan-kondrat/drupal-sms24×7
PS. Никакого отношения не имею к sms24×7, была нужда в русском шлюзе, его нагуглил первым.
PPS. Если хотите по тестить стандартный модуль SMS User (Provides integration between the SMS Framework and Drupal users), но есть один момент. Он отсылает четырех значный код подтверждения, на что шлюз отвечает: “Сообщение содержит указание на платный номер“, самое простое решение:
diff --git a/sms_user.module.orig b/sms_user.module
index 799ec7f..403b609 100644
--- a/sms_user.module.orig
+++ b/sms_user.module
@@ -264,7 +264,7 @@ function sms_user_settings_sleep_form_submit($form, &$form_s
}
function sms_user_send_confirmation($account, $number, $options) {
- $code = rand(1000, 9999);
+ $code = rand(100, 999);
$data[0] = array(
'number' => sms_formatter($number),
'status' => 1,
Источник: http://www.drupal.ru/node/65940
Санаторий Лермонтова расположен в историческом центре известнейшей здравница КавМинВод Пятигорск, чем притягивает массу людей, мечтающих не только пройти курс санаторного лечения, но и интересно проводить время, сделать акцент на экскурсии. Читать далее
По привычке, чтобы повесить в рамке на стену собственные свидетельства фотомастерства, мы отправляемся в минилаб. Читать далее
Я выискивала санаторий, с хорошим лечением и отдыхом. Читать далее
Обобщив положительный опыт в области экономического строительства, ученые глубоко обосновали объективную необходимость последовательного осуществления курса на всестороннюю интенсификацию общественного производства, повышение его эффективности и качества работы: «Обеспечить дальнейший экономический прогресс общества, глубокие качественные сдвиги в материально-технической базе на основе ускорения научно-технического прогресса, интенсификации общественного производства, повышение его эффективности».
Решающее значение в современных условиях приобретают не только ускорение научно-технического прогресса, но и совершенствование управления и подъем уровня хозяйствования во всех звеньях экономики, улучшение структуры производства, всемерное использование резервов. Читать далее
Компания «1С-Битрикс» и компания «Интаро» сообщают об успешном внедрении программного продукта «1С-Битрикс: Управление сайтом» для <b>Государственной Думы Российской Федерации.</b>
Источник: http://www.1c-bitrix.ru/about/life/news/313674/
Кардшаринг НТВ плюс
Слово кардшаринг пришло к нам с английского языка и суть его в том, что несколько независимых друг от друга пользователей имеют возможность получить доступ к просмотру платных каналов спутникового ТВ. Читать далее
Немного теории
Индекс (англ. index) — объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск — например, сбалансированного дерева.
Википедия
Для тех кто не понял
Индекс в таблицах базы данных, это как предметный указатель в книге. Если не было бы предметного указателя, то вы бы листали всю книгу и просматривали текст каждой страницы в поисках какого-то определённого слова. В случае присутствия предметного указателя, вы быстро пробегаетесь по указателю, находите нужное слово и страницу и экономите время. Индекс в базах данных работает так же.
И чего ты этим сказать хотел?
Ещё работая в IT-Patrol была замечена интересная статистика, а именно:
старые сайты имели большие показатели неиндексированного чтения и проблемы с производительностью. Естественно, в голове это не совсем укладывалось, так как с виду вполне себе обычный сайт, но работает медленно и даёт нехилую нагрузку по БД.
Изначально это связывалось с кривыми модулями и другими физическими ущербностями.
Потом при обновлении fermer.ru я столкнулся с тем, что отпали индексы по fid в таблице files.
Время шло, вышла семёрка, начались апдейты на неё, при апдейте hr-portal.ru было замечено отпадение индексов и даже то, что некоторые индексы давно отсутствовали, но портал более менее нормально работал на шестёрке.
Дело в том, что между версиями меняется структура БД и при накладках во время апдейта, старый индекс удаляется за ненадобностью, а новый не создаётся, например, из-за дублей, так бывает в таблице blocks.
В итоге мы получаем с виду работающий сайт, но внутри имеем вот такие грабли
Как диагностировать?
Очень просто, Устанавливаем модуль Schema
Сразу хотелось бы предупредить что в версии модуля для Drupal 7 наблюдается баг с префиксами БД, данные которые даёт модуль по БД с префиксом некорректны.
Идём в admin/build/schema/report
Перед нами предстанет страница подобная этой
Легенда:
На желтом фоне пишутся предупреждения, в большинстве случаев они говорят о том, что авторы некоторых модулей не читали раздел про типы полей на api.drupal.org.
Филдсет Match несёт информацию о таблицах которые совпадают со схемой.
Mismatch сообщает нам о таблицах в которых проблемы со схемой.
Extra это таблицы в БД, которые не связаны схемой ни с одним модулем.
Рассмотрим подробнее Mismatch.
primary key: missing in database
Говорит о том, что потерян первичный индекс.
Ещё возможен вариант потери обычного индекса, например:
indexes content_type_uid: missing in database
И чего мне теперь делать, я же спать не буду?!
Вооружаемся текстовым редактором, просматриваем install-файлы модулей, смотрим там hook_schema() и восстанавливаем индексы соответствующими запросами:
ADD INDEX [index_name] (index_col_name,…)
или ADD PRIMARY KEY (index_col_name,…)
или ADD UNIQUE [index_name] (index_col_name,…)
или ADD FULLTEXT [index_name] (index_col_name,…)
Не забываем, что индексы бывают разных типов – составные, уникальные, простые и т.п.
ПЧП, КСС, это всё сложно для меня, может вы сможете помочь?
Я помогу вам за 1000р или эквивалент, я приведу отпавшие индексы в порядок и добавлю свои наработки.
И кстати, если вы клиент Патруля более трёх месяцев, то на вас распространяется 50% скидка, если вы пришли на IT-Patrol менее 3 месяцев назад, то стоимость составит 750р за проблемный сайт, просто напишите в техническую поддержку.
Прикрепленный файл
Размер
schema.png
30.24 кб
missingindex.png
22.48 кб
missingindex2.png
13.54 кб
Источник: http://www.drupal.ru/node/65583
Для чего нужны детекторы купюр и счётчики банкнот?
Бумажные деньги давно уже не делают из обыкновенной бумаги — находят применение такие стойкие к истиранию материалы, вроде хлопка или льна. Читать далее
Компания «1С-Битрикс» и ведущий веб-интегратор России компания QSOFT сообщают об успешном внедрении готового решения «1С-Битрикс: Корпоративный портал» для ЗАО «СИБУР Холдинг». Среди сильных сторон проекта – интеграция с корпоративными системами: Active Directory, NTLM и др.
Источник: http://www.1c-bitrix.ru/about/life/news/312907/
Drupal 7 уже был тревожным сигналом – ведь для стабилизации и приближения релиза, Аквии и многим другим компаниям пришлось выделить сотрудников на зарплате, занимающихся решением багов на фул-тайм.
В этом смысле, инициативы Дриза и компании по Drupal 8 очень пугающие:
- очень сильно повышены требования к количеству багов, которые вызывает то или иное изменение
- добавлены очень жесткие критерии приема патчей. Предполагается, что контрибутор должен будет ознакомиться с тонной документации, прежде чем провести какое-нибудь изменение. И это будет действительно тонны – я не шучу. Текущая сложность Drupal – learning curve, как ее называют, покажется детским садом по сравнению с новыми требованиями.
Все это – бюрократизация, дополнительные барьеры для участия многих контрибуторов. Непонятно, как можно забюрократизировать процесс по-максимуму, и рассчитывать что сообщество – добровольцы, будут разгребать все это.
Многие потенциальные контрибуторы уже давно не участвуют в разработке ядра по причине низкой эффективности труда:
- чтобы добавить то или иное изменение, нужно убедить кучу народа
- бесконечные споры по поводу реализации того или иного изменения. В условиях равноправности мнений, из спора очень трудно прийти к компромиссу
- готовые патчи могут висеть месяцами, ожидая своей участи. Стоит только вспомнить эпические изменения, связанные с состояниями гонки (race conditions) в Drupal 6 и каких усилий стоило реализовать их.
В этом смысле, я не вижу здесь тенденций к улучшению. Более того, все будет только усугубляться. Неудивительно, что такие инноваторы, как Development Seed, покинули мир Друпала. Этот процесс будет продолжаться и дальше. Бюрократизация – тормоз и злейший враг инноваций.
Как бы я решил эту проблему ? Я бы сделал процесс разработки распределенным, убрал узкое горлышко в виде небольшой группы комиттеров ядра. Это уже давно предлагалось: существовала так называемая инициатива Small Core, в рамках которой предлагалось разделить друпал на слабо связанные подсистемы, разрабатываемые отдельно, и оставить ядро минимального размера. Эта инициатива не нашла серьезной поддержки, к сожалению.
Дриз и ко вряд ли пошли бы на такое – ведь тогда они потеряли бы контроль над продуктом. Друпал, как торговый знак, перестал бы приносить дивиденды.
Мой прогноз: Drupal 8 намертво увязнет в своих проблемах, и чтобы вытащить его, бизнесам придется еще больше рассчитывать на свои силы, и еще меньше – на сообщество. Многие переосмыслят использование Drupal в своем бизнесе. Drupal перестанет быть продуктом сообщества, и станет больше продуктом корпораций. В этом смысле, наверное, он в чем-то повторит судьбу Linux.
Мы увидим больше дистрибутивов Drupal, мы увидим LTS редакции, для потребителей, не желающих гнаться за номерами версий, как белки в колесе. Аквия, которая во всем подражает Redhat, возможно разразится своим Acquia Enterprise Drupal с 10 летней поддержкой )))
Ссылки по теме:
http://www.drupal4hu.com/node/300
http://benbuckman.net/drupal-excessive-complexity
http://randyfay.com/node/110
http://www.unleashedmind.com/en/blog/sun/the-drupal-crisis
http://www.unleashedmind.com/en/blog/sun/crisis-conclusions
Источник: http://www.drupal.ru/node/65464
Стартовали продажи новой книги «1С-Битрикс: Строим профессиональный сайт и интернет-магазин» с практическими рекомендациями по созданию интернет-представительства и организации интернет-магазина на основе программного продукта «1С-Битрикс: Управление сайтом». Автор книги – Роберт Басыров.
Источник: http://www.1c-bitrix.ru/about/life/news/311761/
Достигнув более миллиона скачиваний WordPress 3.2, предлагаем вашему вниманию WordPress 3.2.1. Это техническое обновление содержит исправление несовместимости с серверами без расширения JSON, а также несколько других исправлений, относящихся к внешнему виду панели управления и к теме Twenty Eleven.
Дополнительную информацию можно найти в списке изменений и в списке закрытых задач. Традиционное хокку:
JSON, и панель
Стала аккуратнее.
Теперь порядок.
Скачайте версию 3.2.1 или воспользуйтесь автоматическим обновлением в меню «Консоль» → «Обновления».
Источник: http://ru.wordpress.org/2011/07/wordpress-3-2-1/
Компания «1С-Битрикс» стала соорганизатором конференции «Сайт 2011», организаторами которой являются компания «Ашманов и партнеры» и Российская Ассоциация электронных коммуникаций (РАЭК). «1С-Битрикс» окажет методическую и информационную поддержку конференции, примет активное участие в работе программного комитета и подготовке программы докладов.
Источник: http://www.1c-bitrix.ru/about/life/news/310772/
Статья для тех, у кого возникнет необходимость отобразить прикрепленный PDF документ на странице просмотра содержимого. Реализуется это довольно просто…
Полная статья »
Источник: http://www.drupal.ru/node/65269
Десятилетиями Ессентуки являются одним из наиболее востребованных городов КавМинВод. Читать далее
В один из самых миниатюрных курортов Кавказских Минеральных Вод, Железноводск, зачастую приезжают ради отдыха и оздоровиться отдыхающие, которые не переносят чрезмерной сутолоки и подустали от мегаполиса. Читать далее
Каждый год известнейшие санатории Пятигорска предлагают вам свои оздоровительные услуги и организации проведения отпуска. Читать далее
Санаторно-курортное лечение в Кисловодске в настоящее время стало очень модным у наших соотечественников вариантом отдыха. Читать далее
Новосибирск строится , и все большее количество новостроек от застройщиков в Новосибирске и Новосибирской области представлено на рынке недвижимости . Читать далее
«Диал Трейд» – современная компания, занимающаяся продажей компьютеров и комплектующих в Питере. Читать далее
На DrupalCamp Kyiv 2011 я рассказывал о наших разработчиках, которые публикуют свои модули на drupal.org.
«Наших» модулей оказалось довольно много и, даже просто рассказывая в одном предложении про каждый из модулей, мы бы потратили не один час. Очень порадовало то, что были вопросы о том, как опубликовать свой модуль? какие преимущества? и др.
Сейчас процедура получения права на публикацию модуля усложнилась, но это к лучшему. Благодаря такой процедуре, будут отсеиваться бесполезные модули и те, которые дублируют без особых причин функционал уже существующих модулей.
В то время как ваш модуль может находиться в песочнице длительное время, вы можете уже сейчас публиковать патчи, которые исправляют ошибки или добавляют новые фичи в существующие contrib-модули, разработчиком которых вы не являетесь.
Contrib-модулями называются модули, которые были созданы и опубликованы на drupal.org сторонними разработчиками. Любой желающий может их использовать (contribution).
Contrib-модули и вклад в развитие Drupal
Эти contrib-модули являются вкладом drupal-разработчиков по всему миру в развитие Drupal.
Есть и другие способы, как можно сказать спасибо тем, кто развивал Drupal до вас, кто создавал полезные модули, писал документацию, тратил свое время на тестирование чужих модулей и исправление ошибок, а также ребятам из команды безопасности (Security Team), которые внимательно изучали код в поисках уязвимостей и принимали меры по их устранению.
Это может быть:
Членство в Drupal Association. О том, что это дает и на что тратятся членские взносы лучше почитать на сайте Drupal Association.
Написание документации.
Перевод документации на родной язык.
Перевод строк ядра и модулей на родной язык. Детали на сервере локализации.
Участие в организации Drupal-мероприятий в своей стране.
Участие в зарубежных Drupal-мероприятиях.
Создание модулей для Drupal.
Создание и проведение тренингов.
Запись обучающих скринкастов про Drupal.
Популяризация Drupal (без спама, холиваров и троллинга).
Создание сайтов на базе Drupal. (Да, это тоже вклад в развитие Drupal!)
Направление части прибыли от проекта на развитие Drupal. Это может быть как локальное использование, так и перечисление в виде пожертвования Drupal-разработчикам.
Участие в качестве спонсоров на Drupal-мероприятиях.
Но самое доступное и простое – как мне кажется – это сделать патч и опубликовать его на drupal.org!
Это не так сложно, как публиковать модуль и дешевле, чем оплачивать членство в Ассоциации Drupal. Патч можно опубликовать достаточно быстро. Ваша активность поможет вам быстрее получить право на публикацию модулей, а также создаст вам репутация серьезного человека, который в Drupal-сообществе «всерьёз и надолго».
Но сначала нужно рассмотреть несколько ключевых моментов:
Можно ли использовать contrib-модули для серьёзных проектов?
Стоит ли тратить время на создание и публикацию патча на drupal.org?
Читать дальше »
Источник: http://www.drupal.ru/node/65065
Замена названий скачиваемых файлов:
Цель: при сохранении файла по умолчанию подставлять в название содержимое атрибута title
т.е. например, чтобы по нажатию на ссылку
<a href="proba.zip" title="Пробный архив">скачать</a>
, предлагало сохранить “Пробный архив.zip”
и так для любого интересующего расширения (doc, pdf, jpg ..)
Решение: на самом деле решение к друпалу имеет очень небольшое отношение, т.к. почти не знаю его. Поэтому, наверняка, оно не оптимальное и я буду рад любым советам по его улучшению. С другой стороны, им могут воспользоваться такие же новички (и не только для друпала).
Краткий алгоритм:
Пройтись по все ссылкам в интересующем месте, выбрать те, что ссылаются на файлы типа zip, rar, doc и т.п. Отлавливать клики по ним, отменяя стандартное действие, вместо которого отправлять в php-файл путь ссылки и нужное название
В php-файле настроить header-ы на загрузку
Привязать все это к друпалу
Первый пункт (javascript):
window.onload = function(){
//взять все ссылки, из содержимого статьи
var links = document.getElementById("content").getElementsByTagName("a");
//перебрать все найденные ссылки
for(var i=0;i<links.length;i++){
$href= links[i].getAttribute("href");
//если у ссылки есть путь
if($href!=null && $href!=""){
var ext = $href.substr($href.lastIndexOf('.') + 1);
//перекрыть ссылки на документы и архивы
if(ext.match(/zip|rar|doc|docx|pdf/)){
links[i].onclick = saveFile;
}
}
}
}
function saveFile(tag){
$path = this.getAttribute("href");
$label = this.getAttribute("title");
//если нет title, взять название файла
if($label==null || $label==""){
$label=$path.match(/(?:^|\/|\\)([^\\\/]+)$/)[1];
$label = $label.substr(0,$label.lastIndexOf('.'));
}
//создать временную форму для отправки методом post
var submitForm = document.createElement("FORM");
document.body.appendChild(submitForm);
submitForm.method = "POST";
submitForm.action= "/php/download_file.php";
createNewFormElement(submitForm, "file", $path);
createNewFormElement(submitForm, "label", $label);
submitForm.submit();
submitForm.parentNode.removeChild(submitForm);
//////////////////////////////////////////////////////////
return false;//отменить переход по ссылке
}
//вспомогательная функция для создания полей в форме
function createNewFormElement(inputForm, elementName, elementValue){
var newElement = document.createElement("INPUT");
newElement.name = elementName;
newElement.type="hidden";
inputForm.appendChild(newElement);
newElement.value = elementValue;
}
Здесь обрабатываются все ссылки, лежащие в контейнере с id=”content”. Чтобы не зверствовать c post-отправкой, и не подключать jquery используется простой трюк с временным добавлением формы.
Второй пункт (php):
<?php
if(isset($_POST["file"]))
{
// путь к файлу
$filename = $_SERVER['DOCUMENT_ROOT'].$_POST['file'];
//заменитель
if(isset($_POST["label"]))$label = $_POST["label"];
else $label = basename($filename);
//расширение файла
$fileextn = end(explode('.', $_POST['file']));
switch($fileextn)
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
//Проверка, на то, можно ли отдавать запрашиваемый файл (спасибо xxandeadxx)
//например, выдавать только с указанными расширениями
if($ctype!="application/force-download"){
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"$label.$fileextn\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();
}
}
?>
Третий пункт:
php-скрипт положить в \sites\all\libraries\ download_file.php
js-скрипт положить в \sites\all\themes\infopark\js\download_file.js (не забыть изменить путь к php)
В файле \sites\all\themes\тема\тема.info добавить scripts[] = js/download_file.js (для того, чтобы подгружать этот скрипт на все страницы).
Пример прилагается.
Прикрепленный файл
Размер
download_files.zip
5.87 кб
Источник: http://www.drupal.ru/node/65058
Небольшая подсказка новичкам куда глядеть, в случае, если под единственным комментарием к ноде вы внезапно обнаружили пейджер и вот уже 2 часа вспоминаете что вы перед этим делали и какие модули подключали.
Досконально в процесс не вникал, но суть в том, что если на данной странице у вас есть вьюха с пейджером (а она скорее всего есть, может быть и в блоке), то оба этих пейджера получают один и тот же ид, и по сути выполняют одни и те же действия.
По этому идем в настройки пейджера этой самой вьюхи и в поле “Pager ID” ставим, допустим, единичку вместо нолика, или двоечку, в зависимости от количества используемых пейджеров на странице.
Там же можно прочитать описание ин инглиш:
Unless you’re experiencing problems with pagers related to this view, you should leave this at 0. If using multiple pagers on one page you may need to set this number to a higher value so as not to conflict within the ?page= array. Large values will add a lot of commas to your URLs, so avoid if possible.
Источник: http://www.drupal.ru/node/65047
С каждым годом мы сталкиваемся все с новыми косметологическими процедурами. Читать далее
Интересный твит пробегал в недавно от «детроидца», известного своими скринкастами… гугл переводит это: «Я думаю, что когда-нибудь люди поймут, что цены за обучение #Drupal нелепы.», полагаю, что речь идёт о прошедших курсах:
Drupal 7 Site Building
June 27, 28, 29 $1,350
Drupal 7 Theming
June 30 & July 1 $900
Entire Week of Workshops
June 27 – July 1 $2,000
Предлагаю проголосовать всем заинтересованным и предлагать свои варианты решения об образовании Drupalista в коментах.
Предлагаю русскому сообществу обсудить положение дел и высказать свои предложения, так как помимо начальных курсов, которые будут привлекать в наше дружное сообщество новичков есть насущная потребность в подобных курсах для обучения сотрудников компаний-разработчиков и, вероятно, частних лиц, желающих повысить свой профессиональный уровень не только на пока еще редких друпал-конференциях (друпал-кафе в россии пока закрыто
Один из найденных тренингов по конкурирующей платформе выставил на начальное обучение ценник (4500 вебинар и от 6500 за очное посещение), в ближайшее время на Drupal.Ru появится раздел посвященный обучению людей премудростям Drupal, пока полагаю в виде подобного ресурса от Acquia. Но об этом позже
PS: … на пути к Друпал-центру обучения и не только
Attached poll “Сколько Вы готовы платить за повышение квалификации, работая с Drupal?”.
Register or login to poll
Results:
Я нищий..: 38 голосов
20 000 – 15 000: 11 голосов
10 000 – 5 000: 23 голоса
не более 5 000: 32 голоса
Источник: http://www.drupal.ru/node/65015
Сделала на базе sphinxsearch небольшой поисковый модуль. Предложения и тестирование весьма желательны. Первоначально модуль делала под свои нужды, так что все лишнее, на мой взгляд, отсутствует . Если понадобятся какие-то доработки, буду рада помочь. На d.org будет выложен позднее. Портирование на 7 будет, после отлова мелких багов, при наличии таковых.
Основные отличия от базового:
возможность автоматической генерации файла конфигурации;
mysql вместо xmlpipe2;
минимальные настройки файла конфигурации через админку (работает при автоматической генерации);
UPD. Добавлено управление индексацией и демоном через админку. Функции внедрены по просьбе IT-patrol;
может еще что-то…
Настройка:
Копируем модуль в “sites/all/modules”.
Включаем в админке.
Настройка модуля на странице “admin/settings/advanced_sphinx”. Если вы хотите автоматически сгенерировать конфиг, то поставьте галочку “Generate a configuration file”. Далее необходимо указать полный путь к папке, в которой храниться sphinx.conf или папку в которой могут быть созданы конфиг и другие папки. Права на запись обязательны. Также на этой странице можете выбрать типы материалов по которым будет осуществлен поиск, если не выбрано, то ищет по всем. Обратите внимание, что при каждом сохранении настроек модуля конфиг будет обновлен, если включена его генерация.
запускаем индексатор /usr/bin/indexer –config /home/user/sphinx/config/sphinx.conf –all . Потом демон сфинкса /usr/sbin/searchd –config /home/user/sphinx/config/sphinx.conf . Все пути подставляйте свои.
проверяем работоспособность на странице “admin/settings/advanced_sphinx/check-connection”.
Добавляем для нужных ролей право на использование страницы поиска (”use advanced_sphinx”) в “admin/user/permissions”
Страница Advanced sphinx на github.
Источник: http://www.drupal.ru/node/65009
Доступен WordPress 3.2 — как для обновления через консоль, так и для скачивания вручную. Это пятнадцатый крупный релиз WordPress. Прошло всего четыре месяца после выхода версии 3.1 (количество скачиваний которой сегодня утром превысило 15 миллионов), что отражает растущую скорость изменений в сообществе WordPress. Версия 3.2 названа в честь знаменитого композитора и пианиста Джорджа Гершвина.
Этот релиз посвящён стремлению сделать WordPress быстрее и легче. Первое, что бросается в глаза, — обновлённый дизайн панели управления с более компактным расположением элементов и исходным кодом. Если вы создаёте новый блог, вам также понравится новая тема Twenty Eleven, полностью соответствующая стандарту HTML5. Она отвечает нашему плану менять тему по умолчанию каждый год. Начните писать свою первую запись в обновлённом визуальном редакторе и нажмите кнопку «Полноэкранный режим», чтобы перейти в новый удобный режим написания. Все виджеты, меню, кнопки и элементы интерфейса исчезнут, чтобы создать благоприятную для творчества атмосферу и позволить вам полностью сосредоточиться на своих мыслях, но как только вы переместите курсор в верхнюю часть экрана, все нужные элементы управления будут там. (Для улучшения восприятия можно развернуть на весь экран и сам браузер с помощью клавиши F11.)
Есть также ряд менее заметных улучшений, среди которых оптимизация кода, ставшая возможной благодаря нашему ранее объявленному плану по отказу от поддержки PHP4, старых версий MySQL и устаревших браузеров вроде IE6, что позволило нам воспользоваться преимуществами новых технологий. В верхнюю панель добавлены ещё несколько пунктов с часто выполняемыми действиями. Новая функция «Одобрить и ответить» на экране модерации комментариев ускоряет обсуждение. При следующем обновлении (после версии 3.2) вы заметите, что обновляться будут не все файлы дистрибутива, а только изменённые, что сделает обновление на любом хостинге существенно быстрее. Кроме того, в Twenty Eleven отражены некоторые новые функции тем — например, можно использовать чередующиеся изображения заголовка, чтобы продемонстрировать все ваши любимые фотографии.
Это далеко не всё — к примеру, в нижней части панели управления появились страницы «Права» и «Участники». Полный список изменений можно найти на странице версии 3.2 в Кодексе или в багтрекере, где показаны более 400 закрытых задач.
Источник: http://ru.wordpress.org/2011/07/wordpress-3-2/
Работая с несколькими Drupal сайтами на одном хостинге, удобно использовать встроенный в Drupal механизм мультисайтинга. О преимуществах работы Drupal в режиме мультисайтинга разговор отдельный. Но обновление версии ядра Drupal в этом случае имеет определенную специфику. Нельзя обновить все сайты за один раз, т.к. у каждого сайта будут свои особенности, которые придется решать по-отдельности. Ниже изложен порядок действий, который привел к желаемому результату. Но сначала оговорка. Работоспособной процедура обновления сайта Drupal с версии 6 до версии 7 стала только после выхода релиза 7.4. Не надо пытаться делать обновление с прежними версиями.
0. Составить полный список модулей, которые используются сайтом. Выяснить на drupal.org наличие версий этих модулей под Drupal7. Возможно, функционал некоторых модулей перекочевал в ядро Drupal, как например, произошло с модулем CCK. Некоторые модули прекратили свое развитие на версии 6 и их функционал выполняют другие модули под новыми названиями для версии 7. На этом этапе нужно принять взвешенное решение о необходимости обновления. Нужно иметь ввиду, что хорошие шансы на простое обновление только у тех сайтов, которые создавались по принципу “не написав ни строчки кода”. Ибо Drupal6 и Drupal7 – это не две версии одной и той же СМС, а две разные СМС, т.к. у них разные API. В Drupal7 нет многих функция API Drupal6, а те, что сохранились по названию имеют другой набор входных параметров. Чаще всего, список параметров, передаваемых через запятую в Drupal6, заменен в Drupal7 массивом параметров [каждый из которых тоже зачастую является массивом]. Кроме модулей нужно позаботиться о новой версии темы оформления. Если все необходимые модули и тема оформления для новой версии есть, либо от непортированных под семерку можно отказаться, переходим к следующим пунктам.
1. Если действующая версия инсталляции Друпал не самая последняя (на сегодня это 6.22), то нужно сначала обновиться до последней версии (не забывая про резервные копии).
2. Рядом с каталогом установки Друпал шестой версии создаем другой каталог для версии 7. Например, шестая версия размещалась на хостинге в каталоге “/home/my_login/drupal”, здесь “/home/my_login/” – домашний каталог на хостинге; “drupal” – каталог инсталляции Друпал6. Тогда создаем каталог “/home/my_login/drupal7”.
3. Копируем последнюю версию Drupal7 со страницы http://drupal.org/project/drupal
4. Устанавливаем как обычно Drupal7 в новый каталог. Для этого можно временно создать поддомен одного из рабочих доменов, либо использовать какой-то свой тестовый домен. В любом случае, нужно на хостинге подключить этот домен/поддомен, указав для него в качестве домашнего каталога вновь созданный. В данном примере это – “/home/my_login/drupal7”. На этом шаге нам нужно убедиться в том, что данный хостинг поддерживает работу с Drupal7. Например PDO (расширение PHP), как показала приктика, присутствует не на всех хостингах. А без PDO Drupal7 не работает.
5. Устанавливаем и тестируем в Drupal7 все модули, которые необходимы для нашего сайта.
6. Делаем архив каталога “/home/my_login/drupal/sites/нашсайт.ru”.
7. Делаем копию БД нашего сайта и сохраняем к себе на ПК (с пометкой “рабочая 6” или другой понятной нам). Можно использовать phpMyAdmin хостера, но лучше воспользоваться скриптом – http://sypex.net/ru/ или аналогичным. Это быстрее, проще и удобнее.
8. Регистрируемся на сайте в Drupal6 под именем пользователя с ID=1 (который создается при установке).
9. Переводим сайт в режим техобслуживания (на странице admin/settings/site-maintenance)
10. Переходим на страницу admin/build/themes и назначаем тему по умолчанию – Garland.
11. На странице admin/build/modules отключаем все модули, которые не входят в раздел “Ядро – обязательное”. Возможно, отключение придется делать в несколько этапов из-за зависимостей между модулями. Весьма кстати было бы на этом этапе читать далее
Источник: http://www.drupal.ru/node/64863
Одним из весомых преимуществ Drupal 7 над его предшественниками есть его гибкость к настройкам и системам. Разработчики не обошли стороной и запросы к БД. В этом релизе они стали объектно-ориентированными и не привязанными к конкретной базе дынных, поскольку теперь сам Drupal генерирует синтаксис запроса. Задачею программиста остается лишь указать условия выборки. Эту статью я посвящаю анализу Database API, где приведу примеры как именно изменилось “общение” с БД.
Полная статья »
Источник: http://www.drupal.ru/node/64860
WordPress 3.2 выйдет совсем скоро, и мы хотим, чтобы вы были готовы! Обратите внимание: в новой версии изменились минимальные требования.
PHP и MySQL
Версия 3.2 требует PHP 5.2.4 и MySQL 5.0. Согласно нашему прошлогоднему исследованию, процент пользователей со старыми версиями PHP и MySQL относительно мал. Но когда речь идёт о более чем 45 миллионах пользователей, даже небольшой процент может означать огромное число людей. Не дайте застать себя врасплох — перед обновлением убедитесь, что на вашем сервере установлены подходящие версии PHP и MySQL.
Войдите в панель управления хостингом и убедитесь, что там доступны PHP 5.2.4 или выше и MySQL 5.0 или выше. Большинство хостинг-провайдеров уже предлагают эти или более свежие версии по умолчанию, но есть и исключения. Если у вас используется старая версия, в панели должна быть возможность переключиться на новую.
Если вы не знаете, как найти в панели управления хостингом эту информацию или даже как туда попасть, не переживайте. Узнать, готовы ли вы к версии 3.2, можно с помощью плагина Health Check. Перейдите на страницу «Плагины» → «Добавить новый» и сделайте поиск по словам «health check» — плагин должен появиться в первой строке. Установите его, активируйте, и он покажет, есть ли необходимость в обновлении.
Если вам всё равно нужна помощь, напишите в службу поддержки хостинг-провайдера письмо с подобной просьбой:
Добрый день. На вашем хостинге расположен мой сайт [site.ru], который работает под управлением системы WordPress. Её минимальные требования повысились до PHP 5.2.4 и MySQL 5.0, и я хочу узнать, соответствует ли мой сайт этим требованиям. Если сейчас у меня используется старая версия PHP или MySQL, можете ли вы обновить её или рассказать мне, как это сделать? Большое спасибо!
Если ваш хостинг-провайдер ответит, что такой возможности нет, — вероятно, пришло время выбрать другой хостинг.
IE6 и устаревшие браузеры
В версии 3.2 мы также отказались от поддержки Internet Explorer 6, устаревшего 10-летнего браузера, который даже сама Microsoft уже готова забыть. Если вы откроете консоль через устаревший браузер, мы сообщим вам об этом. Почему это важно? Потому что веб-технологии развиваются, а с ними и WordPress, ведь его функции опираются на новые возможности. Если вы используете устаревший браузер, то впечатление от работы с WordPress будет неполным.
Если ваш браузер устарел, вы увидите в консоли симпатичный оранжевый блок с сообщением о новой версии (который, конечно, можно убрать). Но если вы используете IE6, то блок будет красного цвета, а сама панель управления не будет корректно работать. Если вы застряли на IE6, потому что компьютер принадлежит компании, библиотеке, школе и т.п., и вы не можете обновить браузер, попробуйте написать письмо вашему системному администратору:
Добрый день. На компьютере, за которым я работаю в [местонахождение компьютера], установлен устаревший браузер. Internet Explorer 6 был создан 10 лет назад, до появления современных веб-стандартов, и он не поддерживает современные веб-приложения. Всё больше сайтов и приложений отказываются от поддержки IE6, и среди них новая версия WordPress. Даже компания Microsoft, создавшая IE6, считает дни до его исчезновения (см. http://www.ie6countdown.com/). Можете ли вы установить на имеющиеся компьютеры свежую версию IE или какой-нибудь другой современный браузер (см. http://browsehappy.com)? Большое спасибо.
Добро пожаловать в будущее!
Источник: http://ru.wordpress.org/2011/07/%d0%b3%d0%be%d1%82%d0%be%d0%b2%d1%8b-%d0%bb%d0%b8-%d0%b2%d1%8b-%d0%ba-wordpress-3-2/
Всем привет,
была нужда сделать в таксономии базу всех регионов и городов.
Взял Классификатор адресов России (КЛАДР) здесь и сделал.
Выглядит примерно так – [img]
Использование:
Устанавливаем
Выбираем куда заливать /admin/settings/kladr
Нажимаем кнопку LOAD /admin/build/kladr , если не всё заливается сразу (там 200000 строк), нажимаем ещё раз
Если решили заливать в другой vocablary:
Создаем или Выбираем куда заливать /admin/settings/kladr
Нажимаем кнопку “Начать загрузку сначала”
Нажимаем кнопку LOAD /admin/build/kladr , если не всё заливается сразу (там 200000 строк), нажимаем ещё раз
Теперь подробнее:
Требуется “extension=dbase.so”
Вставляет два уровня терминов, первый – level1 из KLADR.DBF, второй населенные пункты от туда же.
Использует Batch API (Загрузку базы можно прерывать)
Версия 0.1
Возможны планы развития: интеграция с http://drupal.org/project/location , http://drupal.org/project/addresses и т.п.
Ну, и как обычно, disclaimer, используйте только на Ваш страх и риск.
Прикрепленный файл
Размер
drupal-kladr.png
543.36 кб
Источник: http://www.drupal.ru/node/64769