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

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

19 ноября 2015 в 13:02

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

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

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

24 января 2013 в 10:48

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

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

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

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

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

4 декабря 2011 в 19: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 поля программно

28 ноября 2011 в 15:12

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

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

20 ноября 2011 в 11: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 не работает - опять :(

30 ноября 2010 в 19: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

29 ноября 2009 в 21:06

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

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

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

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

6 июля 2009 в 10:11

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

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

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

2 июля 2009 в 21:02

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

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

20 апреля 2009 в 13: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

16 декабря 2008 в 13:49

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

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

29 ноября 2008 в 2:15

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

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

24 сентября 2008 в 18: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 Проблема вторая

12 сентября 2008 в 23: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.

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

11 сентября 2008 в 5:34

Решил в качестве теста обновить свой сайт до 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 - и вижу белое поле...

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

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

19 августа 2008 в 6:07

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

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

2 августа 2008 в 13:00

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

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

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

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

Подрисуночная подпись, fix для Эксплорера 6,0

15 февраля 2008 в 19:28

Здраствуйте, мне необходимо было сделать подрисуночную подпись которая располагалась бы справа или слева от рисунка. Я воспользовался советом на сайте htmlbook. И вставил следующий код в файл style.css своей темы (немного изменённая тема Garland):

.picFloatLeft {
 color: Black; /* Цвет подписи */
 padding: 10px; /* Поля вокруг содержимого */
 width: auto; /* Ширина блока */
 margin: 2% 2% 1% 2%;
 text-align: justify;
}
.picFloatLeft img {
 float: left; /* Обтекание по правому краю */
 margin-right: 15px; /* Расстояние между рисунком и текстом */
}  
.picFloatLeft p {

Проблема с измением логотипа

1 сентября 2007 в 19:35

Здраствуйте. Передо мной стоит задача Secret сменить формат файла логотипа получаемого по умолчанию на другой (с png на gif).
Поясню почему я не могу оставить png и почему я не могу это сделать через настройки темы.
1) Формат png безусловно хороший, но ЭТОТ.... эксплорер... некорректно обрабатывает этот файл - проще говоря фон логотипа не совпадает с фоном заголовка на котором находится (тема garland)

Проблема с доступом у незарегистрированных и авторизованных пользователей

30 августа 2007 в 21:05

Здраствуйте, подобная тема уже поднималась. Но решение которое там было принять мне не помогло.
Итак: тестирую сайт на локальной машине на denwer.
В настройках сайта: "Только администраторы могут создавать пользователей"; доступ к материалам сайта и доступ к видам views разрешён для всех.