Впечатления от второго 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>» <?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
Приветствую!
Имеется несколько проблем при разработке магазина, в решении которых я прошу у вас помощи.
- Скидки или Discounts
Идет разработка оптового магазина, в котором цена формируется наценкой на предыдущую цену. То есть имеется закупочная цена 100р, цена для продажи при сумме заказа более 35000 = 120р (то есть +20%), цена продажи при сумме заказа более 5000 = 156р (то есть +30%), цена продажи при сумме заказа менее 5000 = 184р (то есть +18%).
Поскольку модули Скидок "работают" только в обратном направлении, то подскажите модули наценок, то есть возможность задавать изменение цены в зависимости от суммы заказа и закупочной цены. - Запасы или 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.
- Для комментирования войдите или зарегистрируйтесь
