Видимость таблицы views для Гостей + темизация кнопки add to cart

Главные вкладки

Аватар пользователя geotype geotype 24 октября 2013 в 10:14

Еще раз всем добрый день.
Возникли следующие два вопроса по Друпал Коммерс:

1. При создании перечня товаров через views и использования в ней reference_product на продукт комерса, итоговая таблица не видна для неавторизованных пользователей. Из решений я нашел предложения поиграться с правами неавторизованных пользователей или, насколько я понял, что-то наколдовать во views с SQL запросом. Оба решения тем не менее предлагаются на свой страх и риск и не являются стопроцентным решением. На официальном форуме данная проблема обсуждается в 2011 года и до сих пор не решена.

Поэтому у меня вопрос,поделитесь пожалуйста, как вы решаете данную проблему, ведь все новые пользователи заходящие на сайт по умолчанию гости, а весь товар обычно показывается изначально таблицей через модуль views. Я честно говоря удивлен что такая фундаментальная проблема не была решена за два года :(. И тем не менее модуль commerce развивается и куча сайтов на нем работают не имея данной проблемы, как её обходят?

2. Второй вопрос касательно замены кнопки add to cart на картинку либо же изменение ее цвета/размера. Также, куча сайтов на Друпал которые я видел эту проблему решили (правда некоторые на Уберкарте), но в интернете активного обсуждения нет. Из решений я находил предложения:

а) Добавить в css темы следующий код:

.node-add-to-cart
{
background: url("../images/(путь к картинке).png") no-repeat scroll center top transparent!important;
border: none!important;
display: block!important;
height: 36px!important;
width: 97px!important;
text-indent: -9999px!important;
}

тут хотел уточнить, в какой css файл темы я должен этот код добавить, добавлял в основные, ничего не менялось.

б) на офф форуме прелагали следующий код:

<?php/*** Implements hook_form_FORMID_alter() to change the Add to Cart button to an image.*/function mymodule_form_commerce_cart_add_to_cart_form_alter(&$form, &$form_state) { $line_item = $form_state['line_item']; $product = commerce_product_load($line_item->commerce_product[LANGUAGE_NONE][0]['product_id']); if ($product->type == 'product') { $form['submit'] = array( '#type' => 'image_button', '#src' => drupal_get_path('module', 'mymodule') .'/addtocartimage.gif', '#weight' => 15, ); }}?>

Ссыдка на офф форум: http://www.drupalcommerce.org/comment/1994#comment-1994

как человек который пока далек от PHP тоже не понимаю, куда этот код вставлять.

В итоге, что бы вы посоветовали, какой спосооб лучше использовать и нет ли какого-нибудь пути для "чайников"?

Спасибо.

Комментарии

Аватар пользователя anton_k anton_k 16 ноября 2013 в 23:51

Насчет прав - я лично открыл доступ для анонима, пока работает. Кстати, тоже задавал этот вопрос не раз, - так никто и не ответил.
А насчет кнопки: не могу найти, как поменять текст (вместо "Добавить в корзину" написать, например, "Купить" или "Заказать").
З.Ы. с Друпалом тоже недавно.

Аватар пользователя geotype geotype 6 декабря 2013 в 15:36

Да, с первым пунктом я решил давать права на просмотр продуктов определенного типа. Вроде сам Друпал это делает для авторизованных пользователей, а мы просто расширяем эти права для гостей.

Касательно пункта два - вставлять надо в .css файл темы. Как правило есть первичный .css файл (часто называется style.css) ссылка на который прописывается в файле "Название темы.info" который лежит в корне темы. Иногда стили описаны в нем, а часто в нем содержатся только ссылки на прочие .css файлы уже которые содержат описание стилей. Обычно в базовых темах (ZEN, Adaptive theme) во всех папках, и в том числе со стилями лежит хороший Readme.txt файл где описана вся логика взаимодействия файлов. Можно также создать свой .css файл, но только не забыть указать на него ссылку.
Единственно надо верно определить класс кнопки, для этого можно использовать програмку FireBug и немного разбираться в стилях (хороший самоучитель есть на 3w.htmlbook.ru/css).

Касательно названия кнопки, я думаю можно просто прописать нужный тебе перевод. Не знаю где содержится название на английском "Add to cart" и как его поменять, мне думается надо лезть в настройки модуля. Но с помощью модуля перевода можно перевести фразу Add to cart как тебе нужно (правда может перевестись и не только на кнопке, тут надо быть аккуратным). Обычно в админке это /конфигурация/регион и языки/перевод интерфейса/переводы/