За месяц Апрель, 2008

Собственный php.ini на хостинге с панелью управления Cpanel

Как создать собственную конфигурацию php.ini на хостинге с панелью управления Cpanel

Конфигурационные переменные php можно изменять следующими способами:

  • во время выполнения скрипта функцией ini_set;
  • в файле .htaccess в каталоге выполнения скрипта;
  • в конфигурационном файле php.ini

Можно воспользоваться функцией php ini_set(varname, newvalue) - устанавливает для переменной varname значение newvalue на время выполнения скрипта. Однако, не для всех переменных можно задать значение этой функцией. Некоторые переменные нельзя изменять как непосредственно в скрипте, так и в .htaccess.

К тому же, довольно часто в целях безопасности хостер запрещает использование php_value и php_flag в .htaccess-файлах. Однако, как быть, если требуется изменить конфигурацию php? Добавляем собственный php.ini в Cpanel

Опубликовано Апрель 22, 2008 | автор: levik  |  Комментарий (1) »

easypopulate или импорт-экспорт в OsCommerce

EasyPopulate - хто этО?

EasyPopulate - плагин (или файл-модуль.. как угодно) для OsCommerce, который позволяет экспортировать товары из интернет-магазинов на базе OScommerce (например, в csv-формате), редактировать их (например, в Excel) и импортировать обратно в интернет-магазин. Кроме того, файл с информацией о товарах можно автоматически генерировать (часто удобно делать напрямую обработкой-выгрузкой из 1С).

Сомнений не возникает, что  EasyPopulate - штука полезная. Если сборка магазина OsCommerce более-менее солидная, то скорее всего, наличие сей “фичи” уже имеется. Если же нет - можно установить таковую и самостоятельно.

Как начать работу с Easypopulate

Проще всего сделать экспорт товаров (ищем в меню админки где-то в каталоге) из интернет-магазина и открыть получившийся файл любым редактором csv (скорее всего, это будет Excel). Если файл с расширением .txt, то придется пройти небольшую процедуру определения формата файла - табуляторы, строки, форматы ячеек.. Проблем возникнуть не должно.

Структура файла не слишком замысловата - первая строка, как и положено “заголовочная”. Значение большинства полей интуитивно понятно (v_products_id, v_products_model,v_products_image…). Для полной уверенности можно ознакомиться с форматом данных EasyPopulate. В последующих строках идут значения полей для каждого товара. Следует отметить, что при необходимости товар и категории будут добавлены автоматически. Глубина вложенности категорий ограничена шестью, но на практике этого вполне хватает.

Внутри easypopulate или “ручками”

При наличии некоторых знаний php беглый просмотр файла easypopulate.php прояснит некоторые детали,  изначально скрытые от глаз  пользователя. Документацию ведь читать некогда :) Да.. ещё, следует обратить внимание на версию файла… И не торопиться обновлять до последней - скорее всего в используемой версии/сборке магазина файл был отредактирован и довольно сильно отличается от оригинального (такова уж особенность OsCommerce) …

Встречался с версиями, у которых “всё в одном” - html (+php, куда ж без него) код, импорт и экспорт в одном файле. Первая половина отвечает за экспорт, (блок if download…) , потом - импорт в Oscommerce ($localfile or is_uploaded_file), импорт с разбиением на части (if (is_uploaded_file($usrfl) && $split==1) …) - что-то похожее реализовано в импорте для virtuemart (joomla) , дальше - вывод HTML (форма для импорта), чуть ниже - функции обработки.

Основная обработка производится функциями ep_create_filelayout() и walk() (импорт)

Импорт в Oscommerce дополнительных полей

Добавить в файл  импорта дополнительные поля (не забыть заголовки) и обработать их в easypopulate (в функции walk). В общем-то всё :)

Импорт в Oscommerce товаров и атрибутов в одном файле

Вообще, в файле easypopulate реализован импорт-экспорт атрибутов отдельным файлом (для экспорта выбрать файл экспорта - атрибуты товаров). Т.е. товары загружаем файлом товаров, а атрибуты - файлом атрибутов. И экспорт реализован слегка.. скажем так неудобно - в результате много “пустых” данных (а-ля представляем граф матрицей или почти  таблица пифагора - на пересечениях строки и столбца, если для товара имеется атрибут, то в графе “Цена” указывается значение разницы от основной. И независимо от того, есть атрибут или нет - его id и значение атрибута)

v_attribute_options_id_1 v_attribute_options_name_1_4 v_attribute_values_id_1_1 v_attribute_values_price_1_1 v_attribute_values_name_1_1_4 v_attribute_values_id_1_2 (… и тд для всех значений атрибута _1, потом _2)

Строчки присутствуют для всех товаров, столбцы - для всех атрибутов и значений атрибутов*3

Конечно, это не всегда удобно - например вариант экспорта атрибутов, когда в магазине ~6 тыс. товаров и НЕКОТОРЫЕ товары имеют один атрибут на vps генерировался несколько минут и весил в итоге 1.5 Мб. Импорт такого файла - тоже процедура довольно затратная.. :)

Как вариант - импорт в Oscommerce товаров и атрибутов одним файлом - добавляем столбец (к примеру, v_my_attribute_1) и помещаем туда значения (или предварительно сформированные ID, соответствующие внутренним ID магазина) и обрабатываем в функции walk.

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

Приходилось сталкиваться с импортом OsCommerce? Нашли ошибку? Есть что добавить?  - Добро пожаловать в комментарии.

Опубликовано Апрель 17, 2008 | автор: levik  |  Нет комментариев »

Бланки на PHP.

Довольно часто для обеспечения удобства работы с интернет магазином требуется решить задачу оформления различных шаблонных документов - всевозможные бланки почтовых отправлений, квитанций на оплату, накладных… При этом, неплохо иметь возможность “на всякий случай” отредактировать получившийся документ.

Один из вариантов решения - подготовка шаблонов документов в формате RTF (в программе MS WORD). При подготовке шаблона туда, где должны располагаться подставляемые данные, например, сумма заказа, помещаем “оригинальную” последовательность символов, например, %SUM%.
Внимание! При подготовке шаблона аккуратнее со сменой языков. При работе в программе ворд следует выделить последовательность символов (%SUM%), выбрать пункт меню Сервис-Язык-Выбрать язык. Я выбирал Русский :)
Шаблон сохраняем на сервер (например, с именем template.rtf в каталог со скриптом)

В скрипте, при работе с шаблоном, просто заменяем последовательность символов:$file = file_get_contents('template.rtf');
$file = str_replace("%SUM%", ' '.$sum, $file);
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=nakladnaya.rtf');

Где брать бланки документов? В интернете.. Все более-менее актуальные есть в “свободном” доступе. В крайнем случае, можно заплатить.

Опубликовано Апрель 12, 2008 | автор: levik  |  Комментарии (3) »

Коды ошибок Mysql

Список кодов ошибок Mysql

смотреть все коды ошибок MySQL (Eng)

Опубликовано Апрель 2, 2008 | автор: levik  |  Комментарий (1) »