-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
71 additions
and
67 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,47 +1,54 @@ | ||
YmlDocument Class | ||
============ | ||
|
||
наследуется от http://php.net/manual/ru/class.domdocument.php | ||
Наследуется от [DomDocument](http://php.net/manual/ru/class.domdocument.php) | ||
|
||
`__construct($name, $company ,$enc = "UTF-8")` - тут создается сам xml и добавляются первые обязательные параметры. | ||
|
||
`__construct($name, $company ,$url ,$enc = "UTF-8")` | ||
Тут создается сам xml и добавляются первые обязательные параметры. **Их надо проверить!!!** | ||
--------- | ||
Далее идет группа параметров самого магазина(общие поля): | ||
|
||
`cms($name,$version = false)` добавляем cms и опционально версию | ||
`url($url)` - проверяем длину, 50 символов. | ||
|
||
`agency($name)` студия, тупо добавляем | ||
`cms($name,$version = false)` - добавляем cms и опционально версию. | ||
|
||
`email($mail)` валидируем и добавляем | ||
`agency($name)` - студия, просто добавляем. | ||
|
||
`function delivery($cost,$days,$before = -1)` добавить одну доставку. много проверок | ||
`email($mail)` - валидируем и добавляем. | ||
|
||
`cpa($val = true)` на входе bool, на выходе "0" или "1" | ||
`delivery($cost,$days,$before = -1)` - добавить одну доставку. много проверок. | ||
|
||
`currency($id,$rate,$plus = 0)` проверяем отсутствие запятых в числах. Опционально надбавка сверху курса | ||
`cpa($val = true)` - на входе bool, на выходе "0" или "1". | ||
|
||
`category($id,$name,$parentId = false)` int > 0 . Опционально ид родителя | ||
`currency($id,$rate,$plus = 0)` - проверяем отсутствие запятых в числах. Опционально надбавка сверху курса. | ||
|
||
`category($id,$name,$parentId = false)` - id целые и положительные . Опционально id родителя. | ||
|
||
------------------ | ||
Далее идет группа функций, которые возвращают товарные предложения нужного типа.<br> | ||
**Возможно требует внимания**, поскольку я часто забываю здесь установить обязательный параметр, или путаю значение для `type`. | ||
|
||
`simple( $price, $currency,$category,$name, $url='' )` - создаем упрощенный оффер, проверяем длину имени | ||
`simple( $name, $id, $price, $currency, $category, $from = NULL )` - создаем упрощенный оффер, проверяем длину имени. | ||
|
||
`arbitrary( $price, $currency,$category,$vendor,$model, $url='' )` - создаем произвольный оффер | ||
`arbitrary( $model, $vendor, $id, $price, $currency, $category, $from = NULL )` - создаем произвольный оффер. | ||
|
||
`book( $price, $currency,$category,$name, $url='' )` - оффер с книгами, на имя забил | ||
`book($name, $publisher, $age, $age_u, $id, $price, $currency, $category, $from = NULL)` - оффер с книгами. | ||
|
||
`audiobook( $price, $currency,$category,$name, $url='' )` - оффер с аудиокнигами, на имя забил | ||
`audiobook( $name, $publisher, $id, $price, $currency, $category, $from = NULL )` - оффер с аудиокнигами. | ||
|
||
`music( $price, $currency,$category,$name, $url='' )` - музыка, на имя забил | ||
`artist( $title, $id, $price, $currency, $category, $from = NULL )` - аудио и видеопродукция. | ||
|
||
`video( $price, $currency,$category,$name, $url='' )` - видео, name становится title | ||
`tour( $name,$days,$included,$transport, $id, $price, $currency, $category, $from = NULL )` - туры, побоялся устанавливать ограничение на длину имени. | ||
|
||
`tour( $price, $currency,$category,$name,$days,$included,$transport, $url='' )` - тур, явно напутал type | ||
`event( $name,$place,$date, $id, $price, $currency, $category, $from = NULL)` - событие, длину имени тоже не ограничиваю. | ||
|
||
`event( $price, $currency,$category,$name,$place,$date, $url='' )` - событие, явно напутал type | ||
`medicine( $name, $id, $price, $currency, $category, $from = NULL )` - лекарства. Ряд параметров устанавливаю принудительно. | ||
|
||
--------------- | ||
`newOffer( $price, $currency,$category,$type,$url )` - служебная функция, **все сверху её юзают** | ||
Далее идет ряд служебных `protected`-функций: | ||
|
||
`newOffer( $id, $price, $currency, $category, $type, $from )` - вызывается при создании любого типа оффера, требует и проверяет поля обязательные для всех типов. | ||
|
||
`exc($text)` - обижаемся и выкидываем исключени | ||
`exc($text)` - короткий псевдоним для выкидывания исключений. | ||
|
||
`add($name,$value=false)` - добавляем элемент в этом, глобальном пространстве | ||
`add($name,$value=false)` - Добавляем элемент к элементу `shop`. Все общие поля магазина используют эту функцию. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,83 +1,77 @@ | ||
YmlOffer Class | ||
============ | ||
Смотри исходник, а не визуализацию в браузере | ||
Унаследован от класса [DomElement](http://php.net/manual/ru/class.domelement.php). | ||
|
||
http://php.net/manual/ru/class.domelement.php | ||
|
||
|
||
`protected $type` - переменная, в которую в конструкторе записывается тип нашего Offer, т.е. упрощенный, произвольный, книги и т.д. | ||
`protected $type` - переменная, в которую в конструкторе записывается тип нашего Offer, т.е. 'упрощенный', 'произвольный', 'книги' и т.д. | ||
|
||
`protected $permitted` - массив, в который в конструкторе записывается список разрешенных полей для данного типа товарного предложения. | ||
|
||
`protected $aliases` - в этом массиве записываются короткие имена для некоторых полей, например *origin* вместо *country_of_origin*. **Атеншн!!! проверь работу без алиасов** | ||
`protected $aliases` - в этом массиве записываются короткие имена для некоторых полей, например *origin* вместо *country_of_origin*. Методы можно вызывать и по оригинальным названием полей. Но! Если псевдоним сделан вне этого массива, то вызов возможен только по псевдониму. | ||
|
||
---------------------- | ||
|
||
`public __construct($type)` - в нем мы только записываем тип предложения и какие функции разрешены для этого типа. Переменная `$p` создавалась из **Таблички** с перечислением полей, и сюда не включаются поля доступные всем предложениям. Вместо этого они просто объявляются как public. Если поле обязательное, то оно вообще прячется в конструкторе данного типа предложения в ymlDocument.php, а здесь запрещается, чтобы повторно не вызвали. | ||
`__construct($type,$enc)` - в нем мы только записываем тип предложения и какие функции разрешены для этого типа. Переменная `$p` создавалась из таблицы [Обзор_полей.ods](Обзор_полей.ods). Некоторых полей здесь нет, они просто объявлены как `public`. Если поле обязательное, то оно вообще прячется в конструкторе данного типа предложения в *ymlDocument.php*, а здесь запрещается, чтобы повторно не вызвали. | ||
|
||
---------------- | ||
Дальше идет небольшой блок полей, доступных всем предложениям. Они ещё в добавок все записываются как атрибуты корневого элемента "offer", а не как самостоятельное поле с значением. | ||
|
||
`public id($id)` - короче 20 символов и только буквы и цифры. | ||
|
||
Дальше идет небольшой блок полей, доступных всем предложениям. Некоторые записываются как атрибут поля `offer`. | ||
|
||
`public available($val=true)` - boolean. | ||
`available($val=true)` - boolean, атрибут. | ||
|
||
`bid($bid)` - integer, атрибут. | ||
|
||
`public bid($bid)` - integer. | ||
`cbid($cbid)` - integer, атрибут. | ||
|
||
`fee($fee)` - integer, атрибут. | ||
|
||
`public cbid($cbid)` - integer. | ||
`url($url)` - не длиннее 512 символов. | ||
|
||
`oldprice($oldprice)` - целое и положительное. | ||
|
||
`public fee($fee)` - integer. | ||
`dlvOption($cost,$days,$before = -1)` - добавляет опцию доставки, проверят их количество и типы. Невозможно вызвать как `delivery-options` или `option`. | ||
|
||
`url` и тд | ||
`description($txt,$tags = false)` - проверяет длину и добавляет, при необходимости через CDATA. | ||
|
||
--------------- | ||
### Вот с этой функцией очень надо разобраться ### | ||
|
||
`__call($method, $args)` - "волшебный метод", в котором спрятанно всё разграничение полей между типами офферов. Сначала мы расшифровываем псевдоним функции, если он есть. Потом проверяем, а разрешено ли данное поле у данного типа оффера. Потом идут "значения, которые просто добавляем" - чтобы не создавать десятки однотипных функций без проверок, мы просто добавляем поле по имени. Потом флаги, у которых тоже проверка только на boolean. Ну и если до сих пор мы не нашли ни чего нужного - значит этой функциии нужны более сложные проверки, добавляем подчеркивание и вызываем. | ||
`__call($method, $args)` - "волшебный метод", в котором спрятано всё разграничение полей между типами офферов. Сначала мы расшифровываем псевдоним функции, если он есть. Потом проверяем, а разрешено ли данное поле у данного типа оффера. Потом идут "значения, которые просто добавляем" - чтобы не создавать десятки однотипных функций без проверок, мы просто добавляем поле по имени. Потом флаги, у которых тоже проверка только на boolean. Ну и если до сих пор мы не нашли ничего нужного - значит этой функции нужны более сложные проверки, добавляем подчеркивание и вызываем. | ||
|
||
--------------- | ||
А вот здесь идут те самые функции с чуть более сложными проверками. Все они принимают **массив** входных параметров из функции `__call()` | ||
|
||
`protected _page_extent($args)` - int>0. | ||
|
||
|
||
`protected _description($args)` - длина 175. | ||
Далее идут те самые функции с чуть более сложными проверками. Все они принимают **массив** входных параметров из функции `__call()`. Также они все `protected`, чтобы нельзя было вызвать минуя ограничение. | ||
|
||
`_minq($args)` - int>0, нельзя вызвать как min-quantity. Есть возможность вызвать для лекарств, которой тоже не должно быть. | ||
|
||
`protected _sales_notes($args)` - длина 50 | ||
`_stepq($args)` - int>0, нельзя вызвать как step-quantity. | ||
|
||
`_page_extent($args)` - int>0. | ||
|
||
`protected _age($args)` - 0, 6, 12, 16 или 18 для age, 0<=age<=12 для month | ||
`_sales_notes($args)` - не длиннее 50 символов. | ||
|
||
`_age($args)` - проверка на список допустимых значений. | ||
|
||
`protected _param($args)` - просто 2-3 входных параметра | ||
`_param($args)` - нет проверок, но специфично добавляется. | ||
|
||
`_picture( $args )` - проверка на количество и длину адреса. | ||
|
||
`protected _picture( $args )` - не больше 10шт, не длинне 512 символов | ||
`_group_id($args)` - int не длиннее 9 цифр. | ||
|
||
`_barcode($args)` - список допустимых длин. | ||
|
||
`protected _barcode($args)` - 8, 12 или 13 цифр | ||
`_year($args)` - int. | ||
|
||
`_dimensions($args)` - float 3 раза. | ||
|
||
`protected _year($args)` - int | ||
`_weight($args)` - float. | ||
|
||
|
||
`protected _dimensions($args)` - 3 раза float | ||
|
||
|
||
`protected _weight($args)` - float | ||
|
||
|
||
`protected _cpa($args)` - на выходе 0 или 1 | ||
`_cpa($args)` - boolean, на выходе 0 и 1 | ||
|
||
------------ | ||
Пара служебных функций | ||
Далее несколько служебных функций. | ||
|
||
`check($expr , $msg)` - сокращение для выкидывания исключений. | ||
|
||
`public addStr( $name,$val,$limit )` - добавить строчку с ограничением длины | ||
`addStr( $name,$val,$limit )` - добавить строчку с ограничением длины. | ||
|
||
|
||
`public add( $name,$val=false )` - просто добавить элемент | ||
`add( $name,$val=false )` - просто добавить элемент. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters