uLogin - виджет авторизации через социальные сети « все идеи проекта

0

голосов

Выбор нестанадртного расположения модуля в Opencart

Добрый день. По мотивам последних вопросов:
Вывод модуля только в определенном месте в Opencart (например на странице регистрации) это не совсем исчерпывающее решение.
Очень часто нужно расположить кнопки в шапке или выпадающих окнах логина.
Собственно вопрос.
На данный момент с помощью одного из участников (Михаил Саяпин) удалось реализовать такой вариант.
Через админку выводим модуль на все страницы (Home, Category, Product etc) далее например рядом с логотипом магазина размещаем код:

div class="ulogin_form">
<?php if (empty($uloginid)) { ?>
<div data-ulogin="display=small;fields=first_name,last_name,email;optional=phone,city,country,nickname,sex,photo_big,bdate,photo; providers=vkontakte,odnoklassniki,mailru,facebook;hidden=other;redirect_uri=<?php echo $redirect_uri; ?>; callback=<?php echo $callback; ?>"></div>
<?php } else { ?>
<div data-uloginid="<?php echo $uloginid; ?>" data-ulogin="fields=first_name,last_name,email;redirect_uri=<?php echo $redirect_uri; ?>;callback=<?php echo $callback; ?>"></div>
<?php } ?>
</div>

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

Или разработчик подскажет кусок кода который инициирует все нужные механизмы но не выводит сам модуль.

Т.е. с помощью некоего куска кода например в header.php или header.tpl мы все инициализируем а в дизайн ставим участок вышепреведенный и таким образом решаем вопрос.

I Ch, 21.05.2015, 23:29
Статус идеи: выполнено

Комментарии

Иван Пшеницын, 22.05.2015, 12:56
Здравствуйте.
Мы следим за этой темой и уже поставили в ближайшие планы реализацию нормального, простого и удобного механизма вывода виджета в произвольном месте для OpenCart.
Но, к сожалению, прямо сейчас я не могу предоставить вам решения, нужно немного подождать. Предвосхищая возможный вопрос - сколько подождать, точно сказать не могу. Неделю, две.
I Ch, 22.05.2015, 14:35
Очень ждем. Спасибо :)
I Ch, 10.06.2015, 12:58
пока тишина? :)
Антон Кольченко, 24.06.2015, 16:18
>> с помощью некоего куска кода например в header.php или header.tpl мы все инициализируем а в дизайн ставим участок вышепреведенный и таким образом решаем вопрос.

Вы в верном направлении мыслите. Можно сказать, что это реализовано в модуле.

Т.е. существует два способа размещения виджета юлогин на страницах: первый через модули openCart - через админку, второй - более жестким способом, но проще, чем у вас (не документирован).

По второму способу:
посмотрев на содержимое файла install.xml, вы увидите, что вносятся определённые изменения в header.php и header.tpl. То есть, в определённые места вставляются определённые куски кода.

В php файле определяется переменная $data['ulogin_form_marker']
В tpl - выводится переменная $ulogin_form_marker

В итоге:
Если вам нужен вывод виджета в произвольном месте в хэдере - переместите в соответствующее место кусок кода: <?php echo $ulogin_form_marker ?>. Эти изменения должны проводиться в файле system/modification/catalog/view/theme/default/template/common/header.tpl (для дефолтной темы)

Для вывода на других участках возможно потребуется инициализация в файле контроллера аналогично header.php (system/modification/catalog/controller/common/header.php)
Алексей Лебедь, 24.07.2015, 18:45
А можно по подробней? я хочу добавить на ОС2 на страницу оформления заказа в произвольное место форму авторизации uLogin, модуль установлен. Но если его ставить через макеты он отображается сверху страницы, а я хочу чтобы его можно было вставить в любое место. Подскажите какие файлы править и что именно?
Игорь, 27.08.2015, 20:16
Вам необходимо поправить самостоятельно именно те файлы, куда вы хотите выводить панель юлогина. Например, для хэдера реализация следующая:
- Добавить контроллёр модуля в php файл шаблона, например, для вывода панели в хэдере, необходимо добавить этот код в файл `catalog/controller/common/header.php`:

$data['ulogin_messager_marker'] = $this->load->controller('module/ulogin/messager');

- Добавить вывод панели в шаблоне `catalog/view/theme/default/template/common/header.tpl`, например после строки `<div class="collapse navbar-collapse navbar-ex1-collapse">`:

<?php echo $ulogin_form_marker;?>

информация взята с README.md
Игорь Gambit, 28.08.2015, 15:33
упс, правки внесены в README:
подключение контроллёра:
$data['ulogin_form_marker'] = $this->load->controller('module/ulogin');
вывод в шаблон <?php echo $ulogin_form_marker;?>

подключение в контроллёре должно происходить до момента передачи аккумулированных данных в шаблон, т.е. до строк $this->response->setOutput($this->load->view ... )

Оставить комментарий