Magento Forum

   
Page 1 of 2
Отображение атрибутов продукта только для некоторых (или одной) групп юзеров
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

Мне нужно иметь возможность указать для продукта атрибут (это, понятно, легко), который был бы виден лишь одной группе юзеров. Это технический атрибут, он не должен быть виден всем, а только тем, кому положено. smile
Идеи?

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Ты знаеш как узнать группу пользователя. Ну а дальше в чём проблема?

 
Magento Community Magento Community
Magento Community
Magento Community
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

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

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

что мешает рубить атрибуты в фориче?

 
Magento Community Magento Community
Magento Community
Magento Community
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

Хотя бы то, что я не программист.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Я тоже

 
Magento Community Magento Community
Magento Community
Magento Community
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

Уровень непрограммизма и/или программизма бывает разный.

В чем, кстати, отличие нашего форума от буржуйского - там не помещают постинги с фразой “что мешает сделать вот так”. Отвечу, что мешает - порой мешает откровенный затуп и нужен пинок, чтобы сдвинуться с места. Так что спасибо за пинок, я уже нашел место, куда вставить проверку, там элементарно все.

Только хаки все это - тут затычка, там заглушка. Хорошо хоть при апгрэйде не пропадет.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Ну если бы ты спросил а где это сделать\как это сделать, я бы написал. А ваще своеобразный способ благодарить за помощь

 
Magento Community Magento Community
Magento Community
Magento Community
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

Пинок, конечно, лучше, чем ничего, но есть более подходящие способы оказания помощи. Так что какой способ (своеобразный) - такая и благодарность (своеобразная).

 
Magento Community Magento Community
Magento Community
Magento Community
 
juvefan_vlz
Member
 
Total Posts:  32
Joined:  2008-11-03
 

mkII, был бы вам очень признателен, если бы вы хотя бы вкратце расписали решение данной задачи wink

 
Magento Community Magento Community
Magento Community
Magento Community
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

Попробую.

Итак, задача: нужно на странице отображения продукта выводить атрибут “is_this_user_fucking_idiot”, который будет виден только админу сайта. smile Атрибут должен выводиться в той же табличке, в которой выводятся все остальные атрибуты.

Идем в app\design\frontend\default\default\template\catalog\product\view\attributes.phtml и видим там такой код:

<?php
    $_helper 
$this->helper('catalog/output');
    
$_product $this->getProduct()
?>
<?php 
if($_additional $this->getAdditionalData()): ?>
<div class="collateral-box attribute-specs">
    <
table cellspacing="0" class="data-table" id="product-attribute-specs-table">
    
<?php foreach ($_additional as $_data): ?>
    
<tr>
        <
td class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></td// метка атрибута (то, что в админке прописывается, скажем, "File Size"
        
<td class="data"><?php echo $_helper->productAttribute($_product$_data['value']$_data['code']?></td// $_data['code'] - название атрибута, скажем, "file_size", $_product, $_data['value'] - значение атрибута
    
</tr>
    
<?php endforeach; ?>
    
</table>
    <
script type="text/javascript">decorateTable('product-attribute-specs-table')</script>
</div>
<?php endif;?>

В середине кода тот самый форич, о котором говорил уважаемый alesto. В нем нам и нужно проверять каждый атрибут на соответствие нужному. Т.е. перед <tr> надо вставить что-то типа

<?php if ($this->htmlEscape($this->__($_data['label'])) == 'is_this_user_fucking_idiot') continue; ?>

Но в этом случае атрибут не будет отображаться никогда. А нам надо, чтобы иногда отображался - для админа.
Заводим группу, скажем, Administrators, она будет иметь ID, скажем, 4. Где-нибудь в начале нашего файла помещаем проверку на принадлежность юзера к этой группе (на основе кода, предоставленного уважаемым alesto):

<?php
$is_admin 
0;
$customer Mage::getSingleton('customer/session');
if (
$customer->isLoggedIn()) {
  
if ($customer->getCustomerGroupID() == '4'$is_admin 1;

?>

А потом модифицируем проверку на атрибут, внеся в нее дополнительную проверку на флаг $is_admin:

<?php 
if ($this->htmlEscape($this->__($_data['code'])) == 'is_this_user_fucking_idiot'{  //нужный нам атрибут?
    
if (!$is_admin) continue; //если атрибут нужный, админ ли юзер? если нет, прерываем текущую итерацию и начинаем новую, не выведя атрибут в таблицу
}
?>

Код я не проверял, нарисовал только что, так что прошу простить за возможные пропуски в синтаксисе - я не программер, как уже говорил. smile В логике вроде ошибок нет. smile

 
Magento Community Magento Community
Magento Community
Magento Community
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

Кстати, не очень понятно, почему разные поля атрибута выводятся разными способами:

<td class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></td>
<
td class="data"><?php echo $_helper->productAttribute($_product$_data['value']$_data['code']?></td>

Вполне можно было оформить это так:

<td class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></td>
<
td class="data"><?php echo $this->htmlEscape($this->__($_data['value'])) ?></td>

и все работает - только что проверил.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Вполне возможно разработчики показали как это делаеться несколькими способами

 
Magento Community Magento Community
Magento Community
Magento Community
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

Резонное предположение.

 
Magento Community Magento Community
Magento Community
Magento Community
 
alesto
Guru
 
Total Posts:  624
Joined:  2009-03-21
 

Хам

 
Magento Community Magento Community
Magento Community
Magento Community
 
mkII
Sr. Member
 
Total Posts:  79
Joined:  2009-02-24
 

Оппа! А щас-то че?

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top
Page 1 of 2