Помощь Помогите вывести свободный текст на сайте

Тема в разделе "Opencart", создана пользователем grebovich, 22 ноя 2013.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. grebovich

    grebovich Нарушитель

    Регистр.:
    19 мар 2012
    Сообщения:
    290
    Симпатии:
    56
    Все привет,кто подскажет как можно вывести в блоке "ЛИЧНЫЙ КАБИНЕТ" Свободную ссылку,текст зависящий от группы покупателя, к примеру у меня две группы оптовая и розничная, вот и нужно вывести к примеру ссылку на прайс для розничного покупателя свою для оптового свою!??
     
  2. dimkew

    dimkew Постоялец

    Регистр.:
    10 май 2012
    Сообщения:
    50
    Симпатии:
    15
    без плагинов или с их помощью?
    можно к примеру с помощью изменения catalog\controller\account\account.php, catalog\view\theme\bershka\template\account\account.tpl и языковых файлов.
    можно заморочиться и сделать через базу путем правки базы и \catalog\model\account\customer_group.php
     
  3. grebovich

    grebovich Нарушитель

    Регистр.:
    19 мар 2012
    Сообщения:
    290
    Симпатии:
    56
    Да все равно ,можно и плагином если есть такой,мне просто нужно в данном блоке вывести данный текст но не понимаю как сделать чтоб для каждой группы он задавался разный!
     
  4. dimkew

    dimkew Постоялец

    Регистр.:
    10 май 2012
    Сообщения:
    50
    Симпатии:
    15
    ну давай по порядку.
    к примеру ты уже забил в языки для catalog\language\russian\account\account.php новые параметры
    $_['text_freetext1'] = '11111';
    $_['text_freetext2'] = '22222';
    и т.д.

    Далее в контролеере catalog\controller\account\account.php делаешь проверку на
    $this->customer->getCustomerGroupId()
    и в зависимости от этого переменной $freetext присваиваешь $this->language->get('text_freetext1') или $this->language->get('text_freetext2').
    далее передаем это в account.tpl и <?php echo $freetext ?> получаем нужный текст
     
    grebovich нравится это.
  5. grebovich

    grebovich Нарушитель

    Регистр.:
    19 мар 2012
    Сообщения:
    290
    Симпатии:
    56
    Спасибо буду пробовать,но если честно так и не понял как оно будет определять группу, в $this->customer->getCustomerGroupId() разве не нужно задавать ID Группы?
     
  6. dimkew

    dimkew Постоялец

    Регистр.:
    10 май 2012
    Сообщения:
    50
    Симпатии:
    15
    можно конечно внаглую

    if ($this->customer->isLogged()){
    switch($this->customer->getCustomerGroupName()){case "Покупатели":echo "ТЕКСТ ПОКУПАТЕЛЕЙ";
    break;case "Оптовики":echo "ТЕКСТ ОПТОВИКАМ";
    break;
    default:echo " ТЕКСТ ОСТАЛЬНЫМ";
    }
    }else{ echo "ТЕКСТ НЕЗАРЕГИСТРИРОВАННЫМ"; }

    но это только если у вас 1 язык и менять группы вы не планируете
     
    grebovich нравится это.
  7. dimkew

    dimkew Постоялец

    Регистр.:
    10 май 2012
    Сообщения:
    50
    Симпатии:
    15
    По id лучше определять группу- это правильней , т.к. в случае ее перименования ничего не полетит. Во втором варианте проверка идет по имени
     
    grebovich нравится это.
  8. grebovich

    grebovich Нарушитель

    Регистр.:
    19 мар 2012
    Сообщения:
    290
    Симпатии:
    56
    ок.поковыряю,и отпишусь!
     
  9. grebovich

    grebovich Нарушитель

    Регистр.:
    19 мар 2012
    Сообщения:
    290
    Симпатии:
    56
    Вы можете подробно расписать все по пунктам из 4 поста (первый вариант)
    А то уже пол дня вожусь и ни в какую!,,,
    Буду очень благодарен!
     
  10. dimkew

    dimkew Постоялец

    Регистр.:
    10 май 2012
    Сообщения:
    50
    Симпатии:
    15
    хорошо по порядку, заходим в \catalog\language\russian\account\account.php
    добавляем к тому что там нужный текст

    $_['text_customertext1'] = '111';
    $_['text_customertext2'] = '222';
    $_['text_customertext3'] = '333';
    $_['text_customertextother'] = 'other';
    $_['text_customertextunreg'] = 'unregister';


    Далее открываем \catalog\controller\account\account.php
    после $this->data['newsletter'] = $this->url->link('account/newsletter', '', 'SSL'); добавляем следующий код

    if ($this->customer->isLogged()){
    switch($this->customer->getCustomerGroupId()){
    case 1:
    $this->data['text_custom'] = $this->language->get('text_customertext1');
    break;
    case 2:
    $this->data['text_custom'] = $this->language->get('text_customertext2');
    break;
    case 3:
    $this->data['text_custom'] = $this->language->get('text_customertext3');
    break;
    default:
    $this->data['text_custom'] = $this->language->get('text_customertextother');
    }
    }else{
    $this->data['text_custom'] = $this->language->get('text_customertextunreg');
    }


    И в завершение пишем в шаблоне \catalog\view\theme\ТЕМА\template\account\account.tpl куда это выводить. Например после <h1><?php echo $heading_title; ?></h1> вставляем:
    <h2><?php echo $text_custom; ?></h2>


    Все. Циферки case 1 case 2 case 3 берем свои в зависимости от необходимых груп (таблица customer_group из базы, открывается Phpmyadminом или аналогами)
     
    Последнее редактирование: 22 ноя 2013
    raf582 и grebovich нравится это.