Блог пользователя - wiw

Сайт-портал для художников

Аватар пользователя wiw

Предыстория.
Давно я уже не занимался разработкой на Drupal и потому немного отстал от жизни, а посему прошу помощи в подборе модулей и решения следующей задачи.

История.
Имеется сайт некоего союза художников, который я делал на D6 уже года так три назад. Потребовалось его полностью обновить и переработать в соответствии с пожеланиями заказчика. А пожелания следующие:

0 Спасибо

И опять HEUR:Trojan.Script.Generic

Аватар пользователя wiw

И опять HEUR:Trojan.Script.Generic этот дурацкий вирус!

Есть сайт cellbiol.ru с под-доменом ekvat.cellbiol.ru. Однажды за ходя на эти сайты я обнаружил что Касперский ругается на вышеописанный вирус. После недельного бодания с хостером и ковыряния в мозгах обнаружил уязвимость (вирус загрузился с картинки в новости, которая загружалась со стороннего сайта) - перезалил картинку на свой сайт, почистил htaccess, почистил папки js, css, languages. Вроде бы можно было спать спокойно. Хрен! (sorry)

Недавно начал бродить по внутренним страницам сайта, и обнаружил, что на некоторые страницы Касперский ругается, некоторые пропускает.

Примеры страниц (ВНИМАНИЕ! ЗАХОДИТЬ С ВКЛЮЧЕННЫМ КАСПЕРСКИМ И/ИЛИ FIREFOX + NOSCRIPT):

0 Спасибо

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

Аватар пользователя wiw

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

0 Спасибо

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

Аватар пользователя wiw

Есть 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" стоит.

0 Спасибо

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

Аватар пользователя wiw

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

0 Спасибо

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

Аватар пользователя wiw

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

Задачи: Использовать модуль 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]

0 Спасибо

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

Аватар пользователя wiw

Есть сервер, на нем дрюпал из репзиториев. Версия на данный момент 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

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

0 Спасибо

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

Аватар пользователя wiw

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

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

    • Возможность отобразить количество товара на складе
    • Запрет покупки товара более количества имеющегося на складе

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

0 Спасибо

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

Аватар пользователя wiw

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

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

0 Спасибо

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

Аватар пользователя wiw

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

0 Спасибо

Темизация imagefield

Аватар пользователя wiw

Имею материал в котором есть обязательное изображение в начале, а в конце ноды таблично представлено любое количество изображений. (Пример). Ниже представлен код, который отвечает за вывод такой ноды (модуль  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 ни бум бум...

0 Спасибо

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

Аватар пользователя wiw

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

0 Спасибо

Проблема с url redirects

Аватар пользователя wiw

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

0 Спасибо

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

Аватар пользователя wiw

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

0 Спасибо

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

Аватар пользователя wiw

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

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

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

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

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

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

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

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

0 Спасибо

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

Аватар пользователя wiw

Есть проблема с работой этого замечательного редактора в 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% моих пользователей.

0 Спасибо

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

Аватар пользователя wiw

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

Обновление проходит с ошибками так что это приводит позже к тому что рушится БД при включении некоторых модулей. В частности при включении модуля 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.
0 Спасибо

Обновление Drupal 5.10 до Drupal 6.4

Аватар пользователя wiw

Решил в качестве теста обновить свой сайт до 6,4 версии с 5,10.
Разумеется выполнял все эксперименты на localhost, сделал бэкап БД и всего сайта.
Обновление начал как рекомендовано в файле Upgrade.txt
-Отключил все модули кроме тех которые относятся к ядру.
-Переставил тему оформления на Garland
-старый сайт полностью удалил, и скопировал файлы Drupal 6.4
-каталог files скопировал в sites/all
-в sites/all/themes скопировал тему оформления Garland под Drupal6
-в sites/all/modules скопировал все модули под шестую версию
-в sites/default в файле settings.php прописал доступ к базе данных

$db_url = 'mysql://root@localhost/drupal_cell';
$db_prefix = '';

-файлы .htaccess и robots.txt не менял

запускаю /update.php - и вижу белое поле...

Танцы с бубном не помогли. Может вы мне поможете?!

0 Спасибо

Отслеживание изменений на сайте

Аватар пользователя wiw

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

0 Спасибо

Миграция с 5.х на 6.3

Аватар пользователя wiw

Тему которую я хочу поднять далеко не новая, но в есть кое-какие аспекты которые я хотел бы прояснить.

Когда я начал разрабатывать свой сайт то делал его на основе пятой версии дрюпала и не особо задумывался над "зелёностью" самого дрюпала. Сейчас же когда есть уже шестёрка и где-то маячит семёрка, возникла проблема что некоторые модули которые мне необходимы не портированы под шестую версию.

Я разделил их на обязательные (то есть без которых жизнь проекта усложнится) и необязательные которые не повлияют особо на проект.

Из НЕобязательных
Block Cache - без этого модуля можно попробовать и обойтись но может быть в шестом дрюпале есть свои средства кеширования блоков

0 Спасибо