Перейти к содержанию
Форум поддержки пользователей VamShop

Интеграциия Vamshop и Drupal


Рекомендуемые сообщения

Для drupal есть пара решений магазинов, работающих непосредственно в нем. Это e-Commerce и Ubercart.

Их уровень пока отстает от нормального магазина. Поэтому я выбрал сборку vamshop как основу магазина сайта на Друпале.

Можно еще и zen рассмотреть для заграницы. Пока не до него, начнем с vamshop.

У меня есть опыт интеграции SMF и phpBB в Друпал.

SMF посмотреть можно на моем сайте поддержки http://vgb.org.ru

Я взял это за основу и вчера сделал опытный модуль для vamshop посмотреть что там и как.

Вывод положительный.

Содержимое почти всего что надо из aplication_top в друпале инклюдится, пересечений имен и функций нет, DB коннектится, работает.

Все, что надо. НО.

С авторизацией затык.

if (!isset ($_SESSION['customer_id']))

не работает так как там своя сессия, попытки установить sid не получились.

Знаю недостаточно, есть вопиющие пробелы в web development,

я ведь тоже не web программист, хотя и программист в прошлом.

В SMF авторизация делается через куки, там же id и зашифрованный пароль юзера, в phpBB сложнее.

В vamsop все для этого есть. cookie_test устанавливаются, session есть пишется

Нет только после

if (!isset ($_SESSION['customer_id']))

нужна авторизации через установленный в друпале куки или как еще.

То есть я в принципе пока не могу сделать общей авторизации.

Без доработки не обойтись.

Кто чего может предложить, посоветовать, может из zencart чего-то взять можно или других магазинов?

Давайте интегрируем VamShop в Друпал. Пора ему.

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 141
  • Created
  • Последний ответ

Top Posters In This Topic

  • vebe

    61

  • support

    59

  • medium

    8

  • geval

    6

Да, мне тоже очень интересна тема связки VaM Shop с различными cms.

Насколько я знаю Drupal сейчас довольно популярен, как-то давно ставил, но очень давно, сейчас попробую поставить текущую версию Drupal.

vebe

А можешь написать что уже сделано, я может тоже попробую покопаться.

Ссылка на сообщение
Поделиться на другие сайты

Твоя ИМХА даже не попыталась ответить на мой вопрос:

"Почему vebe считает, что zen можно рассматривать только для заграницы".

Ссылка на сообщение
Поделиться на другие сайты

ABerezin, тут я имел ввиду то, что zen cart за границей мне кажется более известен, чем vamshop, и связка Drupal и Zen cart для заграницы найдет отклик скорее чем с vamshop.

Я совсем ничего не имею против zen, только за и у нас тоже, год назад ставил один раз, мне понравилось. Наверное они на месте тоже не стояли.

Буду только рад, если ты поможешь разобраться. Можно с тобой и для zen сделать, если у них внутри для этого все есть или ты готов поучаствовать в адаптации совместно найденных решений.

Я в магазинах не знаток, поэтому и рассчитываю на вашу помощь.

Готовлю первичные соображения, что и как надо в первую очередь. Завтра в середине дня выложу.

Модули будут под GPL.

Ссылка на сообщение
Поделиться на другие сайты

Насколько я знаю Drupal сейчас довольно популярен, как-то давно ставил, но очень давно, сейчас попробую поставить текущую версию Drupal.

А можешь написать что уже сделано, я может тоже попробую покопаться.

Drupal очень хорошая CMS. Сначала вроде кажется неказистой в базовой поставке, но по мере изучения и установки сторонних модулей понимаешь ее мощь и возможности.

Сделан модуль под версию Drupal 5 и 6. vamshop.module

Сделан vamshop_api.php с набором функций для связи

Все в черновом варианте, заготовка, но ставится, не валится, можно будет тестировать реальную работу.

Выложу тоже завтра.

Ссылка на сообщение
Поделиться на другие сайты

Спасибо, выкладывай.

Я конечно в drupal не очень разбираюсь, но всё равно, буду ставить и пробовать.

Тем более, что тема связки магазина и cms очень интересна.

Если получится с drupal, можно будет по-тихоньку и с другими cms связывать как-то магазин.

Ссылка на сообщение
Поделиться на другие сайты

Предлагаю попробовать через куки

Так сделано в SMF и модуле связи SMF+Drupal (скачать можно http://vgb.org.ru) можно посмотреть как

1. Надо написать функцию

vam_set_login_cookie

и вызывать ее при логине и регистрации

я тоже ее вызываю, когда юзер логинется в друпале

Посмотреть и адаптировать set_login_cookie

и

vam_get_cookie_info из

vam_get_cookies_info.inc.php

К замствованиям из SMF надо подходить очень осторожно.

Это не GPL, а частный код с их лицензией.

Привожу ссылки, для понимания идей, а не прямого копирования.

Для пробы сгодится, но если просто передирать, можно нарушить их лицензию и поставим под сомнение GPL кода модулей и магазина.

2.

Вместо if (!isset ($_SESSION['customer_id']))

использовать функцию

if (!vam_authenticate_user())

......

function vam_authenticate_user()

Эту функцию я не вызываю

3. также проверить, дописать

function vam_get_user($user_id, $email_address)

Эту функцию я вызываю

см внизу код

Для начала надо залогинится в магазине

вызывать при логине

vam_set_login_cookie

На странице настройки в моде друпала если будет авторизация увидем customer_id=1*

Если видем customer_id=0* авторизации нет

Пока это не сделаем дальше не пойдем.

Магазин должен быть установлен для простoты в подкаталог /shop/

Drupal - www.site.com

Vamshop - www.site.com/shop

Как установить модуль vamshop  в друпале

1. перпишите разархивированное содержимое архива vamshop в каталог

sites\all\modules\vamshop\

2. включите модуль на странице Модули

http://www.site.com/admin/build/modules

3. идите в настройки сайта, там увидете VaMShop settings

http://www.site.com/admin/settings/vamshop

Должны добиться

Successfully locating VamShop installation.

Successfully locating sites/all/modules/vamshop/includes/vamshop_api.php.

Successfully connected to the VamShop database.

VamShop user: customer_id=0*. You are not authenticated in VamShop now. Please login to VamShop and test again.

<?php

У меня в модуле вот эти, в SMF смотреть в Subs-Auth.php setLoginCookie

есть для этого vam_setcookie.inc.php

function vam_setcookie($name, $value = '', $expire = 0, $path = '/', $domain = '', $secure = 0) {

    setcookie($name, $value, $expire, $path, (vam_not_null($domain) ? $domain : ''), $secure);

  }

//Устанавливаются куки так

function vam_set_login_cookie($cookie_length, $id, $password = '', $encrypted = true)

{

  global $vamshop_config, $configuration, $vamshop_user;

  // The $id is not numeric; it is a email.

  if (!is_integer($id))

  {

    // получить $id по email

    $result = vam_db_query("");

    list ($id) = mysql_fetch_row($result);

    mysql_free_result($result);

  }

  $customer_id = $vamshop_user['customer_id'];

  if (empty($id) || $customer_id == 0)

return false;

if (!$encrypted)

{

if (!empty($password))

{

      $password = md5($password);

  $vamshop_user['password'] = $password;

}

}

  if (empty($cookie_length))

    $cookieTime = 60 * $configuration['cookieTime'];

  else

    $cookieTime = 60 * $cookie_length;

  // Cookie set.

set_login_cookie($cookieTime, $customer_id, $vamshop_user['password']);

$vamshop_user['is_guest'] = false;

return true;

}

// здесь из SMF надо адаптрировать

function set_login_cookie($cookie_length, $id, $password = '')

{

global $smf_settings;

// The cookie may already exist, and have been set with different options.

$cookie_state = (empty($smf_settings['localCookies']) ? 0 : 1) | (empty($smf_settings['globalCookies']) ? 0 : 2);

if (isset($_COOKIE[$smf_settings['cookiename']]) && preg_match('~^a:[34]:\{i:0;(i:\d{1,6}|s:[1-8]:"\d{1,8}");i:1;s:(0|40):"([a-fA-F0-9]{40})?";i:2;[id]:\d{1,14};(i:3;i:\d;)?\}$~', $_COOKIE[$smf_settings['cookiename']]) === 1)

{

$array = @unserialize($_COOKIE[$smf_settings['cookiename']]);

// Out with the old, in with the new!

if (isset($array[3]) && $array[3] != $cookie_state)

{

$cookie_url = smf_url_parts($smf_settings['forum_url'], $array[3] & 1 > 0, $array[3] & 2 > 0);

setcookie($smf_settings['cookiename'], serialize(array(0, '', 0)), time() - 3600, $cookie_url[1], $cookie_url[0], 0);

}

}

// Get the data and path to set it on.

$data = serialize(empty($id) ? array(0, '', 0) : array($id, $password, time() + $cookie_length, $cookie_state));

$cookie_url = smf_url_parts($smf_settings['forum_url'], !empty($smf_settings['localCookies']), !empty($smf_settings['globalCookies']));

// Set the cookie, $_COOKIE, and session variable.

setcookie($smf_settings['cookiename'], $data, time() + $cookie_length, $cookie_url[1], $cookie_url[0], 0);

// If subdomain-independent cookies are on, unset the subdomain-dependent cookie too.

if (empty($id) && !empty($smf_settings['globalCookies']))

setcookie($smf_settings['cookiename'], $data, time() + $cookie_length, $cookie_url[1], '', 0);

// Any alias URLs?  This is mainly for use with frames, etc.

if (!empty($smf_settings['forum_alias_urls']))

{

$aliases = explode(',', $smf_settings['forum_alias_urls']);

foreach ($aliases as $alias)

{

// Fake the $boardurl so we can set a different cookie.

$alias = strtr(trim($alias), array('http://' => '', 'https://' => ''));

$forum_url = 'http://' . $alias;

$cookie_url = smf_url_parts($forum_url, !empty($smf_settings['localCookies']), !empty($smf_settings['globalCookies']));

if ($cookie_url[0] == '')

$cookie_url[0] = strtok($alias, '/');

setcookie($smf_settings['cookiename'], $data, time() + $cookie_length, $cookie_url[1], $cookie_url[0], 0);

}

}

$_COOKIE[$smf_settings['cookiename']] = $data;

$_SESSION['login_' . $smf_settings['cookiename']] = $data;

}

есть vam_get_cookies_info.inc.php

Там на мой домен www.ddddd.org

дает $cookie_domain .www.ddddd.org

Детально не смотрел почему

Мне кажется надо .ddddd.org

Это я переделал из смф Subs-Auth.php function url_parts($local, $global),

у них дикий прием использования глобальной перменной, они ее подменяли по разному, так нельзя писать

// Get the domain and path for the cookie...

function smf_url_parts($forum_url, $local, $global)

{

// Parse the URL with PHP to make life easier.

$parsed_url = parse_url($forum_url);

// Is local cookies off?

if (empty($parsed_url['path']) || !$local)

$parsed_url['path'] = '';

// Globalize cookies across domains (filter out IP-addresses)?

if ($global && preg_match('~^\d{1,3}(\.\d{1,3}){3}$~', $parsed_url['host']) == 0 && preg_match('~(?:[^\.]+\.)?([^\.]{2,}\..+)\z~i', $parsed_url['host'], $parts) == 1)

$parsed_url['host'] = '.' . $parts[1];

// We shouldn't use a host at all if both options are off.

elseif (!$local && !$global)

$parsed_url['host'] = '';

// The host also shouldn't be set if there aren't any dots in it.

elseif (!isset($parsed_url['host']) || strpos($parsed_url['host'], '.') === false)

$parsed_url['host'] = '';

return array($parsed_url['host'], $parsed_url['path'] . '/');

}

//////////////////////////////////////////////////////////////////////////////////////

//Для начала надо сделать авторизацию

// где-то

$vamshop_user = array();

//Вместо if (!isset ($_SESSION['customer_id']))

//Авторизация может быть такой

// проверка куки уже адаптирована

if (!vam_authenticate_user())

......

function vam_authenticate_user()

{

  global $configuration, $vamshop_config, $vamshop_user;

  if (isset ($_SESSION['customer_id']))

    return $_SESSION['customer_id'];

  // проверка куки

  $customer_id = 0;

  if (isset($_COOKIE[$configuration['cookiename']]))

  {

    $_COOKIE[$configuration['cookiename']] = stripslashes($_COOKIE[$configuration['cookiename']]);

    // Fix a security hole in PHP <= 4.3.9

    if (preg_match('~^a:[34]:\{i:0;(i:\d{1,6}|s:[1-8]:"\d{1,8}");i:1;s:(0|40):"([a-fA-F0-9]{40})?";i:2;[id]:\d{1,14};(i:3;i:\d;)?\}$~', $_COOKIE[$configuration['cookiename']]) == 1)

    {

      list ($customer_id, $password) = @unserialize($_COOKIE[$configuration['cookiename']]);

$customer_id = !empty($customer_id) ? (int) $customer_id : 0;

}

}

  if ($customer_id == 0 || !vam_get_user($customer_id, "") || !vam_validate_password($password, $vamshop_user['password']))

{

  $vamshop_user = array();

  $vamshop_user['customer_id'] = 0;

  $vamshop_user['is_guest'] = true;

  return 0;

}

  // другие действия логина

  return $customer_id;

}

function vam_get_user($user_id, $email_address)

{

global $vamshop_config, $vamshop_user;

if (!empty($user_id) && is_integer($user_id)) {

    $check_customer_query = vam_db_query("select customers_email_address, customers_vat_id, customers_firstname, customers_lastname, customers_gender, customers_password, login_tries, login_time, customers_default_address_id from ".TABLE_CUSTOMERS." where customers_id = '".(int) $user_id."' and account_type = '0'");

  }

  elseif (!empty($email_address)) {

    $check_customer_query = vam_db_query("select customers_id, customers_vat_id, customers_firstname, customers_lastname, customers_gender, customers_password, customers_email_address, login_tries, login_time, customers_default_address_id from ".TABLE_CUSTOMERS." where customers_email_address = '".vam_db_input($email_address)."' and account_type = '0'");

  }

  else {

  return false;

}

if (!vam_db_num_rows($check_customer_query)) {

if (!empty($user_id))

  $vamshop_config['error_msg'] = TEXT_NO_EMAIL_ADDRESS_FOUND;

else

  $vamshop_config['error_msg'] = "Bad user_id";

$vamshop_user['customer_id'] = 0;

    $vamshop_user['is_guest'] = true;

    return false;

}

// получить юзера

$check_customer = vam_db_fetch_array($check_customer_query);

  $check_country_query = vam_db_query("select entry_country_id, entry_zone_id from ".TABLE_ADDRESS_BOOK." where customers_id = '".(int) $check_customer['customers_id']."' and address_book_id = '".$check_customer['customers_default_address_id']."'");

$check_country = vam_db_fetch_array($check_country_query);

if (!empty($user_id)) {

    $vamshop_user['customer_id'] = $user_id;

    $vamshop_user['email_address'] = $check_customer['customers_email_address'];

  }

  else {

    $vamshop_user['email_address'] = $email_address;

    $vamshop_user['customer_id'] = $check_customer['customers_id'];

  }

  // заполнить

  //$vamshop_user;

$vamshop_user['password'] = $check_customer['customers_password'];

$vamshop_user['gender'] = $check_customer['customers_gender'];

$vamshop_user['first_name'] = $check_customer['customers_firstname'];

$vamshop_user['last_name'] = $check_customer['customers_lastname'];

$vamshop_user['vat_id'] = $check_customer['customers_vat_id'];

$vamshop_user['default_address_id'] = $check_customer['customers_default_address_id'];

$vamshop_user['country_id'] = $check_country['entry_country_id'];

$vamshop_user['zone_id'] = $check_country['entry_zone_id'];

// и т.д  список индексов будет уточнен позднее

  // установить $vamshop_user['is_guest'] в зависимости в онлайне ли он

  // Брать не из $_SESSION['customer_id'])

  //...................................

  vam_db_free_result($check_customer_query);

  vam_db_free_result($check_country_query);

return true;

}

vam_api.php

vamshop.zip

Ссылка на сообщение
Поделиться на другие сайты

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

vam_api.php - это содержимое предыдущего поста

vamshop.zip - модуль для Drupal 5

Ссылка на сообщение
Поделиться на другие сайты

ABerezin, скачал zen cart взглянул мельком, разница есть, но шанс есть

переменная $db слава богу не используется в друпале будем надеятся, что другого там не помешает, но я не проверял

Будут некоторые заморочки с нац кодировками.

состояние с авторизацией там такое же.

решение по авторизации должно быть одинаковым.

отличия будут в вызове db фукций, перекодировках в utf-8 и др.

Ссылка на сообщение
Поделиться на другие сайты

Поставил drupal, я сейчас для начала попробую твою связку smf + drupal, что б хоть как-то сориентироваться в нём.

Я так глянул, мне понравился drupal, да и в utf8 сразу, что тоже неплохо.

Ссылка на сообщение
Поделиться на другие сайты

Спрашивай, если что, поначалу непривычно и трудновато будет, как с Drupal, так и с модулем, модуль не самый простой.

Если снаружи работаешь, смогу и делом помочь, а если на локалке - советом.

Ссылка на сообщение
Поделиться на другие сайты

А неплохо интеграция сделана с smf, я ж так понял, при регистрации на форуме сразу и в drupal пользователь создётся?

А как с модулями у него, у drupal, выбор есть?

Есть например модули для файлового архива, faq, статей, новостей?!

Я пока близко не смотрел, но судя по http://drupal.org/project/Modules

Выбор есть и очень неплохой.

Я тут просто думаю над переводом всего vamshop.ru/support на utf8 кодировку, раз и магазин vamshop.ru уже в utf8, а у друпал с нуля как раз utf8 уже и также вёрстка на блоках, что тоже неплохо.

Ссылка на сообщение
Поделиться на другие сайты

А неплохо интеграция сделана с smf, я ж так понял, при регистрации на форуме сразу и в drupal пользователь создётся?

А как с модулями у него, у drupal, выбор есть?

Есть например модули для файлового архива, faq, статей, новостей?!

Я пока близко не смотрел, но судя по http://drupal.org/project/Modules

Выбор есть и очень неплохой.

Я тут просто думаю над переводом всего vamshop.ru/support на utf8 кодировку, раз и магазин vamshop.ru уже в utf8, а у друпал с нуля как раз utf8 уже.

Не сразу, а когда войдешь через друпал, или тыкнешь в страницу друпала при условии что включен в друпале блок SMFforum регистрации или скрытой регистрации.

Есть и модули для файлового архива, faq, статей, новости там в базе сразу и c RSS там хорошо и куча другого.

Сайт поддержки такой как у тебя сделать можно.

Ссылка на сообщение
Поделиться на другие сайты

Да, неплохо конечно.

Может даже есть смысл поменять xoops на drupal, посижу ещё, почитаю доки к drupal.

А как ты хочешь магазин связать с друпал?

В магазине ведь вход на email/пароль, а в друпал логин/пароль.

Может в магазине тоже сделать вход по логину/паролю?

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

Ссылка на сообщение
Поделиться на другие сайты

Да, неплохо конечно.

Может даже есть смысл поменять xoops на drupal, посижу ещё, почитаю доки к drupal.

А как ты хочешь магазин связать с друпал?

В магазине ведь вход на email/пароль, а в друпал логин/пароль.

Может в магазине тоже сделать вход по логину/паролю?

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

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

На drupal.ru практически есть все ответы, но найти их сразу нелегко.

У меня конечно есть идея использовать и куки, уже установленные связкой Drupal SMF, тебе просто надо будет взять авторизацию и установку куки. Но эти куски надо будет аккуратно писать из-за GPL.

Но SMF может и не быть, все равно надо и родные магазинные делать.

Я пока готовлюсь к варианту email/пароль, по логину/паролю мне легче конечно, но без первого не обойтись, а второй надо будет тоже иметь ввиду. Кстати в друпале есть сторонний модуль по email/пароль.

Как сделаешь поле username для ника, я поддержу. Но начинать все равно придется с email/пароль.

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

А если даже сделать общую авторизацию, т.е. залогинен в drupal и vam shop и если хочешь оформить заказ в VaM Shop, как же это будет выглядеть?

Нужно же откуда-то взять адрес доставки покупателя и другие данные.

vebe

А ты не смотрел, может для drupal уже есть готовые связки с osCommerce, может их взять за основу можно!?

Ссылка на сообщение
Поделиться на другие сайты

в друпале наверняка есть расширенная форма регистрации ( как плагин), где можно вписать сколько угодно данных..

в джумле есть, в вордпрессе..а это все одного поля ягоды.

Ссылка на сообщение
Поделиться на другие сайты

А если даже сделать общую авторизацию, т.е. залогинен в drupal и vam shop и если хочешь оформить заказ в VaM Shop, как же это будет выглядеть?

Нужно же откуда-то взять адрес доставки покупателя и другие данные.

А ты не смотрел, может для drupal уже есть готовые связки с osCommerce, может их взять за основу можно!?

1. Будет синхронизация профиля, если в Друпале завести такие поля, они будут синхронизированы.

Ну если он там их не заполнен, надо будет при заказе проверять и предлагать ему сделать это уже в магазине.

2. Связок не попадалось на глаза, может и есть где-то, попадалась просьба одного юзера, где взять для osC.

Сами сделаем, с нас будут копировать, если успеют.

geval, да необходимые поля в профиле можно будет предъявлять для заполнения при регистрации в друпале.

Ссылка на сообщение
Поделиться на другие сайты

Сегодня столкнулся, что надо устанавливать постоянное соединение с базой define('USE_PCONNECT', 'true'); для работы модуля vamshop.

Ссылка на сообщение
Поделиться на другие сайты

На будущее

ввел $username и $vamshop_user['username'] = $check_customer['username'];

В свои функции и в эти твои прототипы функций

function vam_authenticate_user()
{
  global $configuration, $vamshop_config, $vamshop_user;

  if (isset ($_SESSION['customer_id']))
    return $_SESSION['customer_id'];

  // проверка куки
  $customer_id = 0;
  if (isset($_COOKIE[$configuration['cookiename']]))
  {
    $_COOKIE[$configuration['cookiename']] = stripslashes($_COOKIE[$configuration['cookiename']]);
    // Fix a security hole in PHP <= 4.3.9
    if (preg_match('~^a:[34]:\{i:0;(i:\d{1,6}|s:[1-8]:"\d{1,8}");i:1;s:(0|40):"([a-fA-F0-9]{40})?";i:2;[id]:\d{1,14};(i:3;i:\d;)?\}$~', $_COOKIE[$configuration['cookiename']]) == 1)
    {
      list ($customer_id, $password) = @unserialize($_COOKIE[$configuration['cookiename']]);
      $customer_id = !empty($customer_id) ? (int) $customer_id : 0;
    }
  }

  if ($customer_id == 0 || !vam_get_user($customer_id, "", "") || !vam_validate_password($password, $vamshop_user['password']))
  {
    $vamshop_user = array();
    $vamshop_user['customer_id'] = 0;
    $vamshop_user['is_guest'] = true;
    return 0;
  }
  // другие действия логина
  return $customer_id;
}




function vam_get_user($user_id, $username, $email_address)
{
  global $vamshop_config, $vamshop_user;

  if (!empty($user_id) && is_integer($user_id))
  {
    $check_customer_query = vam_db_query("select customers_email_address, customers_vat_id, customers_firstname, customers_lastname, customers_gender, customers_password, login_tries, login_time, customers_default_address_id from ".TABLE_CUSTOMERS." where customers_id = '".(int) $user_id."' and account_type = '0'");
  }
  elseif (!empty($email_address))
  {
    $check_customer_query = vam_db_query("select customers_id, customers_vat_id, customers_firstname, customers_lastname, customers_gender, customers_password, customers_email_address, login_tries, login_time, customers_default_address_id from ".TABLE_CUSTOMERS." where customers_email_address = '".vam_db_input($email_address)."' and account_type = '0'");
  }
  else
  {
    return false;
  }

  if (!vam_db_num_rows($check_customer_query))
  {
    if (!empty($user_id))
      $vamshop_config['error_msg'] = TEXT_NO_EMAIL_ADDRESS_FOUND;
    else
      $vamshop_config['error_msg'] = "Bad user_id";
    $vamshop_user['customer_id'] = 0;
    $vamshop_user['is_guest'] = true;
    return false;
  }

  // получить юзера
  $check_customer = vam_db_fetch_array($check_customer_query);

  $check_country_query = vam_db_query("select entry_country_id, entry_zone_id from ".TABLE_ADDRESS_BOOK." where customers_id = '".(int) $check_customer['customers_id']."' and address_book_id = '".$check_customer['customers_default_address_id']."'");
  $check_country = vam_db_fetch_array($check_country_query);

  if (!empty($user_id))
  {
    $vamshop_user['customer_id'] = $user_id;
    $vamshop_user['email_address'] = $check_customer['customers_email_address'];
  }
  else
  {
    $vamshop_user['email_address'] = $email_address;
    $vamshop_user['customer_id'] = $check_customer['customers_id'];
  }

  // заполнить
  //$vamshop_user;

  $vamshop_user['password'] = $check_customer['customers_password'];
  $vamshop_user['gender'] = $check_customer['customers_gender'];
  $vamshop_user['first_name'] = $check_customer['customers_firstname'];
  $vamshop_user['last_name'] = $check_customer['customers_lastname'];
  $vamshop_user['vat_id'] = $check_customer['customers_vat_id'];
  $vamshop_user['default_address_id'] = $check_customer['customers_default_address_id'];
  $vamshop_user['country_id'] = $check_country['entry_country_id'];
  $vamshop_user['zone_id'] = $check_country['entry_zone_id'];

  if (!isset($check_customer['username']))
  {
    // здесь алгоритм создание ника
    $vamshop_user['username'] = $check_customer['customers_firstname'] . $check_customer['customers_lastname'];
  }
  else
  {
    $vamshop_user['username'] = $check_customer['username'];
  }
  // и т.д  список индексов будет уточнен позднее

  // установить $vamshop_user['is_guest'] в зависимости в онлайне ли он
  // Брать не из $_SESSION['customer_id'])
  //...................................

  vam_db_free_result($check_customer_query);
  vam_db_free_result($check_country_query);

  return true;
}
[/code]

Ссылка на сообщение
Поделиться на другие сайты

×
×
  • Создать...