Предлагаю решение

РЕШЕНО! Вывод ссылки добавить в друзья в кастомном профиле для модуля User Relationship

27 апреля 2011 в 10:53

Год искал решение и кое как нашел доделал. Но он с косяками и кривое. Может кто-нибудь поможет довести до ума.

<?php
  
// check if friends code

    

$account user_load(array('uid' => $node->uid));
    
$owner $node->name;

    

$current_relationships user_relationships_load(array('between' => array($user->uidarg(1))), array('sort' => 'rtid'));
    
$rid $current_relationships['1']['0']->rid;

       
    

//if users are friends and relationship has been approved
    
     
if ($relationships user_relationships_load(array('between' => array($user->uid$uid),'approved' => 1))) {

            

// set a value of friends to 1 to allow content to be displayed below.
            
$friends 1;

 if (

$relationships user_relationships_load(array('between' => array($user->uid$uid),'approved' => 0))) {
            
// set a value of friends to 1 to allow content to be displayed below.
            
$friends 0;
   

       
        } elseif(

$user->uid != $uid) {

       
             print 

"<a href=/user/" $user->uid "/relationships/" $rid "/remove?destination=user/$uid/ class=\"user_relationships_popup_link\">".t('Remove ' $owner ' as Friend')." </a>";
         
              
$friends 1;

       
        } else {
           

                

$friends 0;
    }

        }

     elseif (

$user->uid != $uid) {
       
               
         
              
$friends 0;
?>

[решено] Список нод, прикрепленный к ноде, с теми же терминами

24 апреля 2011 в 14:45

В этом посте была поставлена интересная и полезная задача:
- на странице ноды вывести список заголовков нод, имеющих тот же термин таксономии

С ходу возникает такой пример использования:
есть каталог статей, организованный словарем таксономии в иерархию:

политика
--внешняя
--внутренняя
экономика
культура
ну и.т.

нужно выводить после статьи список статей (их заголовки и м.б. анонсы) на ту же тематику.

Для усложнения задачи будем помнить, что:
- нода может быть привязана к нескольким словарям, некоторые из которых выполняют служебные функции, и по их терминам список строить не надо
- нода может быть привязана одновременно к нескольким терминам одного словаря (статья имеет тэги "политика" и "экономика")

Итак, создаем новое представление:
Представления > добавить ( /admin/build/views/add )
Имя представления - по вкусу, тип - Материал

Переходим на страницу редактирования представления

Взаимосвязи:
добавляем новую связь Таксономия: Связанные термины
(та, которая первая в списке, у нее описание "Relate nodes to taxonomy terms, specifiying which vocabulary or vocabularies to use...")
Включаем чекбокс "Эта связь обязательна", дальше идет список словарей, он в нашем случае не работает, чекбоксы можно не трогать

добавляем новую связь Таксономия: Материал
Выбираем Связь: термин (или какую метку вы указали первой связи)
Не использовать связь
Включаем чекбокс "Эта связь обязательна"

Аргументы:
добавляем Материал: Nid

Компактная галерея для Drupal 7

23 апреля 2011 в 23:37

Пытаюсь перевести свой сайт на новую версию любимой CMS. Ну и в связи с этим сделал обзор модулей для обеспечения красивой и эффектной галереи.
Дошел до модуля galleryformatter. И решил на нем и остановиться.

Будущее Drupal разработки на git

21 апреля 2011 в 2:35

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

15-ти минутный подкаст lullabot.com излагает основные возможности и области применения персональных "песочниц" кода.

Делаем фотогаллерею, используюя CCK, ImageField, ImageCache и Highslide

20 апреля 2011 в 9:20

Постановка задачи:
1) В ноде нужно сделать вывод превьюшек картинок в каком-либо упорядоченном виде, например в виде таблицы;
2) На увеличенной версии картинки должно находится ее полноценное текстовое описание, включающее теги HTML.

Решение:
1) Ставим модули CCK, ImageField, ImageField Extended, ImageCache, Highslide;
2) В настройках ImageField Extended добавляем поле desc|Описание;
3) Создаем в ноде поле field_photos типа File и в его настройках в секции Описание text settings ставим галочку Enable custom Описание text. Также выбираем значение Text field style, например Formatted multi-line text;
4) Темизируем вывод ССK ImageField для поля field_photos, используя файл c именем content-field-field_photos.tpl.php. Незабудьте также скопировать в корень вашей темы файл content-field.tpl.php.из папки theme модуля CCK;
5) Настраиваем Highslide. Во вкладке Highslide - Imagecache/CCK редактируем формат defaulf указываем соответствующие форматы для превьшек и полного размера. Лучше выбрать форматы Highslide. В поле Caption contents выбираем любое значение - далее будет понятно почему;
6) Для поля field_photos в настройках ноды в разделе Display fields указываем вывод Highslide Default(Zooms)
7) Немного подпиливаем модуль Highslide. Открываем файл highslide.module и изменяем в строках с 381 по 387
с

if ($formatter['caption'] != 'none') {
if (isset($formatter['caption_field']) && $formatter['caption_field'] != 'default') {
$caption_content = _highslide_caption_content($node, $formatter['caption_field']);
}

[РЕШЕНО] Как добавить что-то в переменную $styles из своего модуля?

19 апреля 2011 в 19:57

UPD:
А вот-так:

<?php function mymodule_preprocess(&$variables$hook)
{
  if(
$variables['styles'])
    
$styles.='<style>.class{color:#ecf}</style>';
  else
    
$styles='<style>.class{color:#ecf}</style>';
}
?>

И незабываем очистить кеш.
PS: hook_preprocess() (или как вариант через drupal_set_html_head()).

PS2: в хуке hook_preprocess(&$variables, $hook) элементы массива $variables - это те переменные, которые используются для темизации в page.tpl.php.

UPD (2011.05.11)
У меня на реальном сервере почему-то этот хук (hook_preprocess) адекватно работает только из template.php, а если его запустить из модуля, то при отправке формы страница (в которую форма слалась) не отображается (просто белая), но сервер дает код 200.

Я люблю Drupal 7 (создаем кататалог для drupal commerce)

18 апреля 2011 в 20:58

Поставил drupal commerce, потыкал несколько дней, понял - весч! Все круто, все легко и гибко настраивается, легко имортируется из csv и xml при помощи модуля feeds. Вообщем то что надо! за одним НО, как мать его создать каталог?

Пробовал ставить разные модули, искать решение на d.org - ничего толового не нашел, побился головой об стену, и полез во .... views

It Patrol всегда на страже порядка

17 апреля 2011 в 11:53

До недавнего времени у меня не было ни одного сайта на drupal. Слышал много отзывов в интернете о том, что CMS эта очень требовательна к ресурсам и хостинг для неё нужен дорогой. Также в drupal-сообществе (на этом форуме) существует очень много хороших отзывов о хостинге It Patrol. Эти отзывы и способствовали моему решению разместить свой первый drupal-сайт на этом хостиге. И что в итоге?

В итоге я удивлён скоростью работы моего сайта! Сайт у меня на данный момент (пока что...) хоть и совсем, можно сказать, не посещаемый, вывод сделал по скорости переключения страниц в администраторском разделе. Она даже быстрее, чем на моём локальном компьютере! Я не знаю как это можно объяснить... Казалось бы так не должно быть... Как это не логично чтоли... Но этот так. Скорость интернета у меня 6 мегабит. Переключаюсь между страницами "настройки" - "модули" - "структура" раз по 5 на хостинге и на моём локальном компе, также пробую обновлять страницу модулей - итог - на хостинге это делается быстрее. Тут дело не в кэше, т.к. страница со списком модулей не должна вроде кешироваться... , а обновление страницы явно заставляет генерировать новую страницу... Компьютер у меня новый, хоть и не самый крутой... Sempron 2.80 GHz, 2 Гб оперативки, жёсткий 320 Гб Sata-2, дефрагментированный, ось - Windows 7 Ultimate SP1....

Поддержка вообще супер. Отвечают даже на те вопросы, на которые в принципе и не должны отвечать. Ответ приходит быстро (в основном минут за 5-10, иногда пол часа ждать приходилось...).

всплывающая форма входа на highslide, небольшие изменения на страницах входа\регистрации\восстановления пароля

16 апреля 2011 в 16:39

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

первая задача которую передо мной поставили, точнее первая которую я решил тут описать решение.

после установки модуля highslide для просмотра фотографий у меня в меню навигации появился пункт войти, при нажатии на который появляется во всплывающем окне поверх сайта форма входа (примерно такое же видел на сайтах укоза) - она понравилась заказчику, но у него тут появилась другая потребность. чтоб на этой форме входа были ещё и две ссылки на создания учётной записи и на восстановления пароля. и заказчику ненравится внешний вид страниц регистрации\входа\восстановления_пароля , точнее ему не нравится вверху 3 вкладки с надписями регистрация\вход\восстановление_пароля.

убираем 3 вкладки ...

1. открываем фаил template.php (находим его в папке с вашей темой) и в нём добавляем следующие строчки (они перенаправляют нас на шаблон page_user_login.tpl.php при запросе страниц входа\регистрации\вост.пароля и описывают заголовки этих страниц)

function phptemplate_preprocess_page(&$vars) {
global $user;
    if(arg(0) == 'user' && (arg(1) == 'login' || arg(1) == 'register' || arg(1) == 'password')){
        if ($user->uid == 0) {                                                                    
          $vars['template_files']['0'] = 'page_user_login';                                      
                            }
        switch (arg(1)) {
            case 'login':

Потестим кнопочку? (Простой вариант интеграции elFinder в CKEditor)

15 апреля 2011 в 23:51

UPD. Как выяснилось из комментариев, модуль ckeditor с версии 6.x-1.3 официально поддерживает elfinder. Таким образом, всё написанное относится к возможному способу вывода "быстрой" кнопки elfinder'a на тулбар.

UPD2(08/05/2011). Плагин доработан до автоматического определения типа файла, возвращаемого elFinder

Нужен был файлменеджер/мультизагрузчик для редактора CKeditor (именно для drupal-модуля).

Я обычно использую IMCE и стал искать дополнения к IMCE, поддерживающие мультизагрузку.
Нашёл только IMCE Swfupload, но он ещё в бета-стадии и требует установки дополнительных модулей. В общем, не устроил.

Зато как-то неожиданно открыл для себя elFinder.

Менеджер показался очень удобным (на мой взгляд, даже получше IMCE).
Мультизагрузка, drag&drop, создание-удаление директорий, файлов. Автоматические тамбы картинок, ну и в целом как-то юзабельнее выглядит.

CKEditor (по крайней мере 6.x-1.3) позволяет интегрировать IMCE как "быструю" кнопку на тулбар (отдельно от диалога выбора ссылки/картинки/файла). Просто нужно раскомментировать соответствующие определения в ckeditor.config.js и убедиться что присутствует папка imce в /modules/ckeditor/plugins

Я стырил это решение и наскоро адаптировал его под elFinder в виде скромного плагина-кнопки (elFinder).
Результат: на тулбаре имеется самодельная кнопочка, по клику на которой сразу открывается окно этого файлового менеджера (т.е. минуя диалог выбора адреса).