Впечатления от второго Drupal Cafe в Академпарке, Новосибирск

Прислано: wiw

сб, 31/03/2012 - 15:00

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

[Решено]Вывод одного изображения из поля cck

Прислано: wiw

вс, 04/12/2011 - 15:34

Есть cck поле, Тип "Изображение", может содержать много изображений. По умолчанию, через это поле выводятся все загруженные изображения. Но это не комильфо. Допустим надо вывести только первое изображение. В drupal6 это решалось простым кодом:
<?php print $node->field_canvas[0]['view']; ?>

В drupal7 похоже всё только усложнили...

Код
<?php print render($content['field_canvas']); ?>
и
<?php print render($content['#children']); ?> выводит все изображения загруженное в поле field_canvas.

Если же написать <?php print $node->field_canvas['und'][0]['uri']); ?> то мы получим uri - внутреннюю ссылку на файл, используя функцию image_style_url, которая преобразует uri в нормальную ссылку мы можем вставить изображение в ноду. Вот как это получилось у меня:

<?php <div class="field field-name-field-canvas field type-image field-label-hidden">
  <
div class="field_items">
    <
div class="field-item <?php print $zebra; ?>">
      <
a href="<?php print image_style_url('large', $node->field_canvas['und'][0]['uri']); ?>" rel="lightbox" class="lightbox-processed">
        <
img typeof="foaf:Image" src="<?php print image_style_url('medium', $node->field_canvas['und'][0]['uri']); ?>">
      </
a>
    </
div>
  </
div>
</
div?>

Жуткий говнокод, но он частично работает. Не работает почему то lightbox, хотя rel="lightbox" стоит.

Вывод содержимого cck поля программно

Прислано: wiw

пн, 28/11/2011 - 11:12

Другие статьи по теме:

У вас возникла ситуация, что нужно в шаблоне ноды вывести содержимое определённого cck поля? В drupal 6 вы могли это сделать следующим кодом:

<?php print $node->field_name[0]['view']; ?>

На самом деле этот код не всегда работает, особенно если у вас Drupal 7.

Для получения последовательности значений cck поля можно воспользоваться функцией print_r

<?php print print_r($node->field_name); ?>

Полученную строку можно уже раздербанить до содержимого поля:

<?php print $node->field_name['und'][0]['value']; ?>

Надеюсь, что этот совет кому либо пригодится.

Форма заказа для drupal7. Шаблоны tpl.php

Прислано: wiw

вс, 20/11/2011 - 07:02

Цель: На сайте художницы необходимо прикрепить кнопку заказа работы, по которой покупатель/заказчик может отправить свое пожелание художнице.

Задачи: Использовать модуль webform и отдельный тип материала.

Решение: Для работ художницы сделан тип материала "Портфолио" (nportfolio) со следующими полями: title, body, image, tag, sale. Поле sale нужно для указания возможности продажи работы, и содержит варианты ответов "Да" "Нет". Машинное имя field_sale.

Для создания формы заказа воспользовался мануалом на my.wcult.net. Вкратце там делается следующее:

Создаётся форма заказа (имя, фамилия, почта, телефон, пожелания) с nid=26. Затем в файле темы делают шаблон для материалов типа портфолио:
node--nportfolio.tpl.php. В шаблоне после $content вставляют следующий код (для D6)
<?php if ($page) { ?><div>&raquo; <?php print l(t(‘Order’), ‘node/26′, array(‘query’=>array(‘product’=>$node->nid))) ?></div><?php }; ?>
для отображения в портфолио кнопки заказа которая будет передавать ссылку на портфолио форме заказа.

Затем в форме заказа добавляют поле с кодом (D6):
<?php if($node=node_load($_GET['product'])) print <span>’ t(‘Product’) . : </span>’ l($node->title‘node/.$node->nid?>
для вывода заголовка ноды в форме заказа.

И ещё одно поле, содержимое которого отсылается художнице: http://имя-вашего-сайта.ru/node/%request[product]

Cron не работает - опять :(

Прислано: wiw

вт, 30/11/2010 - 16:01

Другие статьи по теме:

Есть сервер, на нем дрюпал из репзиториев. Версия на данный момент 6.18
Уже второй месяц не работает крон. Вместе с админом мы бились над этой проблемой и не смогли её решить. Итак:
по команде wget site_name.ru/cron.php получаю 200 - все OK
через браузер по тому же адресу - все OK
дергаю через админку /admin/reports/status/run-cron - Cron запущен успешно.
Но тем не менее в /admin/reports/status получаю:
Выполнение регулярных процедур (задачи cron) Последний запуск 10 недель 1 день назад
В логах только это:

Тип	cron
Дата	30 ноября 2010
Пользователь	admin
Месторасположение	http://site_name/admin/reports/status/run-cron
Источник отсылки	http://site_name/admin/reports/status
Сообщение	Выполнение регулярных процедур (cron) окончено.
Важность	замечание
Имя хоста	ip_hostname

Что с ним делать? И как его заставить работать?

[Решено] Формирование цены товара и настройка запасов в Ubercart

Прислано: wiw

вс, 29/11/2009 - 18:06

Приветствую!
Имеется несколько проблем при разработке магазина, в решении которых я прошу у вас помощи.

  1. Скидки или Discounts
    Идет разработка оптового магазина, в котором цена формируется наценкой на предыдущую цену. То есть имеется закупочная цена 100р, цена для продажи при сумме заказа более 35000 = 120р (то есть +20%), цена продажи при сумме заказа более 5000 = 156р (то есть +30%), цена продажи при сумме заказа менее 5000 = 184р (то есть +18%).
    Поскольку модули Скидок "работают" только в обратном направлении, то подскажите модули наценок, то есть возможность задавать изменение цены в зависимости от суммы заказа и закупочной цены.
  2. Запасы или Stock
    Так как магазин оптовый, то совершенно необходимы две вещи:
    • Возможность отобразить количество товара на складе
    • Запрет покупки товара более количества имеющегося на складе

    За первый пункт отвечает функция uc_stock_level, но непонятно как вывести $sku товара автоматически?
    По поводу второго пункта не нашел информации - есть ли модуль реализующий эту возможность?

Проблема с контекстом Sape

Прислано: wiw

пн, 06/07/2009 - 06:11

Имеется следующая проблема. У меня установлен модуль Sape для шестого дрюпала, имею странную особенность что система Sape индексирует ссылки на страницах, но не может проиндексировать контекстные ссылки. Обрамление содержимого в код сапы не помогает.

Есть ли у кого мысли по этому поводу?

Выбор модуля для оптового магазина

Прислано: wiw

чт, 02/07/2009 - 17:02

Другие статьи по теме:

На основе 6-го Дрюпала собираюсь сделать электронный оптовый магазин. В качестве основы выбрал Ubercart и пытался построить оптовый магазин. Что мне в нем не хватает и что я хотел бы узнать от вас?
1. Отображение есть или нет товара на складе и в каком количестве.
2. Импорт/экспорт прайс-листа в формате excel или csv.
3. Расчёт стоимости товара в зависимости от конечной суммы заказа или, если перефразировать, различная скидка в зависимости от конечной суммы.

Позволяет ли e-Commerce или Ubercart + дополнительные модули реализовывать эти требования. Если да, то какие модули?

Темизация imagefield

Прислано: wiw

сб, 02/05/2009 - 08:28

Другие статьи по теме:

Имею материал в котором есть обязательное изображение в начале, а в конце ноды таблично представлено любое количество изображений. (Пример). Ниже представлен код, который отвечает за вывод такой ноды (модуль  contemplate)
За вывод изображений отвечает модуль  imagefield+ imagecache

<div class="news">
  <div class="field-items">
    <div class="field-item odd">
      <?php print $node->field_foto[0]['view'] ?> <!-- Вывод самого первого изображения -->
    </div><p class="description"><?php print $node->field_foto[0]['data']['description'] ?></p>
  </div> 
 <?php print $node->content['body']['#value'] ?>
</div>
<div class="image-sample"> <!-- Вывод всех изображений -->
  <?php print $node->content['field_foto']['field']['#children'] ?>
</div>

Но есть затруднение, если в конце ноды я вывожу все изображения, то соответственно первое тоже выводится. По идее нужен php код, который должен обработать вывод и исключить изображение с переменной field_foto[0]

Только как это сделать, не знаю. Могли бы вы подсказать как это можно реализовать, я в php ни бум бум...

Производительность сайта на Drupal6

Прислано: wiw

пн, 20/04/2009 - 09:10

Имеется два сайта на Drupal6. Cellbiol.ru и nro-shr.ru.
Посещаемость на первом очень невысокая, на втором нулевая (сайт новый). Тема оформления на первом сайте переделанный немного easybreeze, на втором сайте - artistC01 с изменёнными цветами. Включено нормальное кэширование, сжатие блоков, CSS, JS.
Оба сайта хостятся на Majordomo. 90 Мб ограничение памяти, 15% нагрузка на процессор. Devel показал загрузку главной страницы от 3000 до 12000 ms на обоих сайтах.
Модуль Update отключен, работают модули pathauto, cck, imagecache, imagefield и многое другое.

Посоветуйте, что можно сделать для ускорения работы сайта? Есть ли возможность как то протестировать хостеров на производительность, конкретного сайта и сравнить их?

Проблема с url redirects

Прислано: wiw

вт, 16/12/2008 - 10:49

Другие статьи по теме:

Суть в следующем - Drupal 6.8 стоит модуль Path Redirect (6.x-1.x-dev), с помощью этого замечательного модуля я перенаправляю пользователей со старых страниц сайта на их обновлённые версии. Пользуюсь при этом 301 редиректом. Ранее на Drupal 5.x я также пользовался этим модулем и создал несколько десятков правил переадресации. Сейчас же проблема заключается в том что существующие редиректы я редактировать могу, но записи новых не происходит.
Поэтому приходится заходить в phpMyAdmin и добавлять записи вручную - это в принципе не так страшно, если бы не было так неудобно - для простого действия приходится открывать кучу вкладок и программ.

Подскажите пожалуйста в чём может быть причина такого поведения модуля?

Редактирование версий содержимого сайта

Прислано: wiw

пт, 28/11/2008 - 23:15

Другие статьи по теме:

Как известно при настройках типов материалов можно выбрать - создавать новую версию при изменениях.
Так вот этих редакций и изменений накопилось уже столько, что база данных неприлично большая для моего сайта.
Поиском по drupal.ru/org ничего найти не смог...
Существует ли модуль или решение которое позволяет удалить лишние редакции?

Техзадание: создание темы для сайта

Прислано: wiw

пт, 17/10/2008 - 16:37

Другие статьи по теме:

Имеется сайт биологической направленности, который позиционируется как научно-образовательная база данных. На данный момент сайт 100% готов, но есть косяки с кросбраузерностью и темизацией, а потому есть желание изменить тему сайта, сделать её более дружественной к пользователям. В связи с этим подскажите примерную стоимость создания темы (диапазон, точные значения будут понятны после подробного техзадания), по пунктам:

- Разработка макета дизайна
(можно даже на основе текущей темы, только изменив ёе таким образом чтобы использовалось всё доступное пространство + если есть идеи, то модернизация и создание логотипа)

- Вёрстка html/xml на div
(опять же если потребуется, если тема будет создаваться с нуля)

- Портирование под Drupal6
(если потребуется)

- Темизация отдельных элементов (которые потребуется - views, поиск, регистрация, профили пользователей)
(в том случае если необходимо будет поменять существующую тему)

Ограничение сверху пока называть не буду, чтобы оценки были как можно более объективными и без раскатывания губ.

Дополнительное условие: желательно, если кто возьмётся, чтобы был разработчик из Новосибирска.

Жду ваших примерных оценок.

Проблема с видимостью кнопок BUEditor в Drupal 6.4

Прислано: wiw

ср, 24/09/2008 - 14:36

Другие статьи по теме:

Есть проблема с работой этого замечательного редактора в Drupal 6.4
Проблем всего две:
Первая - для ролей user1, admin и editor у меня назначен расширенный редактор созданный на основе редактора по умолчанию Default6.x
Так вот, вышеперечисленные роли не имеют возможности пользоваться редактором при комментировании.
Разрешения установлены следующие:

node/add/*
node/reviews/*
node/*/edit
comment/reply/*
comment/*
forum/*
book/*/*/*
blogs/*/*
blogs/*

То есть возможность пользоваться редактором при комментировании появляется только тогда когда нажимаешь на ссылку "добавить комментарий" - правило comment/reply/* в нашем случае. Как ни бьюсь все никак не удаётся его заставить показываться над формой комментариев на моих страницах.
При этом простые пользователи, которым назначен редактор Default6.x - такую возможность имеют. Разрешения у них следующие:
node/*
comment/*

И запрещено выводится в текстовом поле "edit-log"
Такая вот непонятная проблема.

И второй вопрос - у меня стоит связка Bueditor + IMCE и соответственно когда я использую браузер Opera то при попытке выбрать изображение в панели IMCE данное изображение просто открывается в новом окне - как бы для просмотра. Хотя должна вставляться ссылка в сам редактор, что и осуществляется в других браузерах. Оперу скинуть со счетов я не могу, ей пользуется около 20% моих пользователей.

Обновление Drupal 5.10 до Drupal 6.4 Проблема вторая

Прислано: wiw

пт, 12/09/2008 - 19:19

Другие статьи по теме:

В продолжении вот этой записи

Обновление проходит с ошибками так что это приводит позже к тому что рушится БД при включении некоторых модулей. В частности при включении модуля Google CSE - сайт уходит в белый экран.

На "Обзоре" выдаёт такую ошибку

user warning: Table 'cache_block' already exists query: CREATE TABLE cache_block ( `cid` VARCHAR(255) NOT NULL DEFAULT '', `data` LONGBLOB DEFAULT NULL, `expire` INT NOT NULL DEFAULT 0, `created` INT NOT NULL DEFAULT 0, `headers` TEXT DEFAULT NULL, `serialized` SMALLINT NOT NULL DEFAULT 0, PRIMARY KEY (cid), INDEX expire (expire) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ in z:\home\cellbiol.ru\www\includes\database.inc on line 514.

Во время обновление вылазит следующее:

user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ORDER BY fit DESC LIMIT 0, 1' at line 1 query: SELECT * FROM menu_router WHERE path IN () ORDER BY fit DESC LIMIT 0, 1 in z:\home\cellbiol.ru\www\includes\menu.inc on line 315.
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ORDER BY fit DESC LIMIT 0, 1' at line 1 query: SELECT * FROM menu_router WHERE path IN () ORDER BY fit DESC LIMIT 0, 1 in z:\home\cellbiol.ru\www\includes\menu.inc on line 315.

RSS-материал