irc-канал организовать вообще не проблема - на любом сервере можно сделать и зарегистрировать канал. А что обсуждать... да мы всегда найдем. Мы ж не конференция ботаников с ученой степенью, которым стыдно говорить про погоду за окном, все мы живые люди. Вот лично мне было бы просто интересно пообщаться с коллегами и не обязательно именно про битрикс, люди ж тоже интересны, у всех есть общие интересные темы акромя работы.
Альтернативы IRC наверняка существуют более современные, я не в курсе.
я за то, чтобы клиент вообще не напрягался. Если ему сделать заказ без регистрации проще - значит по умолчанию заказ делается без регистрации. Кто хочет зарегистрироваться - регистрируется. Но учитывая особенности битрикса - регистрация необходима, поэтому остается лишь скрытно регистрировать пользователей под предлогом дальнейшего отслеживания своих заказов.
Я постараюсь более детально представить свою реализацию всех идей на днях - там будет и оформление заказа без регистрации.
$user_login - это первая часть e-mail до @. $suffix - это номер, если $user_login занят. Т.е. если пользователь создает заказ с e-mail "user@email.ru", то сначала проверяется занятость в базе логина user. Если занято, то начинается перебор user1, user2, user3 и т.д. до первого свободного. В итоге имеем гарантированно свободный логин.
Код
CEvent::Send("NEW_AUTO_REGISTERED_USER"...
Это мое собственное событие для регистрации новых пользователей при оформлении заказа.
Надо переписывать компонент оформления заказа. Логика такая. Если заказ отправлен неавторизованным пользователем, тогда создаем нового пользователя, используя его e-mail. Авторизуем его. Всё - заказ поступил от зарегистрированного и авторизованного пользователя. Вот собственно кусок регистрации и авторизации нового пользователя:
Код
$user_login = $user_login.$suffix; // Новый логин пользователя
$password = randString(8); // Генерируем пароль из 8 символов. Его потом надо будет на емыл ему отправить
$new_user_id = $USER->Add(array(
'LOGIN' => $user_login,
'NAME' => $user_name1,
'LAST_NAME' => $user_name2,
'EMAIL' => $user_email,
'PASSWORD' => $password, // Нах мне два пароля писать - непонятно
'CONFIRM_PASSWORD' => $password,
'GROUP_ID'=>COption::GetOptionInt('main', 'new_user_registration_def_group'), // Назначем группу по умолчанию
'ACTIVE' => "Y",
'ADMIN_NOTES'=>"Зарегистрирован автоматически при оформлении заказа"
));
if ($new_user_id > 0) {
$USER->Authorize($new_user_id);
$arResult['NEW_USER'] = array(
'LOGIN' => $user_login,
'EMAIL' => $user_email,
'PASSWORD' => $password,
);
// Отправка сообщения пользователю с его логином и паролем
CEvent::Send("NEW_AUTO_REGISTERED_USER", SITE_ID, array(
'NAME' => $user_name1,
'LOGIN' => $user_login,
'PASSWORD' => $password,
'EMAIL' => $user_email,
));
}
Заказ без регистрации быть не может. Но можно для пользователя сделать "невидимую" регистрацию. В моей реализации интернет-магазина пользователь может указать только e-mail, на него будет создана учетная запись, сгенерирован логин и пароль, они отправляются пользователю на указанный e-mail. Всё. При оформлении заказа он не регистрировался - за него это сделала система, зная e-mail.
Какая-то непонятная фигня. Проблема в параметре PHP: zlib.output_compression = On . При установке в Off стало всё ок. Использовал данную фичу вместо модуля компрессии.
Недавно возникла проблема при работе с сайтом - виснет apache во время обновления формы редактирования элемента. Форма редактирования элемента инфоблока - любая, хоть стандартная, хоть своя - проблема наблюдается везде. При этом виснет не на собственно заходе, а именно на обновлении.
Допустим, захожу на форму по адресу /bitrix/admin/iblock_element_edit.php?WF=Y&ID=408&type=structure&lang=ru&IBLOCK_ID=51&find_section_section=-1 - форма загружается нормально. Если сделать обновление страницы в браузере - виснет. Но если запросить тот же адрес (выделить адрес в строке браузера и нажать enter), то всё нормально. Дело в том, что при заходе на адрес запрашивается только сам документ, а все файлы грузятся из кэша браузера. При обновлении страницы запрашиваются все файлы страницы (скрипты, css, картинки) с сервера, но так как они не изменены, отдаются с HTTP-статусом 304 (Not Modified). Но именно когда браузер делает такой запрос виснет apache, загружая одно ядро на 100%.
Проблема наблюдается только на формах редактирования элемента инфоблока, на других страницах админки и публичной части не наблюдается, в логах нет ни ошибок, ни чего-то аномального. Вот пример кусков логов:
Браузер на обновлении показывает часть страницы админки, но без формы и начинает ждать. Тем временем apache трудится на 100% и не слетает по таймауту - помогает только его убийство.
Второй менее легальный вариант - сделать парсер яндекс.маркета. Видел предложения от программеров. Простой скрипт - вводится название товара, скрипт обрабатывает запрос и выдает массив с параметрами. Но эта информация менее структуроированная и могут быть глюки. За скрипт такой просили всего 100 баксов.
Есть сервис http://icecat.biz/ - за определенную ежемесячную подписку предоставляет XML-описание для различных товаров, в основном электроника и компьютерщина всякая. Там по-моему, 300 евро в месяц стоит. Я думаю, вам хватит, чтобы выкачать всю нужную информацию.
на событие нажатия кнопки. Кнопка - это элемент формы, т.е. при нажатии на нее отправляется форма. В форме содержится информация, допустим, количество товаров или признак того, что отправлена форма. В скрипте допустим:
Все дело в том, что здесь у большинства партнеров специфика именно программирование сайтов, интеграция с 1С, организация сложной бизнес-логики на сайте. Если вы собрались оценивать их по критерию "анимированный логотип", то найдете вы только тех, кто сделает хорошо анимированный логотип. Не более.
mysql_escape_string - это функция PHP (PHP 4 >= 4.0.3, PHP 5, PECL mysql:1.0). Чего вдруг она перестала работать - вот это загадка. Отпишитесь хостеру в любом случае.
Смотря что вы имеете в виду под "подмагазинами". Если вы сможете сделать раздел сайта в качестве отдельного магазина, то вам использовать многосайтовость не придется. У вас просто будет отдельный раздел с отдельным каталогом, оформлением заказа и т.д.