Jump to content

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


Recommended Posts

Для 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 в Друпал. Пора ему.

Link to post
Share on other sites
  • Replies 141
  • Created
  • Last Reply

Top Posters In This Topic

  • vebe

    61

  • support

    59

  • medium

    8

  • geval

    6

Top Posters In This Topic

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

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

vebe

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

Link to post
Share on other sites

Оффтоп:

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

Интересно, а почему для заграницы?

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

Так сделано в 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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

Link to post
Share on other sites

vebe

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

vebe

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

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

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

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

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

На будущее

ввел $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]

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...