X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Virtuemart цена, нужен знающий чел.
Psyholord
Psyholord
Topic Starter сообщение 31.1.2011, 19:49; Ответить: Psyholord
Сообщение #1


Яндексу не устоять
*****

Группа: Active User
Сообщений: 974
Регистрация: 20.2.2009
Из: Москва
Поблагодарили: 269 раз
Репутация:   31  


Короче в вирте есть такая фича как ограничить видимость цен для определенной группы, я создал 3 группы и хочу чтоб 2 группы видели товар и цены а 1 не видела.
В вирте по умолчанию можно поставить чтоб видела ток 1 группа цены а остальные нет, то есть как на остальных вкладках CTRL не дает выбрать несколько.
Полез я в код нашел фаил /administrator/components/com_virtuemart/virtuemart.cfg.php
Там нашел вкладку define('VM_PRICE_ACCESS_LEVEL', 'Group3'); до этого как раз я выставил чтоб видела цены 3я группа.
Решил добавить типа define('VM_PRICE_ACCESS_LEVEL', 'Group3,Group2'); на что он мне снял ограничение для всех.
Пошел дальше и за место
define('VM_PRICE_ACCESS_LEVEL', 'Group3');
написал
global $VM_PRICE_ACCESS_LEVEL_ONE;
$VM_PRICE_ACCESS_LEVEL_ONE=array("Group3"=>1,"Group2"=>1);

function fuck_this_group($var){
    global $VM_PRICE_ACCESS_LEVEL_ONE;
    return array_key_exists($var,$VM_PRICE_ACCESS_LEVEL_ONE);
}

if(fuck_this_group($_SESSION['__default']['user']->usertype)){
    echo '<p>User good';
}else{
    echo '<p>User bad';
}


при заходе юзером 1 группы он мне пишет User bad , но блин цены все равно не ограничивает, кто знает где собака зарыта и может я не там ищу?
Для 2 и 3 соответственно пишет User good.

Сообщение отредактировал Psyholord - 31.1.2011, 19:50


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kRicha
kRicha
сообщение 31.1.2011, 20:46; Ответить: kRicha
Сообщение #2


Завсегдатай
*****

Группа: Active User
Сообщений: 932
Регистрация: 29.6.2010
Из: Киева
Поблагодарили: 222 раза
Репутация:   39  


а там radio или checkbox?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Psyholord
Psyholord
Topic Starter сообщение 31.1.2011, 21:15; Ответить: Psyholord
Сообщение #3


Яндексу не устоять
*****

Группа: Active User
Сообщений: 974
Регистрация: 20.2.2009
Из: Москва
Поблагодарили: 269 раз
Репутация:   31  


(kRicha @ 31.1.2011, 19:46) *
а там radio или checkbox?

checkbox


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kRicha
kRicha
сообщение 31.1.2011, 21:21; Ответить: kRicha
Сообщение #4


Завсегдатай
*****

Группа: Active User
Сообщений: 932
Регистрация: 29.6.2010
Из: Киева
Поблагодарили: 222 раза
Репутация:   39  


(Psyholord @ 31.1.2011, 19:15) *
checkbox

а поковырять код этого файла и снять ограничение не?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Psyholord
Psyholord
Topic Starter сообщение 1.2.2011, 2:58; Ответить: Psyholord
Сообщение #5


Яндексу не устоять
*****

Группа: Active User
Сообщений: 974
Регистрация: 20.2.2009
Из: Москва
Поблагодарили: 269 раз
Репутация:   31  


А чекбокс стоит только на включение функции вывода цены для определенной группы, а там список и в списке выбирается только одна группа.
Если выбрать группу запись идет в фаил /administrator/components/com_virtuemart/virtuemart.cfg.php
и записывает выбор как define('VM_PRICE_ACCESS_LEVEL', 'Group3');
остальное читайте выше.
Тут нужен знающий чел!!

нашел записи такого типа также

function doAuthentication( $shopper_group ) {

        global $my, $acl, $user;
        $db = new ps_DB;
        $auth = !empty( $_SESSION['auth']) ? $_SESSION['auth'] : array();
        
        if( class_exists('jfactory')) {
            $vmUser = JFactory::getUser();
        } else {
            $vmUser =& $my;
        }
        if( VM_PRICE_ACCESS_LEVEL != '' ) {
            // Get the usertype property when not present
            if( empty( $vmUser->usertype ) ) {
                if( empty( $vmUser->id )) {
                    $gid = 29;
                }
                else {
                    $gid = $vmUser->gid;
                }
                $fieldname = vmIsJoomla( '1.5' ) ? 'id' : 'group_id';
                $db->query( 'SELECT `name` FROM `#__core_acl_aro_groups` WHERE `'.$fieldname.'` ='.$gid );
                $db->next_record();
                $vmUser->usertype = $db->f( 'name' );
            }
            
            $this->prepareACL();
            
            // Is the user allowed to see the prices?
            // this code will change when Joomla has a good ACL implementation
            if( is_callable( array( $user, 'authorize'))) {            
                $auth['show_prices']  = $user->authorize( 'virtuemart', 'prices' );    
            }
            else {
                $auth['show_prices']  = $acl->acl_check( 'virtuemart', 'prices', 'users', strtolower($vmUser->usertype), null, null );
            }
        }
        else {
            $auth['show_prices'] = 1;
        }

$auth['show_prices'] - отвечает за вывод цены.
usertype- обозначения принадлежности пользователя к группе

и вот этот код
function writeconfig(&$d) {
        global $my, $db, $vmLogger, $VM_LANG, $mosConfig_live_site;

        $group_id = intval( $d['conf_VM_PRICE_ACCESS_LEVEL'] );
// TODO: (J! 1.5) Is there a better way to handle this difference between Joomla versions?
        if( vmIsJoomla(1.5) ) {
            $db->query( 'SELECT name FROM #__core_acl_aro_groups WHERE id=\''.$group_id.'\'' );
        } else {
            $db->query( 'SELECT name FROM #__core_acl_aro_groups WHERE group_id=\''.$group_id.'\'' );
        }
        $db->next_record();
        $d['conf_VM_PRICE_ACCESS_LEVEL'] = $db->f('name');

        if (!is_writable(ADMINPATH ."virtuemart.cfg.php")) {
            $vmLogger->err( $VM_LANG->_('VM_CONFIGURATION_CHANGE_FAILURE',false).' ('. ADMINPATH ."virtuemart.cfg.php)" );
            return false;
        }


Сообщение отредактировал Psyholord - 1.2.2011, 3:12


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужен человек для поиска клиентов за процент от сделки
2 Evgos 501 Сегодня, 13:11
автор: Smspva
Открытая тема (нет новых ответов) Нужен домен, не дорого
Подскажите домен для хостинга
20 SimpleHosting 2651 Вчера, 0:24
автор: Ley
Открытая тема (нет новых ответов) Нужен Product Designer cо знанием английского
0 SpaceGray 301 12.12.2017, 23:37
автор: SpaceGray
Открытая тема (нет новых ответов) Нужен Pay Pal
2 Timka 665 11.12.2017, 21:35
автор: rumba
Открытая тема (нет новых ответов) Нужен рерайтер новостей на постоянную работу
3 FUTP 409 10.12.2017, 0:29
автор: contentos


 



RSS Текстовая версия Сейчас: 15.12.2017, 22:10
Дизайн