vebe 0 Posted January 17, 2008 Report Share Posted January 17, 2008 Для 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
support 446 Posted January 17, 2008 Report Share Posted January 17, 2008 Да, мне тоже очень интересна тема связки VaM Shop с различными cms. Насколько я знаю Drupal сейчас довольно популярен, как-то давно ставил, но очень давно, сейчас попробую поставить текущую версию Drupal. vebe А можешь написать что уже сделано, я может тоже попробую покопаться. Link to post Share on other sites
ABerezin 0 Posted January 17, 2008 Report Share Posted January 17, 2008 Оффтоп: Можно еще и zen рассмотреть для заграницы. Интересно, а почему для заграницы? Link to post Share on other sites
ABerezin 0 Posted January 17, 2008 Report Share Posted January 17, 2008 Твоя ИМХА даже не попыталась ответить на мой вопрос: "Почему vebe считает, что zen можно рассматривать только для заграницы". Link to post Share on other sites
vebe 0 Posted January 17, 2008 Author Report Share Posted January 17, 2008 ABerezin, тут я имел ввиду то, что zen cart за границей мне кажется более известен, чем vamshop, и связка Drupal и Zen cart для заграницы найдет отклик скорее чем с vamshop. Я совсем ничего не имею против zen, только за и у нас тоже, год назад ставил один раз, мне понравилось. Наверное они на месте тоже не стояли. Буду только рад, если ты поможешь разобраться. Можно с тобой и для zen сделать, если у них внутри для этого все есть или ты готов поучаствовать в адаптации совместно найденных решений. Я в магазинах не знаток, поэтому и рассчитываю на вашу помощь. Готовлю первичные соображения, что и как надо в первую очередь. Завтра в середине дня выложу. Модули будут под GPL. Link to post Share on other sites
ABerezin 0 Posted January 17, 2008 Report Share Posted January 17, 2008 vebe, Понял. Поучаствую с удовольствием в свободное время. Link to post Share on other sites
vebe 0 Posted January 17, 2008 Author Report Share Posted January 17, 2008 Насколько я знаю Drupal сейчас довольно популярен, как-то давно ставил, но очень давно, сейчас попробую поставить текущую версию Drupal. А можешь написать что уже сделано, я может тоже попробую покопаться. Drupal очень хорошая CMS. Сначала вроде кажется неказистой в базовой поставке, но по мере изучения и установки сторонних модулей понимаешь ее мощь и возможности. Сделан модуль под версию Drupal 5 и 6. vamshop.module Сделан vamshop_api.php с набором функций для связи Все в черновом варианте, заготовка, но ставится, не валится, можно будет тестировать реальную работу. Выложу тоже завтра. Link to post Share on other sites
support 446 Posted January 17, 2008 Report Share Posted January 17, 2008 Спасибо, выкладывай. Я конечно в drupal не очень разбираюсь, но всё равно, буду ставить и пробовать. Тем более, что тема связки магазина и cms очень интересна. Если получится с drupal, можно будет по-тихоньку и с другими cms связывать как-то магазин. Link to post Share on other sites
vebe 0 Posted January 18, 2008 Author Report Share Posted January 18, 2008 Предлагаю попробовать через куки Так сделано в 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
vebe 0 Posted January 18, 2008 Author Report Share Posted January 18, 2008 Немножко сумбурно, но времени было мало и код уже писал, начнем разбираться постепенно vam_api.php - это содержимое предыдущего поста vamshop.zip - модуль для Drupal 5 Link to post Share on other sites
vebe 0 Posted January 18, 2008 Author Report Share Posted January 18, 2008 ABerezin, скачал zen cart взглянул мельком, разница есть, но шанс есть переменная $db слава богу не используется в друпале будем надеятся, что другого там не помешает, но я не проверял Будут некоторые заморочки с нац кодировками. состояние с авторизацией там такое же. решение по авторизации должно быть одинаковым. отличия будут в вызове db фукций, перекодировках в utf-8 и др. Link to post Share on other sites
support 446 Posted January 18, 2008 Report Share Posted January 18, 2008 vebe Спасибо большое, сейчас буду пробовать твою инструкцию. Link to post Share on other sites
support 446 Posted January 19, 2008 Report Share Posted January 19, 2008 Поставил drupal, я сейчас для начала попробую твою связку smf + drupal, что б хоть как-то сориентироваться в нём. Я так глянул, мне понравился drupal, да и в utf8 сразу, что тоже неплохо. Link to post Share on other sites
vebe 0 Posted January 19, 2008 Author Report Share Posted January 19, 2008 Спрашивай, если что, поначалу непривычно и трудновато будет, как с Drupal, так и с модулем, модуль не самый простой. Если снаружи работаешь, смогу и делом помочь, а если на локалке - советом. Link to post Share on other sites
support 446 Posted January 19, 2008 Report Share Posted January 19, 2008 А неплохо интеграция сделана с smf, я ж так понял, при регистрации на форуме сразу и в drupal пользователь создётся? А как с модулями у него, у drupal, выбор есть? Есть например модули для файлового архива, faq, статей, новостей?! Я пока близко не смотрел, но судя по http://drupal.org/project/Modules Выбор есть и очень неплохой. Я тут просто думаю над переводом всего vamshop.ru/support на utf8 кодировку, раз и магазин vamshop.ru уже в utf8, а у друпал с нуля как раз utf8 уже и также вёрстка на блоках, что тоже неплохо. Link to post Share on other sites
vebe 0 Posted January 19, 2008 Author Report Share Posted January 19, 2008 А неплохо интеграция сделана с 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
support 446 Posted January 19, 2008 Report Share Posted January 19, 2008 Да, неплохо конечно. Может даже есть смысл поменять xoops на drupal, посижу ещё, почитаю доки к drupal. А как ты хочешь магазин связать с друпал? В магазине ведь вход на email/пароль, а в друпал логин/пароль. Может в магазине тоже сделать вход по логину/паролю? Тем более, сейчас в том числе из-за спама ящики часто ведь меняют, вход по логину/паролю выглядит даже логичнее. Link to post Share on other sites
vebe 0 Posted January 19, 2008 Author Report Share Posted January 19, 2008 Да, неплохо конечно. Может даже есть смысл поменять xoops на drupal, посижу ещё, почитаю доки к drupal. А как ты хочешь магазин связать с друпал? В магазине ведь вход на email/пароль, а в друпал логин/пароль. Может в магазине тоже сделать вход по логину/паролю? Тем более, сейчас в том числе из-за спама ящики часто ведь меняют, вход по логину/паролю выглядит даже логичнее. Друпал конечно надо некоторое время поизучать, попривыкнуть, везде есть свои особенности.На drupal.ru практически есть все ответы, но найти их сразу нелегко. У меня конечно есть идея использовать и куки, уже установленные связкой Drupal SMF, тебе просто надо будет взять авторизацию и установку куки. Но эти куски надо будет аккуратно писать из-за GPL. Но SMF может и не быть, все равно надо и родные магазинные делать. Я пока готовлюсь к варианту email/пароль, по логину/паролю мне легче конечно, но без первого не обойтись, а второй надо будет тоже иметь ввиду. Кстати в друпале есть сторонний модуль по email/пароль. Как сделаешь поле username для ника, я поддержу. Но начинать все равно придется с email/пароль. Link to post Share on other sites
geval 3 Posted January 20, 2008 Report Share Posted January 20, 2008 да будет очень хорошо- если в итоге родится система друпал+вамшоп, тогда и сайт раскручивать интереснее будет, и людей привлекать ( учитывая возможности сообщества друпала ( комментирование и т.д), плюс уйма модулей). Link to post Share on other sites
support 446 Posted January 20, 2008 Report Share Posted January 20, 2008 А если даже сделать общую авторизацию, т.е. залогинен в drupal и vam shop и если хочешь оформить заказ в VaM Shop, как же это будет выглядеть? Нужно же откуда-то взять адрес доставки покупателя и другие данные. vebe А ты не смотрел, может для drupal уже есть готовые связки с osCommerce, может их взять за основу можно!? Link to post Share on other sites
geval 3 Posted January 20, 2008 Report Share Posted January 20, 2008 в друпале наверняка есть расширенная форма регистрации ( как плагин), где можно вписать сколько угодно данных.. в джумле есть, в вордпрессе..а это все одного поля ягоды. Link to post Share on other sites
vebe 0 Posted January 20, 2008 Author Report Share Posted January 20, 2008 А если даже сделать общую авторизацию, т.е. залогинен в drupal и vam shop и если хочешь оформить заказ в VaM Shop, как же это будет выглядеть? Нужно же откуда-то взять адрес доставки покупателя и другие данные. А ты не смотрел, может для drupal уже есть готовые связки с osCommerce, может их взять за основу можно!? 1. Будет синхронизация профиля, если в Друпале завести такие поля, они будут синхронизированы. Ну если он там их не заполнен, надо будет при заказе проверять и предлагать ему сделать это уже в магазине. 2. Связок не попадалось на глаза, может и есть где-то, попадалась просьба одного юзера, где взять для osC. Сами сделаем, с нас будут копировать, если успеют. geval, да необходимые поля в профиле можно будет предъявлять для заполнения при регистрации в друпале. Link to post Share on other sites
vebe 0 Posted January 20, 2008 Author Report Share Posted January 20, 2008 Сегодня столкнулся, что надо устанавливать постоянное соединение с базой define('USE_PCONNECT', 'true'); для работы модуля vamshop. Link to post Share on other sites
vebe 0 Posted January 21, 2008 Author Report Share Posted January 21, 2008 На будущее ввел $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
medium 0 Posted January 24, 2008 Report Share Posted January 24, 2008 Отличное начинание! Я тоже начинающий друпалер, буду разбираться. Link to post Share on other sites
Recommended Posts