Completed
Push — master ( ac66b3...ab3b6f )
by Aimeos
07:35 queued 01:23
created
lib/custom/tests/TestHelper.php 1 patch
Indentation   +78 added lines, -78 removed lines patch added patch discarded remove patch
@@ -8,125 +8,125 @@
 block discarded – undo
8 8
  */
9 9
 class TestHelper
10 10
 {
11
-	private static $aimeos;
12
-	private static $context = array();
11
+    private static $aimeos;
12
+    private static $context = array();
13 13
 
14 14
 
15
-	public static function bootstrap()
16
-	{
17
-		$aimeos = self::getAimeos();
15
+    public static function bootstrap()
16
+    {
17
+        $aimeos = self::getAimeos();
18 18
 
19
-		$includepaths = $aimeos->getIncludePaths();
20
-		$includepaths[] = get_include_path();
21
-		set_include_path( implode( PATH_SEPARATOR, $includepaths ) );
22
-	}
19
+        $includepaths = $aimeos->getIncludePaths();
20
+        $includepaths[] = get_include_path();
21
+        set_include_path( implode( PATH_SEPARATOR, $includepaths ) );
22
+    }
23 23
 
24 24
 
25
-	public static function getContext( $site = 'unittest' )
26
-	{
27
-		if( !isset( self::$context[$site] ) ) {
28
-			self::$context[$site] = self::createContext( $site );
29
-		}
25
+    public static function getContext( $site = 'unittest' )
26
+    {
27
+        if( !isset( self::$context[$site] ) ) {
28
+            self::$context[$site] = self::createContext( $site );
29
+        }
30 30
 
31
-		return clone self::$context[$site];
32
-	}
31
+        return clone self::$context[$site];
32
+    }
33 33
 
34 34
 
35
-	private static function getAimeos()
36
-	{
37
-		if( !isset( self::$aimeos ) )
38
-		{
39
-			require_once 'Bootstrap.php';
40
-			spl_autoload_register( 'Aimeos\\Bootstrap::autoload' );
35
+    private static function getAimeos()
36
+    {
37
+        if( !isset( self::$aimeos ) )
38
+        {
39
+            require_once 'Bootstrap.php';
40
+            spl_autoload_register( 'Aimeos\\Bootstrap::autoload' );
41 41
 
42
-			$extdir = dirname( dirname( dirname( __DIR__ ) ) );
43
-			self::$aimeos = new \Aimeos\Bootstrap( array( $extdir ), true );
44
-		}
42
+            $extdir = dirname( dirname( dirname( __DIR__ ) ) );
43
+            self::$aimeos = new \Aimeos\Bootstrap( array( $extdir ), true );
44
+        }
45 45
 
46
-		return self::$aimeos;
47
-	}
46
+        return self::$aimeos;
47
+    }
48 48
 
49 49
 
50
-	/**
51
-	 * @param string $site
52
-	 */
53
-	private static function createContext( $site )
54
-	{
55
-		$ctx = new \Aimeos\MShop\Context\Item\Ezpublish();
56
-		$aimeos = self::getAimeos();
50
+    /**
51
+     * @param string $site
52
+     */
53
+    private static function createContext( $site )
54
+    {
55
+        $ctx = new \Aimeos\MShop\Context\Item\Ezpublish();
56
+        $aimeos = self::getAimeos();
57 57
 
58 58
 
59
-		$paths = $aimeos->getConfigPaths();
60
-		$paths[] = __DIR__ . DIRECTORY_SEPARATOR . 'config';
59
+        $paths = $aimeos->getConfigPaths();
60
+        $paths[] = __DIR__ . DIRECTORY_SEPARATOR . 'config';
61 61
 
62
-		$conf = new \Aimeos\MW\Config\PHPArray( array(), $paths );
63
-		$ctx->setConfig( $conf );
62
+        $conf = new \Aimeos\MW\Config\PHPArray( array(), $paths );
63
+        $ctx->setConfig( $conf );
64 64
 
65 65
 
66
-		$dbm = new \Aimeos\MW\DB\Manager\DBAL( $conf );
67
-		$ctx->setDatabaseManager( $dbm );
66
+        $dbm = new \Aimeos\MW\DB\Manager\DBAL( $conf );
67
+        $ctx->setDatabaseManager( $dbm );
68 68
 
69 69
 
70
-		$logger = new \Aimeos\MW\Logger\File( $site . '.log', \Aimeos\MW\Logger\Base::DEBUG );
71
-		$ctx->setLogger( $logger );
70
+        $logger = new \Aimeos\MW\Logger\File( $site . '.log', \Aimeos\MW\Logger\Base::DEBUG );
71
+        $ctx->setLogger( $logger );
72 72
 
73 73
 
74
-		$cache = new \Aimeos\MW\Cache\None();
75
-		$ctx->setCache( $cache );
74
+        $cache = new \Aimeos\MW\Cache\None();
75
+        $ctx->setCache( $cache );
76 76
 
77 77
 
78
-		$i18n = new \Aimeos\MW\Translation\None( 'de' );
79
-		$ctx->setI18n( array( 'de' => $i18n ) );
78
+        $i18n = new \Aimeos\MW\Translation\None( 'de' );
79
+        $ctx->setI18n( array( 'de' => $i18n ) );
80 80
 
81 81
 
82
-		$session = new \Aimeos\MW\Session\None();
83
-		$ctx->setSession( $session );
82
+        $session = new \Aimeos\MW\Session\None();
83
+        $ctx->setSession( $session );
84 84
 
85 85
 
86
-		$localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager( $ctx );
87
-		$localeItem = $localeManager->bootstrap( $site, '', '', false );
86
+        $localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager( $ctx );
87
+        $localeItem = $localeManager->bootstrap( $site, '', '', false );
88 88
 
89
-		$ctx->setLocale( $localeItem );
89
+        $ctx->setLocale( $localeItem );
90 90
 
91
-		$ctx->setEditor( 'ai-ezpublish:unittest' );
91
+        $ctx->setEditor( 'ai-ezpublish:unittest' );
92 92
 
93 93
 
94
-		$ctx->setEzUser( function( $code, $email, $password ) use ( $ctx ) {
94
+        $ctx->setEzUser( function( $code, $email, $password ) use ( $ctx ) {
95 95
 
96
-			$id = mt_rand( -0x7fffffff,-1 );
97
-			$dbm = $ctx->getDatabaseManager();
98
-			$dbconf = $ctx->getConfig()->get( 'resource/db-customer' );
99
-			$dbname = ( $dbconf ? 'db-customer' : 'db' );
100
-			$conn = $dbm->acquire( $dbname );
96
+            $id = mt_rand( -0x7fffffff,-1 );
97
+            $dbm = $ctx->getDatabaseManager();
98
+            $dbconf = $ctx->getConfig()->get( 'resource/db-customer' );
99
+            $dbname = ( $dbconf ? 'db-customer' : 'db' );
100
+            $conn = $dbm->acquire( $dbname );
101 101
 
102
-			try
103
-			{
104
-				$stmt = $conn->create( 'INSERT INTO "ezuser" (
102
+            try
103
+            {
104
+                $stmt = $conn->create( 'INSERT INTO "ezuser" (
105 105
 					"contentobject_id", "email", "login", "login_normalized", "password_hash", "password_hash_type"
106 106
 				) VALUES (
107 107
 					?, ?, ?, ?, ?, 5
108 108
 				)' );
109 109
 
110
-				$stmt->bind( 1, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
111
-				$stmt->bind( 2, $email );
112
-				$stmt->bind( 3, $code );
113
-				$stmt->bind( 4, $code );
114
-				$stmt->bind( 5, $password );
110
+                $stmt->bind( 1, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
111
+                $stmt->bind( 2, $email );
112
+                $stmt->bind( 3, $code );
113
+                $stmt->bind( 4, $code );
114
+                $stmt->bind( 5, $password );
115 115
 
116
-				$stmt->execute()->finish();
116
+                $stmt->execute()->finish();
117 117
 
118
-				$dbm->release( $conn, $dbname );
119
-			}
120
-			catch( \Exception $e )
121
-			{
122
-				$dbm->release( $conn, $dbname );
123
-				throw $e;
124
-			}
118
+                $dbm->release( $conn, $dbname );
119
+            }
120
+            catch( \Exception $e )
121
+            {
122
+                $dbm->release( $conn, $dbname );
123
+                throw $e;
124
+            }
125 125
 
126
-			return $id;
127
-		} );
126
+            return $id;
127
+        } );
128 128
 
129 129
 
130
-		return $ctx;
131
-	}
130
+        return $ctx;
131
+    }
132 132
 }
Please login to merge, or discard this patch.
lib/custom/src/MShop/Context/Item/Ezpublish.php 1 patch
Indentation   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -19,33 +19,33 @@
 block discarded – undo
19 19
  */
20 20
 class Ezpublish extends \Aimeos\MShop\Context\Item\Standard
21 21
 {
22
-	private $ezUser;
23
-
24
-
25
-	/**
26
-	 * Sets the user creating function
27
-	 *
28
-	 * @param \Closure $userfcn Function to create a new user and return its ID
29
-	 * @return \Aimeos\MShop\Context\Item\Iface Context item for chaining method calls
30
-	 */
31
-	public function setEzUser( \Closure $userfcn )
32
-	{
33
-		$this->ezUser = $userfcn;
34
-		return $this;
35
-	}
36
-
37
-
38
-	/**
39
-	 * Returns the user creating function
40
-	 *
41
-	 * @return \Closure Function to create a new user and return its ID
42
-	 */
43
-	public function getEzUser()
44
-	{
45
-		if( !isset( $this->ezUser ) ) {
46
-			throw new \Aimeos\MShop\Exception( sprintf( 'eZ user function not available' ) );
47
-		}
48
-
49
-		return $this->ezUser;
50
-	}
22
+    private $ezUser;
23
+
24
+
25
+    /**
26
+     * Sets the user creating function
27
+     *
28
+     * @param \Closure $userfcn Function to create a new user and return its ID
29
+     * @return \Aimeos\MShop\Context\Item\Iface Context item for chaining method calls
30
+     */
31
+    public function setEzUser( \Closure $userfcn )
32
+    {
33
+        $this->ezUser = $userfcn;
34
+        return $this;
35
+    }
36
+
37
+
38
+    /**
39
+     * Returns the user creating function
40
+     *
41
+     * @return \Closure Function to create a new user and return its ID
42
+     */
43
+    public function getEzUser()
44
+    {
45
+        if( !isset( $this->ezUser ) ) {
46
+            throw new \Aimeos\MShop\Exception( sprintf( 'eZ user function not available' ) );
47
+        }
48
+
49
+        return $this->ezUser;
50
+    }
51 51
 }
Please login to merge, or discard this patch.
lib/custom/src/MShop/Customer/Manager/Lists/Ezpublish.php 1 patch
Indentation   +172 added lines, -172 removed lines patch added patch discarded remove patch
@@ -18,177 +18,177 @@
 block discarded – undo
18 18
  * @subpackage Customer
19 19
  */
20 20
 class Ezpublish
21
-	extends \Aimeos\MShop\Customer\Manager\Lists\Standard
22
-	implements \Aimeos\MShop\Customer\Manager\Lists\Iface, \Aimeos\MShop\Common\Manager\Lists\Iface
21
+    extends \Aimeos\MShop\Customer\Manager\Lists\Standard
22
+    implements \Aimeos\MShop\Customer\Manager\Lists\Iface, \Aimeos\MShop\Common\Manager\Lists\Iface
23 23
 {
24
-	private $searchConfig = array(
25
-		'customer.lists.id'=> array(
26
-			'code'=>'customer.lists.id',
27
-			'internalcode'=>'ezuli."id"',
28
-			'internaldeps' => array( 'LEFT JOIN "ezuser_list" AS ezuli ON ( ezu."id" = ezuli."parentid" )' ),
29
-			'label'=>'Customer list ID',
30
-			'type'=> 'integer',
31
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_INT,
32
-			'public' => false,
33
-		),
34
-		'customer.lists.siteid'=> array(
35
-			'code'=>'customer.lists.siteid',
36
-			'internalcode'=>'ezuli."siteid"',
37
-			'label'=>'Customer list site ID',
38
-			'type'=> 'integer',
39
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_INT,
40
-			'public' => false,
41
-		),
42
-		'customer.lists.parentid'=> array(
43
-			'code'=>'customer.lists.parentid',
44
-			'internalcode'=>'ezuli."parentid"',
45
-			'label'=>'Customer list parent ID',
46
-			'type'=> 'integer',
47
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_INT,
48
-			'public' => false,
49
-		),
50
-		'customer.lists.domain'=> array(
51
-			'code'=>'customer.lists.domain',
52
-			'internalcode'=>'ezuli."domain"',
53
-			'label'=>'Customer list domain',
54
-			'type'=> 'string',
55
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
56
-		),
57
-		'customer.lists.typeid' => array(
58
-			'code'=>'customer.lists.typeid',
59
-			'internalcode'=>'ezuli."typeid"',
60
-			'label'=>'Customer list type ID',
61
-			'type'=> 'integer',
62
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
63
-			'public' => false,
64
-		),
65
-		'customer.lists.refid'=> array(
66
-			'code'=>'customer.lists.refid',
67
-			'internalcode'=>'ezuli."refid"',
68
-			'label'=>'Customer list reference ID',
69
-			'type'=> 'string',
70
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
71
-		),
72
-		'customer.lists.datestart' => array(
73
-			'code'=>'customer.lists.datestart',
74
-			'internalcode'=>'ezuli."start"',
75
-			'label'=>'Customer list start date/time',
76
-			'type'=> 'datetime',
77
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
78
-		),
79
-		'customer.lists.dateend' => array(
80
-			'code'=>'customer.lists.dateend',
81
-			'internalcode'=>'ezuli."end"',
82
-			'label'=>'Customer list end date/time',
83
-			'type'=> 'datetime',
84
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
85
-		),
86
-		'customer.lists.config' => array(
87
-			'code'=>'customer.lists.config',
88
-			'internalcode'=>'ezuli."config"',
89
-			'label'=>'Customer list position',
90
-			'type'=> 'string',
91
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
92
-		),
93
-		'customer.lists.position' => array(
94
-			'code'=>'customer.lists.position',
95
-			'internalcode'=>'ezuli."pos"',
96
-			'label'=>'Customer list position',
97
-			'type'=> 'integer',
98
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
99
-		),
100
-		'customer.lists.status' => array(
101
-			'code'=>'customer.lists.status',
102
-			'internalcode'=>'ezuli."status"',
103
-			'label'=>'Customer list status',
104
-			'type'=> 'integer',
105
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
106
-		),
107
-		'customer.lists.ctime'=> array(
108
-			'code'=>'customer.lists.ctime',
109
-			'internalcode'=>'ezuli."ctime"',
110
-			'label'=>'Customer list create date/time',
111
-			'type'=> 'datetime',
112
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
113
-		),
114
-		'customer.lists.mtime'=> array(
115
-			'code'=>'customer.lists.mtime',
116
-			'internalcode'=>'ezuli."mtime"',
117
-			'label'=>'Customer list modification date/time',
118
-			'type'=> 'datetime',
119
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
120
-		),
121
-		'customer.lists.editor'=> array(
122
-			'code'=>'customer.lists.editor',
123
-			'internalcode'=>'ezuli."editor"',
124
-			'label'=>'Customer list editor',
125
-			'type'=> 'string',
126
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
127
-		),
128
-	);
129
-
130
-
131
-	/**
132
-	 * Removes old entries from the storage.
133
-	 *
134
-	 * @param array $siteids List of IDs for sites whose entries should be deleted
135
-	 */
136
-	public function cleanup( array $siteids )
137
-	{
138
-		$path = 'mshop/customer/manager/lists/submanagers';
139
-		foreach( $this->getContext()->getConfig()->get( $path, array( 'type' ) ) as $domain ) {
140
-			$this->getSubManager( $domain )->cleanup( $siteids );
141
-		}
142
-
143
-		$this->cleanupBase( $siteids, 'mshop/customer/manager/lists/ezpublish/delete' );
144
-	}
145
-
146
-
147
-	/**
148
-	 * Returns the list attributes that can be used for searching.
149
-	 *
150
-	 * @param boolean $withsub Return also attributes of sub-managers if true
151
-	 * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
152
-	 */
153
-	public function getSearchAttributes( $withsub = true )
154
-	{
155
-		$path = 'mshop/customer/manager/lists/submanagers';
156
-
157
-		return $this->getSearchAttributesBase( $this->searchConfig, $path, array( 'type' ), $withsub );
158
-	}
159
-
160
-
161
-	/**
162
-	 * Returns a new manager for customer extensions
163
-	 *
164
-	 * @param string $manager Name of the sub manager type in lower case
165
-	 * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
166
-	 * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
167
-	 */
168
-	public function getSubManager( $manager, $name = null )
169
-	{
170
-		return $this->getSubManagerBase( 'customer', 'lists/' . $manager, ( $name === null ? 'Ezpublish' : $name ) );
171
-	}
172
-
173
-
174
-	/**
175
-	 * Returns the config path for retrieving the configuration values.
176
-	 *
177
-	 * @return string Configuration path (mshop/customer/manager/lists/ezpublish/)
178
-	 */
179
-	protected function getConfigPath()
180
-	{
181
-		return 'mshop/customer/manager/lists/ezpublish/';
182
-	}
183
-
184
-
185
-	/**
186
-	 * Returns the search configuration for searching items.
187
-	 *
188
-	 * @return array Associative list of search keys and search definitions
189
-	 */
190
-	protected function getSearchConfig()
191
-	{
192
-		return $this->searchConfig;
193
-	}
24
+    private $searchConfig = array(
25
+        'customer.lists.id'=> array(
26
+            'code'=>'customer.lists.id',
27
+            'internalcode'=>'ezuli."id"',
28
+            'internaldeps' => array( 'LEFT JOIN "ezuser_list" AS ezuli ON ( ezu."id" = ezuli."parentid" )' ),
29
+            'label'=>'Customer list ID',
30
+            'type'=> 'integer',
31
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_INT,
32
+            'public' => false,
33
+        ),
34
+        'customer.lists.siteid'=> array(
35
+            'code'=>'customer.lists.siteid',
36
+            'internalcode'=>'ezuli."siteid"',
37
+            'label'=>'Customer list site ID',
38
+            'type'=> 'integer',
39
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_INT,
40
+            'public' => false,
41
+        ),
42
+        'customer.lists.parentid'=> array(
43
+            'code'=>'customer.lists.parentid',
44
+            'internalcode'=>'ezuli."parentid"',
45
+            'label'=>'Customer list parent ID',
46
+            'type'=> 'integer',
47
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_INT,
48
+            'public' => false,
49
+        ),
50
+        'customer.lists.domain'=> array(
51
+            'code'=>'customer.lists.domain',
52
+            'internalcode'=>'ezuli."domain"',
53
+            'label'=>'Customer list domain',
54
+            'type'=> 'string',
55
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
56
+        ),
57
+        'customer.lists.typeid' => array(
58
+            'code'=>'customer.lists.typeid',
59
+            'internalcode'=>'ezuli."typeid"',
60
+            'label'=>'Customer list type ID',
61
+            'type'=> 'integer',
62
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
63
+            'public' => false,
64
+        ),
65
+        'customer.lists.refid'=> array(
66
+            'code'=>'customer.lists.refid',
67
+            'internalcode'=>'ezuli."refid"',
68
+            'label'=>'Customer list reference ID',
69
+            'type'=> 'string',
70
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
71
+        ),
72
+        'customer.lists.datestart' => array(
73
+            'code'=>'customer.lists.datestart',
74
+            'internalcode'=>'ezuli."start"',
75
+            'label'=>'Customer list start date/time',
76
+            'type'=> 'datetime',
77
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
78
+        ),
79
+        'customer.lists.dateend' => array(
80
+            'code'=>'customer.lists.dateend',
81
+            'internalcode'=>'ezuli."end"',
82
+            'label'=>'Customer list end date/time',
83
+            'type'=> 'datetime',
84
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
85
+        ),
86
+        'customer.lists.config' => array(
87
+            'code'=>'customer.lists.config',
88
+            'internalcode'=>'ezuli."config"',
89
+            'label'=>'Customer list position',
90
+            'type'=> 'string',
91
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
92
+        ),
93
+        'customer.lists.position' => array(
94
+            'code'=>'customer.lists.position',
95
+            'internalcode'=>'ezuli."pos"',
96
+            'label'=>'Customer list position',
97
+            'type'=> 'integer',
98
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
99
+        ),
100
+        'customer.lists.status' => array(
101
+            'code'=>'customer.lists.status',
102
+            'internalcode'=>'ezuli."status"',
103
+            'label'=>'Customer list status',
104
+            'type'=> 'integer',
105
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
106
+        ),
107
+        'customer.lists.ctime'=> array(
108
+            'code'=>'customer.lists.ctime',
109
+            'internalcode'=>'ezuli."ctime"',
110
+            'label'=>'Customer list create date/time',
111
+            'type'=> 'datetime',
112
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
113
+        ),
114
+        'customer.lists.mtime'=> array(
115
+            'code'=>'customer.lists.mtime',
116
+            'internalcode'=>'ezuli."mtime"',
117
+            'label'=>'Customer list modification date/time',
118
+            'type'=> 'datetime',
119
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
120
+        ),
121
+        'customer.lists.editor'=> array(
122
+            'code'=>'customer.lists.editor',
123
+            'internalcode'=>'ezuli."editor"',
124
+            'label'=>'Customer list editor',
125
+            'type'=> 'string',
126
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
127
+        ),
128
+    );
129
+
130
+
131
+    /**
132
+     * Removes old entries from the storage.
133
+     *
134
+     * @param array $siteids List of IDs for sites whose entries should be deleted
135
+     */
136
+    public function cleanup( array $siteids )
137
+    {
138
+        $path = 'mshop/customer/manager/lists/submanagers';
139
+        foreach( $this->getContext()->getConfig()->get( $path, array( 'type' ) ) as $domain ) {
140
+            $this->getSubManager( $domain )->cleanup( $siteids );
141
+        }
142
+
143
+        $this->cleanupBase( $siteids, 'mshop/customer/manager/lists/ezpublish/delete' );
144
+    }
145
+
146
+
147
+    /**
148
+     * Returns the list attributes that can be used for searching.
149
+     *
150
+     * @param boolean $withsub Return also attributes of sub-managers if true
151
+     * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
152
+     */
153
+    public function getSearchAttributes( $withsub = true )
154
+    {
155
+        $path = 'mshop/customer/manager/lists/submanagers';
156
+
157
+        return $this->getSearchAttributesBase( $this->searchConfig, $path, array( 'type' ), $withsub );
158
+    }
159
+
160
+
161
+    /**
162
+     * Returns a new manager for customer extensions
163
+     *
164
+     * @param string $manager Name of the sub manager type in lower case
165
+     * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
166
+     * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
167
+     */
168
+    public function getSubManager( $manager, $name = null )
169
+    {
170
+        return $this->getSubManagerBase( 'customer', 'lists/' . $manager, ( $name === null ? 'Ezpublish' : $name ) );
171
+    }
172
+
173
+
174
+    /**
175
+     * Returns the config path for retrieving the configuration values.
176
+     *
177
+     * @return string Configuration path (mshop/customer/manager/lists/ezpublish/)
178
+     */
179
+    protected function getConfigPath()
180
+    {
181
+        return 'mshop/customer/manager/lists/ezpublish/';
182
+    }
183
+
184
+
185
+    /**
186
+     * Returns the search configuration for searching items.
187
+     *
188
+     * @return array Associative list of search keys and search definitions
189
+     */
190
+    protected function getSearchConfig()
191
+    {
192
+        return $this->searchConfig;
193
+    }
194 194
 }
Please login to merge, or discard this patch.
lib/custom/src/MShop/Customer/Manager/Lists/Type/Ezpublish.php 1 patch
Indentation   +135 added lines, -135 removed lines patch added patch discarded remove patch
@@ -18,140 +18,140 @@
 block discarded – undo
18 18
  * @subpackage Customer
19 19
  */
20 20
 class Ezpublish
21
-	extends \Aimeos\MShop\Customer\Manager\Lists\Type\Standard
22
-	implements \Aimeos\MShop\Customer\Manager\Lists\Type\Iface
21
+    extends \Aimeos\MShop\Customer\Manager\Lists\Type\Standard
22
+    implements \Aimeos\MShop\Customer\Manager\Lists\Type\Iface
23 23
 {
24
-	private $searchConfig = array(
25
-		'customer.lists.type.id' => array(
26
-			'code'=>'customer.lists.type.id',
27
-			'internalcode'=>'ezulity."id"',
28
-			'internaldeps'=>array( 'LEFT JOIN "ezuser_list_type" AS ezulity ON ( ezuli."typeid" = ezulity."id" )' ),
29
-			'label'=>'Customer list type ID',
30
-			'type'=> 'integer',
31
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
32
-			'public' => false,
33
-		),
34
-		'customer.lists.type.siteid' => array(
35
-			'code'=>'customer.lists.type.siteid',
36
-			'internalcode'=>'ezulity."siteid"',
37
-			'label'=>'Customer list type site ID',
38
-			'type'=> 'integer',
39
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
40
-			'public' => false,
41
-		),
42
-		'customer.lists.type.code' => array(
43
-			'code'=>'customer.lists.type.code',
44
-			'internalcode'=>'ezulity."code"',
45
-			'label'=>'Customer list type code',
46
-			'type'=> 'string',
47
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
48
-		),
49
-		'customer.lists.type.domain' => array(
50
-			'code'=>'customer.lists.type.domain',
51
-			'internalcode'=>'ezulity."domain"',
52
-			'label'=>'Customer list type domain',
53
-			'type'=> 'string',
54
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
55
-		),
56
-		'customer.lists.type.label' => array(
57
-			'code'=>'customer.lists.type.label',
58
-			'internalcode'=>'ezulity."label"',
59
-			'label'=>'Customer list type label',
60
-			'type'=> 'string',
61
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
62
-		),
63
-		'customer.lists.type.status' => array(
64
-			'code'=>'customer.lists.type.status',
65
-			'internalcode'=>'ezulity."status"',
66
-			'label'=>'Customer list type status',
67
-			'type'=> 'integer',
68
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
69
-		),
70
-		'customer.lists.type.ctime'=> array(
71
-			'code'=>'customer.lists.type.ctime',
72
-			'internalcode'=>'ezulity."ctime"',
73
-			'label'=>'Customer list type create date/time',
74
-			'type'=> 'datetime',
75
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
76
-		),
77
-		'customer.lists.type.mtime'=> array(
78
-			'code'=>'customer.lists.type.mtime',
79
-			'internalcode'=>'ezulity."mtime"',
80
-			'label'=>'Customer list type modification date/time',
81
-			'type'=> 'datetime',
82
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
83
-		),
84
-		'customer.lists.type.editor'=> array(
85
-			'code'=>'customer.lists.type.editor',
86
-			'internalcode'=>'ezulity."editor"',
87
-			'label'=>'Customer list type editor',
88
-			'type'=> 'string',
89
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
90
-		),
91
-	);
92
-
93
-
94
-	/**
95
-	 * Removes old entries from the storage.
96
-	 *
97
-	 * @param array $siteids List of IDs for sites whose entries should be deleted
98
-	 */
99
-	public function cleanup( array $siteids )
100
-	{
101
-		$path = 'mshop/customer/manager/lists/type/submanagers';
102
-		foreach( $this->getContext()->getConfig()->get( $path, array() ) as $domain ) {
103
-			$this->getSubManager( $domain )->cleanup( $siteids );
104
-		}
105
-
106
-		$this->cleanupBase( $siteids, 'mshop/customer/manager/lists/type/ezpublish/delete' );
107
-	}
108
-
109
-
110
-	/**
111
-	 * Returns the list attributes that can be used for searching.
112
-	 *
113
-	 * @param boolean $withsub Return also attributes of sub-managers if true
114
-	 * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
115
-	 */
116
-	public function getSearchAttributes( $withsub = true )
117
-	{
118
-		$path = 'mshop/customer/manager/lists/type/submanagers';
119
-
120
-		return $this->getSearchAttributesBase( $this->searchConfig, $path, array(), $withsub );
121
-	}
122
-
123
-
124
-	/**
125
-	 * Returns a new manager for customer extensions
126
-	 *
127
-	 * @param string $manager Name of the sub manager type in lower case
128
-	 * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
129
-	 * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
130
-	 */
131
-	public function getSubManager( $manager, $name = null )
132
-	{
133
-		return $this->getSubManagerBase( 'customer', 'lists/type/' . $manager, ( $name === null ? 'Ezpublish' : $name ) );
134
-	}
135
-
136
-
137
-	/**
138
-	 * Returns the config path for retrieving the configuration values.
139
-	 *
140
-	 * @return string Configuration path (mshop/customer/manager/lists/type/ezpublish/)
141
-	 */
142
-	protected function getConfigPath()
143
-	{
144
-		return 'mshop/customer/manager/lists/type/ezpublish/';
145
-	}
146
-
147
-
148
-	/**
149
-	 * Returns the search configuration for searching items.
150
-	 *
151
-	 * @return array Associative list of search keys and search definitions
152
-	 */
153
-	protected function getSearchConfig()
154
-	{
155
-		return $this->searchConfig;
156
-	}
24
+    private $searchConfig = array(
25
+        'customer.lists.type.id' => array(
26
+            'code'=>'customer.lists.type.id',
27
+            'internalcode'=>'ezulity."id"',
28
+            'internaldeps'=>array( 'LEFT JOIN "ezuser_list_type" AS ezulity ON ( ezuli."typeid" = ezulity."id" )' ),
29
+            'label'=>'Customer list type ID',
30
+            'type'=> 'integer',
31
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
32
+            'public' => false,
33
+        ),
34
+        'customer.lists.type.siteid' => array(
35
+            'code'=>'customer.lists.type.siteid',
36
+            'internalcode'=>'ezulity."siteid"',
37
+            'label'=>'Customer list type site ID',
38
+            'type'=> 'integer',
39
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
40
+            'public' => false,
41
+        ),
42
+        'customer.lists.type.code' => array(
43
+            'code'=>'customer.lists.type.code',
44
+            'internalcode'=>'ezulity."code"',
45
+            'label'=>'Customer list type code',
46
+            'type'=> 'string',
47
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
48
+        ),
49
+        'customer.lists.type.domain' => array(
50
+            'code'=>'customer.lists.type.domain',
51
+            'internalcode'=>'ezulity."domain"',
52
+            'label'=>'Customer list type domain',
53
+            'type'=> 'string',
54
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
55
+        ),
56
+        'customer.lists.type.label' => array(
57
+            'code'=>'customer.lists.type.label',
58
+            'internalcode'=>'ezulity."label"',
59
+            'label'=>'Customer list type label',
60
+            'type'=> 'string',
61
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
62
+        ),
63
+        'customer.lists.type.status' => array(
64
+            'code'=>'customer.lists.type.status',
65
+            'internalcode'=>'ezulity."status"',
66
+            'label'=>'Customer list type status',
67
+            'type'=> 'integer',
68
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
69
+        ),
70
+        'customer.lists.type.ctime'=> array(
71
+            'code'=>'customer.lists.type.ctime',
72
+            'internalcode'=>'ezulity."ctime"',
73
+            'label'=>'Customer list type create date/time',
74
+            'type'=> 'datetime',
75
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
76
+        ),
77
+        'customer.lists.type.mtime'=> array(
78
+            'code'=>'customer.lists.type.mtime',
79
+            'internalcode'=>'ezulity."mtime"',
80
+            'label'=>'Customer list type modification date/time',
81
+            'type'=> 'datetime',
82
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
83
+        ),
84
+        'customer.lists.type.editor'=> array(
85
+            'code'=>'customer.lists.type.editor',
86
+            'internalcode'=>'ezulity."editor"',
87
+            'label'=>'Customer list type editor',
88
+            'type'=> 'string',
89
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
90
+        ),
91
+    );
92
+
93
+
94
+    /**
95
+     * Removes old entries from the storage.
96
+     *
97
+     * @param array $siteids List of IDs for sites whose entries should be deleted
98
+     */
99
+    public function cleanup( array $siteids )
100
+    {
101
+        $path = 'mshop/customer/manager/lists/type/submanagers';
102
+        foreach( $this->getContext()->getConfig()->get( $path, array() ) as $domain ) {
103
+            $this->getSubManager( $domain )->cleanup( $siteids );
104
+        }
105
+
106
+        $this->cleanupBase( $siteids, 'mshop/customer/manager/lists/type/ezpublish/delete' );
107
+    }
108
+
109
+
110
+    /**
111
+     * Returns the list attributes that can be used for searching.
112
+     *
113
+     * @param boolean $withsub Return also attributes of sub-managers if true
114
+     * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
115
+     */
116
+    public function getSearchAttributes( $withsub = true )
117
+    {
118
+        $path = 'mshop/customer/manager/lists/type/submanagers';
119
+
120
+        return $this->getSearchAttributesBase( $this->searchConfig, $path, array(), $withsub );
121
+    }
122
+
123
+
124
+    /**
125
+     * Returns a new manager for customer extensions
126
+     *
127
+     * @param string $manager Name of the sub manager type in lower case
128
+     * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
129
+     * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
130
+     */
131
+    public function getSubManager( $manager, $name = null )
132
+    {
133
+        return $this->getSubManagerBase( 'customer', 'lists/type/' . $manager, ( $name === null ? 'Ezpublish' : $name ) );
134
+    }
135
+
136
+
137
+    /**
138
+     * Returns the config path for retrieving the configuration values.
139
+     *
140
+     * @return string Configuration path (mshop/customer/manager/lists/type/ezpublish/)
141
+     */
142
+    protected function getConfigPath()
143
+    {
144
+        return 'mshop/customer/manager/lists/type/ezpublish/';
145
+    }
146
+
147
+
148
+    /**
149
+     * Returns the search configuration for searching items.
150
+     *
151
+     * @return array Associative list of search keys and search definitions
152
+     */
153
+    protected function getSearchConfig()
154
+    {
155
+        return $this->searchConfig;
156
+    }
157 157
 }
Please login to merge, or discard this patch.
lib/custom/src/MShop/Customer/Manager/Group/Ezpublish.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@
 block discarded – undo
18 18
  * @subpackage Customer
19 19
  */
20 20
 class Ezpublish
21
-	extends \Aimeos\MShop\Customer\Manager\Group\Standard
22
-	implements \Aimeos\MShop\Customer\Manager\Group\Iface
21
+    extends \Aimeos\MShop\Customer\Manager\Group\Standard
22
+    implements \Aimeos\MShop\Customer\Manager\Group\Iface
23 23
 {
24 24
 }
Please login to merge, or discard this patch.
lib/custom/src/MShop/Customer/Manager/Ezpublish.php 1 patch
Indentation   +436 added lines, -436 removed lines patch added patch discarded remove patch
@@ -18,441 +18,441 @@
 block discarded – undo
18 18
  * @subpackage Customer
19 19
  */
20 20
 class Ezpublish
21
-	extends \Aimeos\MShop\Customer\Manager\Standard
21
+    extends \Aimeos\MShop\Customer\Manager\Standard
22 22
 {
23
-	private $searchConfig = array(
24
-		'customer.id' => array(
25
-			'label' => 'Customer ID',
26
-			'code' => 'customer.id',
27
-			'internalcode' => 'ezu."contentobject_id"',
28
-			'type' => 'integer',
29
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT
30
-		),
31
-		// customer.siteid is not available
32
-		'customer.label' => array(
33
-			'label' => 'Customer label',
34
-			'code' => 'customer.label',
35
-			'internalcode' => 'ezu."login"',
36
-			'type' => 'string',
37
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR
38
-		),
39
-		'customer.code' => array(
40
-			'label' => 'Customer username',
41
-			'code' => 'customer.code',
42
-			'internalcode' => 'ezu."login_normalized"',
43
-			'type' => 'string',
44
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR
45
-		),
46
-		'customer.salutation' => array(
47
-			'label' => 'Customer salutation',
48
-			'code' => 'customer.salutation',
49
-			'internalcode' => 'ezu."salutation"',
50
-			'type' => 'string',
51
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
52
-		),
53
-		'customer.company'=> array(
54
-			'label' => 'Customer company',
55
-			'code' => 'customer.company',
56
-			'internalcode' => 'ezu."company"',
57
-			'type' => 'string',
58
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
59
-		),
60
-		'customer.vatid'=> array(
61
-			'label' => 'Customer VAT ID',
62
-			'code' => 'customer.vatid',
63
-			'internalcode' => 'ezu."vatid"',
64
-			'type' => 'string',
65
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
66
-		),
67
-		'customer.title' => array(
68
-			'label' => 'Customer title',
69
-			'code' => 'customer.title',
70
-			'internalcode' => 'ezu."title"',
71
-			'type' => 'string',
72
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
73
-		),
74
-		'customer.firstname' => array(
75
-			'label' => 'Customer firstname',
76
-			'code' => 'customer.firstname',
77
-			'internalcode' => 'ezu."firstname"',
78
-			'type' => 'string',
79
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
80
-		),
81
-		'customer.lastname' => array(
82
-			'label' => 'Customer lastname',
83
-			'code' => 'customer.lastname',
84
-			'internalcode' => 'ezu."lastname"',
85
-			'type' => 'string',
86
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
87
-		),
88
-		'customer.address1' => array(
89
-			'label' => 'Customer address part one',
90
-			'code' => 'customer.address1',
91
-			'internalcode' => 'ezu."address1"',
92
-			'type' => 'string',
93
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
94
-		),
95
-		'customer.address2' => array(
96
-			'label' => 'Customer address part two',
97
-			'code' => 'customer.address2',
98
-			'internalcode' => 'ezu."address2"',
99
-			'type' => 'string',
100
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
101
-		),
102
-		'customer.address3' => array(
103
-			'label' => 'Customer address part three',
104
-			'code' => 'customer.address3',
105
-			'internalcode' => 'ezu."address3"',
106
-			'type' => 'string',
107
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
108
-		),
109
-		'customer.postal' => array(
110
-			'label' => 'Customer postal',
111
-			'code' => 'customer.postal',
112
-			'internalcode' => 'ezu."postal"',
113
-			'type' => 'string',
114
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
115
-		),
116
-		'customer.city' => array(
117
-			'label' => 'Customer city',
118
-			'code' => 'customer.city',
119
-			'internalcode' => 'ezu."city"',
120
-			'type' => 'string',
121
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
122
-		),
123
-		'customer.state' => array(
124
-			'label' => 'Customer state',
125
-			'code' => 'customer.state',
126
-			'internalcode' => 'ezu."state"',
127
-			'type' => 'string',
128
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
129
-		),
130
-		'customer.languageid' => array(
131
-			'label' => 'Customer language',
132
-			'code' => 'customer.languageid',
133
-			'internalcode' => 'ezu."langid"',
134
-			'type' => 'string',
135
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
136
-		),
137
-		'customer.countryid' => array(
138
-			'label' => 'Customer country',
139
-			'code' => 'customer.countryid',
140
-			'internalcode' => 'ezu."countryid"',
141
-			'type' => 'string',
142
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
143
-		),
144
-		'customer.telephone' => array(
145
-			'label' => 'Customer telephone',
146
-			'code' => 'customer.telephone',
147
-			'internalcode' => 'ezu."telephone"',
148
-			'type' => 'string',
149
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
150
-		),
151
-		'customer.email' => array(
152
-			'label' => 'Customer email',
153
-			'code' => 'customer.email',
154
-			'internalcode' => 'ezu."email"',
155
-			'type' => 'string',
156
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
157
-		),
158
-		'customer.telefax' => array(
159
-			'label' => 'Customer telefax',
160
-			'code' => 'customer.telefax',
161
-			'internalcode' => 'ezu."telefax"',
162
-			'type' => 'string',
163
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
164
-		),
165
-		'customer.website' => array(
166
-			'label' => 'Customer website',
167
-			'code' => 'customer.website',
168
-			'internalcode' => 'ezu."website"',
169
-			'type' => 'string',
170
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
171
-		),
172
-		'customer.birthday' => array(
173
-			'label' => 'Customer birthday',
174
-			'code' => 'customer.birthday',
175
-			'internalcode' => 'ezu."birthday"',
176
-			'type' => 'string',
177
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
178
-		),
179
-		'customer.password'=> array(
180
-			'label' => 'Customer password',
181
-			'code' => 'customer.password',
182
-			'internalcode' => 'ezu."password_hash"',
183
-			'type' => 'string',
184
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
185
-		),
186
-		'customer.status'=> array(
187
-			'label' => 'Customer status',
188
-			'code' => 'customer.status',
189
-			'internalcode' => 'ezu."status"',
190
-			'type' => 'integer',
191
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT
192
-		),
193
-		'customer.dateverified'=> array(
194
-			'label' => 'Customer verification date',
195
-			'code' => 'customer.dateverified',
196
-			'internalcode' => 'ezu."vdate"',
197
-			'type' => 'date',
198
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
199
-		),
200
-		'customer.ctime'=> array(
201
-			'label' => 'Customer creation time',
202
-			'code' => 'customer.ctime',
203
-			'internalcode' => 'ezu."ctime"',
204
-			'type' => 'datetime',
205
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
206
-		),
207
-		'customer.mtime'=> array(
208
-			'label' => 'Customer modification time',
209
-			'code' => 'customer.mtime',
210
-			'internalcode' => 'ezu."mtime"',
211
-			'type' => 'datetime',
212
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
213
-		),
214
-		'customer.editor'=> array(
215
-			'label'=>'Customer editor',
216
-			'code'=>'customer.editor',
217
-			'internalcode' => 'ezu."editor"',
218
-			'type'=> 'string',
219
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
220
-		),
221
-	);
222
-
223
-	private $addressManager;
224
-
225
-
226
-	/**
227
-	 * Removes old entries from the storage.
228
-	 *
229
-	 * @param array $siteids List of IDs for sites whose entries should be deleted
230
-	 */
231
-	public function cleanup( array $siteids )
232
-	{
233
-		$path = 'mshop/customer/manager/submanagers';
234
-		foreach( $this->getContext()->getConfig()->get( $path, array( 'address', 'lists' ) ) as $domain ) {
235
-			$this->getSubManager( $domain )->cleanup( $siteids );
236
-		}
237
-	}
238
-
239
-
240
-	/**
241
-	 * Removes multiple items specified by ids in the array.
242
-	 *
243
-	 * @param array $ids List of IDs
244
-	 */
245
-	public function deleteItems( array $ids )
246
-	{
247
-		$path = 'mshop/customer/manager/ezpublish/delete';
248
-		$this->deleteItemsBase( $ids, $path, false, 'contentobject_id' );
249
-	}
250
-
251
-
252
-	/**
253
-	 * Returns the list attributes that can be used for searching.
254
-	 *
255
-	 * @param boolean $withsub Return also attributes of sub-managers if true
256
-	 * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
257
-	 */
258
-	public function getSearchAttributes( $withsub = true )
259
-	{
260
-		$path = 'mshop/customer/manager/submanagers';
261
-
262
-		return $this->getSearchAttributesBase( $this->searchConfig, $path, array( 'address', 'lists' ), $withsub );
263
-	}
264
-
265
-
266
-	/**
267
-	 * Instantiates a new customer item object.
268
-	 *
269
-	 * @return \Aimeos\MShop\Customer\Item\Iface New customer item object
270
-	 */
271
-	public function createItem()
272
-	{
273
-		return $this->createItemBase();
274
-	}
275
-
276
-
277
-	/**
278
-	 * Saves a customer item object.
279
-	 *
280
-	 * @param \Aimeos\MShop\Customer\Item\Iface $item Customer item object
281
-	 * @param boolean $fetch True if the new ID should be returned in the item
282
-	 */
283
-	public function saveItem( \Aimeos\MShop\Common\Item\Iface $item, $fetch = true )
284
-	{
285
-		$iface = '\\Aimeos\\MShop\\Customer\\Item\\Iface';
286
-		if( !( $item instanceof $iface ) ) {
287
-			throw new \Aimeos\MShop\Customer\Exception( sprintf( 'Object is not of required type "%1$s"', $iface ) );
288
-		}
289
-
290
-		if( !$item->isModified() ) { return; }
291
-
292
-		$context = $this->getContext();
293
-
294
-		$class = '\Aimeos\MShop\Context\Item\Ezpublish';
295
-		if( !is_a( $context, $class ) ) {
296
-			throw new \Aimeos\MShop\Customer\Exception( sprintf( 'Object is not of required type "%1$s"', $class ) );
297
-		}
298
-
299
-		if( $item->getId() === null )
300
-		{
301
-			$fcn = $context->getEzUser();
302
-			$contentId = $fcn( $item->getCode(), $item->getPaymentAddress()->getEmail(), $item->getPassword() );
303
-			$item->setId( $contentId );
304
-		}
305
-
306
-		$dbm = $context->getDatabaseManager();
307
-		$dbname = $this->getResourceName();
308
-		$conn = $dbm->acquire( $dbname );
309
-
310
-		try
311
-		{
312
-			$date = date( 'Y-m-d H:i:s' );
313
-			$ctime = ( $item->getTimeCreated() ? $item->getTimeCreated() : $date );
314
-			$billingAddress = $item->getPaymentAddress();
315
-
316
-			/** mshop/customer/manager/ezpublish/update
317
-			 * Updates an existing customer record in the database
318
-			 *
319
-			 * Items which already have an ID (i.e. the ID is not NULL) will
320
-			 * be updated in the database.
321
-			 *
322
-			 * The SQL statement must be a string suitable for being used as
323
-			 * prepared statement. It must include question marks for binding
324
-			 * the values from the customer item to the statement before they are
325
-			 * sent to the database server. The order of the columns must
326
-			 * correspond to the order in the saveItems() method, so the
327
-			 * correct values are bound to the columns.
328
-			 *
329
-			 * The SQL statement should conform to the ANSI standard to be
330
-			 * compatible with most relational database systems. This also
331
-			 * includes using double quotes for table and column names.
332
-			 *
333
-			 * @param string SQL statement for updating records
334
-			 * @since 2016.07
335
-			 * @category Developer
336
-			 * @see mshop/customer/manager/ezpublish/insert
337
-			 * @see mshop/customer/manager/ezpublish/newid
338
-			 * @see mshop/customer/manager/ezpublish/delete
339
-			 * @see mshop/customer/manager/ezpublish/search
340
-			 * @see mshop/customer/manager/ezpublish/count
341
-			 */
342
-			$path = 'mshop/customer/manager/ezpublish/update';
343
-
344
-			$stmt = $this->getCachedStatement( $conn, $path );
345
-
346
-			$stmt->bind( 1, $item->getCode() ); // login normalized
347
-			$stmt->bind( 2, $item->getCode() ); // login
348
-			$stmt->bind( 3, $billingAddress->getCompany() );
349
-			$stmt->bind( 4, $billingAddress->getVatID() );
350
-			$stmt->bind( 5, $billingAddress->getSalutation() );
351
-			$stmt->bind( 6, $billingAddress->getTitle() );
352
-			$stmt->bind( 7, $billingAddress->getFirstname() );
353
-			$stmt->bind( 8, $billingAddress->getLastname() );
354
-			$stmt->bind( 9, $billingAddress->getAddress1() );
355
-			$stmt->bind( 10, $billingAddress->getAddress2() );
356
-			$stmt->bind( 11, $billingAddress->getAddress3() );
357
-			$stmt->bind( 12, $billingAddress->getPostal() );
358
-			$stmt->bind( 13, $billingAddress->getCity() );
359
-			$stmt->bind( 14, $billingAddress->getState() );
360
-			$stmt->bind( 15, $billingAddress->getCountryId() );
361
-			$stmt->bind( 16, $billingAddress->getLanguageId() );
362
-			$stmt->bind( 17, $billingAddress->getTelephone() );
363
-			$stmt->bind( 18, $billingAddress->getEmail() );
364
-			$stmt->bind( 19, $billingAddress->getTelefax() );
365
-			$stmt->bind( 20, $billingAddress->getWebsite() );
366
-			$stmt->bind( 21, $item->getBirthday() );
367
-			$stmt->bind( 22, $item->getStatus(), \Aimeos\MW\DB\Statement\Base::PARAM_INT );
368
-			$stmt->bind( 23, $item->getDateVerified() );
369
-			$stmt->bind( 24, $item->getPassword() );
370
-			$stmt->bind( 25, $date ); // Modification time
371
-			$stmt->bind( 26, $context->getEditor() );
372
-			$stmt->bind( 27, $ctime ); // Creation time
373
-			$stmt->bind( 28, $item->getId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT );
374
-
375
-			$stmt->execute()->finish();
376
-
377
-			$dbm->release( $conn, $dbname );
378
-		}
379
-		catch( \Exception $e )
380
-		{
381
-			$dbm->release( $conn, $dbname );
382
-			throw $e;
383
-		}
384
-	}
385
-
386
-
387
-	/**
388
-	 * Returns the item objects matched by the given search criteria.
389
-	 *
390
-	 * @param \Aimeos\MW\Criteria\Iface $search Search criteria object
391
-	 * @param integer &$total Number of items that are available in total
392
-	 * @return array List of items implementing \Aimeos\MShop\Customer\Item\Iface
393
-	 * @throws \Aimeos\MShop\Customer\Exception If creating items failed
394
-	 */
395
-	public function searchItems( \Aimeos\MW\Criteria\Iface $search, array $ref = array(), &$total = null )
396
-	{
397
-		$dbm = $this->getContext()->getDatabaseManager();
398
-		$dbname = $this->getResourceName();
399
-		$conn = $dbm->acquire( $dbname );
400
-		$map = array();
401
-
402
-		try
403
-		{
404
-			$level = \Aimeos\MShop\Locale\Manager\Base::SITE_ALL;
405
-			$cfgPathSearch = 'mshop/customer/manager/ezpublish/search';
406
-			$cfgPathCount = 'mshop/customer/manager/ezpublish/count';
407
-			$required = array( 'customer' );
408
-
409
-			$results = $this->searchItemsBase( $conn, $search, $cfgPathSearch, $cfgPathCount, $required, $total, $level );
410
-			while( ( $row = $results->fetch() ) !== false ) {
411
-				$map[ $row['customer.id'] ] = $row;
412
-			}
413
-
414
-			$dbm->release( $conn, $dbname );
415
-		}
416
-		catch( \Exception $e )
417
-		{
418
-			$dbm->release( $conn, $dbname  );
419
-			throw $e;
420
-		}
421
-
422
-		return $this->buildItems( $map, $ref, 'customer' );
423
-	}
424
-
425
-
426
-	/**
427
-	 * Returns a new manager for customer extensions
428
-	 *
429
-	 * @param string $manager Name of the sub manager type in lower case
430
-	 * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
431
-	 * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
432
-	 */
433
-	public function getSubManager( $manager, $name = null )
434
-	{
435
-		return $this->getSubManagerBase( 'customer', $manager, ( $name === null ? 'Ezpublish' : $name ) );
436
-	}
437
-
438
-
439
-	/**
440
-	 * Creates a new customer item.
441
-	 *
442
-	 * @param array $values List of attributes for customer item
443
-	 * @param array $listItems List items associated to the customer item
444
-	 * @param array $refItems Items referenced by the customer item via the list items
445
-	 * @return \Aimeos\MShop\Customer\Item\Iface New customer item
446
-	 */
447
-	protected function createItemBase( array $values = array(), array $listItems = array(), array $refItems = array() )
448
-	{
449
-		if( !isset( $this->addressManager ) ) {
450
-			$this->addressManager = $this->getSubManager( 'address' );
451
-		}
452
-
453
-		$helper = $this->getPasswordHelper();
454
-		$address = $this->addressManager->createItem();
455
-
456
-		return new \Aimeos\MShop\Customer\Item\Standard( $address, $values, $listItems, $refItems, null, $helper );
457
-	}
23
+    private $searchConfig = array(
24
+        'customer.id' => array(
25
+            'label' => 'Customer ID',
26
+            'code' => 'customer.id',
27
+            'internalcode' => 'ezu."contentobject_id"',
28
+            'type' => 'integer',
29
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT
30
+        ),
31
+        // customer.siteid is not available
32
+        'customer.label' => array(
33
+            'label' => 'Customer label',
34
+            'code' => 'customer.label',
35
+            'internalcode' => 'ezu."login"',
36
+            'type' => 'string',
37
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR
38
+        ),
39
+        'customer.code' => array(
40
+            'label' => 'Customer username',
41
+            'code' => 'customer.code',
42
+            'internalcode' => 'ezu."login_normalized"',
43
+            'type' => 'string',
44
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR
45
+        ),
46
+        'customer.salutation' => array(
47
+            'label' => 'Customer salutation',
48
+            'code' => 'customer.salutation',
49
+            'internalcode' => 'ezu."salutation"',
50
+            'type' => 'string',
51
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
52
+        ),
53
+        'customer.company'=> array(
54
+            'label' => 'Customer company',
55
+            'code' => 'customer.company',
56
+            'internalcode' => 'ezu."company"',
57
+            'type' => 'string',
58
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
59
+        ),
60
+        'customer.vatid'=> array(
61
+            'label' => 'Customer VAT ID',
62
+            'code' => 'customer.vatid',
63
+            'internalcode' => 'ezu."vatid"',
64
+            'type' => 'string',
65
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
66
+        ),
67
+        'customer.title' => array(
68
+            'label' => 'Customer title',
69
+            'code' => 'customer.title',
70
+            'internalcode' => 'ezu."title"',
71
+            'type' => 'string',
72
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
73
+        ),
74
+        'customer.firstname' => array(
75
+            'label' => 'Customer firstname',
76
+            'code' => 'customer.firstname',
77
+            'internalcode' => 'ezu."firstname"',
78
+            'type' => 'string',
79
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
80
+        ),
81
+        'customer.lastname' => array(
82
+            'label' => 'Customer lastname',
83
+            'code' => 'customer.lastname',
84
+            'internalcode' => 'ezu."lastname"',
85
+            'type' => 'string',
86
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
87
+        ),
88
+        'customer.address1' => array(
89
+            'label' => 'Customer address part one',
90
+            'code' => 'customer.address1',
91
+            'internalcode' => 'ezu."address1"',
92
+            'type' => 'string',
93
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
94
+        ),
95
+        'customer.address2' => array(
96
+            'label' => 'Customer address part two',
97
+            'code' => 'customer.address2',
98
+            'internalcode' => 'ezu."address2"',
99
+            'type' => 'string',
100
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
101
+        ),
102
+        'customer.address3' => array(
103
+            'label' => 'Customer address part three',
104
+            'code' => 'customer.address3',
105
+            'internalcode' => 'ezu."address3"',
106
+            'type' => 'string',
107
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
108
+        ),
109
+        'customer.postal' => array(
110
+            'label' => 'Customer postal',
111
+            'code' => 'customer.postal',
112
+            'internalcode' => 'ezu."postal"',
113
+            'type' => 'string',
114
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
115
+        ),
116
+        'customer.city' => array(
117
+            'label' => 'Customer city',
118
+            'code' => 'customer.city',
119
+            'internalcode' => 'ezu."city"',
120
+            'type' => 'string',
121
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
122
+        ),
123
+        'customer.state' => array(
124
+            'label' => 'Customer state',
125
+            'code' => 'customer.state',
126
+            'internalcode' => 'ezu."state"',
127
+            'type' => 'string',
128
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
129
+        ),
130
+        'customer.languageid' => array(
131
+            'label' => 'Customer language',
132
+            'code' => 'customer.languageid',
133
+            'internalcode' => 'ezu."langid"',
134
+            'type' => 'string',
135
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
136
+        ),
137
+        'customer.countryid' => array(
138
+            'label' => 'Customer country',
139
+            'code' => 'customer.countryid',
140
+            'internalcode' => 'ezu."countryid"',
141
+            'type' => 'string',
142
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
143
+        ),
144
+        'customer.telephone' => array(
145
+            'label' => 'Customer telephone',
146
+            'code' => 'customer.telephone',
147
+            'internalcode' => 'ezu."telephone"',
148
+            'type' => 'string',
149
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
150
+        ),
151
+        'customer.email' => array(
152
+            'label' => 'Customer email',
153
+            'code' => 'customer.email',
154
+            'internalcode' => 'ezu."email"',
155
+            'type' => 'string',
156
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
157
+        ),
158
+        'customer.telefax' => array(
159
+            'label' => 'Customer telefax',
160
+            'code' => 'customer.telefax',
161
+            'internalcode' => 'ezu."telefax"',
162
+            'type' => 'string',
163
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
164
+        ),
165
+        'customer.website' => array(
166
+            'label' => 'Customer website',
167
+            'code' => 'customer.website',
168
+            'internalcode' => 'ezu."website"',
169
+            'type' => 'string',
170
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
171
+        ),
172
+        'customer.birthday' => array(
173
+            'label' => 'Customer birthday',
174
+            'code' => 'customer.birthday',
175
+            'internalcode' => 'ezu."birthday"',
176
+            'type' => 'string',
177
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
178
+        ),
179
+        'customer.password'=> array(
180
+            'label' => 'Customer password',
181
+            'code' => 'customer.password',
182
+            'internalcode' => 'ezu."password_hash"',
183
+            'type' => 'string',
184
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
185
+        ),
186
+        'customer.status'=> array(
187
+            'label' => 'Customer status',
188
+            'code' => 'customer.status',
189
+            'internalcode' => 'ezu."status"',
190
+            'type' => 'integer',
191
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT
192
+        ),
193
+        'customer.dateverified'=> array(
194
+            'label' => 'Customer verification date',
195
+            'code' => 'customer.dateverified',
196
+            'internalcode' => 'ezu."vdate"',
197
+            'type' => 'date',
198
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
199
+        ),
200
+        'customer.ctime'=> array(
201
+            'label' => 'Customer creation time',
202
+            'code' => 'customer.ctime',
203
+            'internalcode' => 'ezu."ctime"',
204
+            'type' => 'datetime',
205
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
206
+        ),
207
+        'customer.mtime'=> array(
208
+            'label' => 'Customer modification time',
209
+            'code' => 'customer.mtime',
210
+            'internalcode' => 'ezu."mtime"',
211
+            'type' => 'datetime',
212
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
213
+        ),
214
+        'customer.editor'=> array(
215
+            'label'=>'Customer editor',
216
+            'code'=>'customer.editor',
217
+            'internalcode' => 'ezu."editor"',
218
+            'type'=> 'string',
219
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
220
+        ),
221
+    );
222
+
223
+    private $addressManager;
224
+
225
+
226
+    /**
227
+     * Removes old entries from the storage.
228
+     *
229
+     * @param array $siteids List of IDs for sites whose entries should be deleted
230
+     */
231
+    public function cleanup( array $siteids )
232
+    {
233
+        $path = 'mshop/customer/manager/submanagers';
234
+        foreach( $this->getContext()->getConfig()->get( $path, array( 'address', 'lists' ) ) as $domain ) {
235
+            $this->getSubManager( $domain )->cleanup( $siteids );
236
+        }
237
+    }
238
+
239
+
240
+    /**
241
+     * Removes multiple items specified by ids in the array.
242
+     *
243
+     * @param array $ids List of IDs
244
+     */
245
+    public function deleteItems( array $ids )
246
+    {
247
+        $path = 'mshop/customer/manager/ezpublish/delete';
248
+        $this->deleteItemsBase( $ids, $path, false, 'contentobject_id' );
249
+    }
250
+
251
+
252
+    /**
253
+     * Returns the list attributes that can be used for searching.
254
+     *
255
+     * @param boolean $withsub Return also attributes of sub-managers if true
256
+     * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
257
+     */
258
+    public function getSearchAttributes( $withsub = true )
259
+    {
260
+        $path = 'mshop/customer/manager/submanagers';
261
+
262
+        return $this->getSearchAttributesBase( $this->searchConfig, $path, array( 'address', 'lists' ), $withsub );
263
+    }
264
+
265
+
266
+    /**
267
+     * Instantiates a new customer item object.
268
+     *
269
+     * @return \Aimeos\MShop\Customer\Item\Iface New customer item object
270
+     */
271
+    public function createItem()
272
+    {
273
+        return $this->createItemBase();
274
+    }
275
+
276
+
277
+    /**
278
+     * Saves a customer item object.
279
+     *
280
+     * @param \Aimeos\MShop\Customer\Item\Iface $item Customer item object
281
+     * @param boolean $fetch True if the new ID should be returned in the item
282
+     */
283
+    public function saveItem( \Aimeos\MShop\Common\Item\Iface $item, $fetch = true )
284
+    {
285
+        $iface = '\\Aimeos\\MShop\\Customer\\Item\\Iface';
286
+        if( !( $item instanceof $iface ) ) {
287
+            throw new \Aimeos\MShop\Customer\Exception( sprintf( 'Object is not of required type "%1$s"', $iface ) );
288
+        }
289
+
290
+        if( !$item->isModified() ) { return; }
291
+
292
+        $context = $this->getContext();
293
+
294
+        $class = '\Aimeos\MShop\Context\Item\Ezpublish';
295
+        if( !is_a( $context, $class ) ) {
296
+            throw new \Aimeos\MShop\Customer\Exception( sprintf( 'Object is not of required type "%1$s"', $class ) );
297
+        }
298
+
299
+        if( $item->getId() === null )
300
+        {
301
+            $fcn = $context->getEzUser();
302
+            $contentId = $fcn( $item->getCode(), $item->getPaymentAddress()->getEmail(), $item->getPassword() );
303
+            $item->setId( $contentId );
304
+        }
305
+
306
+        $dbm = $context->getDatabaseManager();
307
+        $dbname = $this->getResourceName();
308
+        $conn = $dbm->acquire( $dbname );
309
+
310
+        try
311
+        {
312
+            $date = date( 'Y-m-d H:i:s' );
313
+            $ctime = ( $item->getTimeCreated() ? $item->getTimeCreated() : $date );
314
+            $billingAddress = $item->getPaymentAddress();
315
+
316
+            /** mshop/customer/manager/ezpublish/update
317
+             * Updates an existing customer record in the database
318
+             *
319
+             * Items which already have an ID (i.e. the ID is not NULL) will
320
+             * be updated in the database.
321
+             *
322
+             * The SQL statement must be a string suitable for being used as
323
+             * prepared statement. It must include question marks for binding
324
+             * the values from the customer item to the statement before they are
325
+             * sent to the database server. The order of the columns must
326
+             * correspond to the order in the saveItems() method, so the
327
+             * correct values are bound to the columns.
328
+             *
329
+             * The SQL statement should conform to the ANSI standard to be
330
+             * compatible with most relational database systems. This also
331
+             * includes using double quotes for table and column names.
332
+             *
333
+             * @param string SQL statement for updating records
334
+             * @since 2016.07
335
+             * @category Developer
336
+             * @see mshop/customer/manager/ezpublish/insert
337
+             * @see mshop/customer/manager/ezpublish/newid
338
+             * @see mshop/customer/manager/ezpublish/delete
339
+             * @see mshop/customer/manager/ezpublish/search
340
+             * @see mshop/customer/manager/ezpublish/count
341
+             */
342
+            $path = 'mshop/customer/manager/ezpublish/update';
343
+
344
+            $stmt = $this->getCachedStatement( $conn, $path );
345
+
346
+            $stmt->bind( 1, $item->getCode() ); // login normalized
347
+            $stmt->bind( 2, $item->getCode() ); // login
348
+            $stmt->bind( 3, $billingAddress->getCompany() );
349
+            $stmt->bind( 4, $billingAddress->getVatID() );
350
+            $stmt->bind( 5, $billingAddress->getSalutation() );
351
+            $stmt->bind( 6, $billingAddress->getTitle() );
352
+            $stmt->bind( 7, $billingAddress->getFirstname() );
353
+            $stmt->bind( 8, $billingAddress->getLastname() );
354
+            $stmt->bind( 9, $billingAddress->getAddress1() );
355
+            $stmt->bind( 10, $billingAddress->getAddress2() );
356
+            $stmt->bind( 11, $billingAddress->getAddress3() );
357
+            $stmt->bind( 12, $billingAddress->getPostal() );
358
+            $stmt->bind( 13, $billingAddress->getCity() );
359
+            $stmt->bind( 14, $billingAddress->getState() );
360
+            $stmt->bind( 15, $billingAddress->getCountryId() );
361
+            $stmt->bind( 16, $billingAddress->getLanguageId() );
362
+            $stmt->bind( 17, $billingAddress->getTelephone() );
363
+            $stmt->bind( 18, $billingAddress->getEmail() );
364
+            $stmt->bind( 19, $billingAddress->getTelefax() );
365
+            $stmt->bind( 20, $billingAddress->getWebsite() );
366
+            $stmt->bind( 21, $item->getBirthday() );
367
+            $stmt->bind( 22, $item->getStatus(), \Aimeos\MW\DB\Statement\Base::PARAM_INT );
368
+            $stmt->bind( 23, $item->getDateVerified() );
369
+            $stmt->bind( 24, $item->getPassword() );
370
+            $stmt->bind( 25, $date ); // Modification time
371
+            $stmt->bind( 26, $context->getEditor() );
372
+            $stmt->bind( 27, $ctime ); // Creation time
373
+            $stmt->bind( 28, $item->getId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT );
374
+
375
+            $stmt->execute()->finish();
376
+
377
+            $dbm->release( $conn, $dbname );
378
+        }
379
+        catch( \Exception $e )
380
+        {
381
+            $dbm->release( $conn, $dbname );
382
+            throw $e;
383
+        }
384
+    }
385
+
386
+
387
+    /**
388
+     * Returns the item objects matched by the given search criteria.
389
+     *
390
+     * @param \Aimeos\MW\Criteria\Iface $search Search criteria object
391
+     * @param integer &$total Number of items that are available in total
392
+     * @return array List of items implementing \Aimeos\MShop\Customer\Item\Iface
393
+     * @throws \Aimeos\MShop\Customer\Exception If creating items failed
394
+     */
395
+    public function searchItems( \Aimeos\MW\Criteria\Iface $search, array $ref = array(), &$total = null )
396
+    {
397
+        $dbm = $this->getContext()->getDatabaseManager();
398
+        $dbname = $this->getResourceName();
399
+        $conn = $dbm->acquire( $dbname );
400
+        $map = array();
401
+
402
+        try
403
+        {
404
+            $level = \Aimeos\MShop\Locale\Manager\Base::SITE_ALL;
405
+            $cfgPathSearch = 'mshop/customer/manager/ezpublish/search';
406
+            $cfgPathCount = 'mshop/customer/manager/ezpublish/count';
407
+            $required = array( 'customer' );
408
+
409
+            $results = $this->searchItemsBase( $conn, $search, $cfgPathSearch, $cfgPathCount, $required, $total, $level );
410
+            while( ( $row = $results->fetch() ) !== false ) {
411
+                $map[ $row['customer.id'] ] = $row;
412
+            }
413
+
414
+            $dbm->release( $conn, $dbname );
415
+        }
416
+        catch( \Exception $e )
417
+        {
418
+            $dbm->release( $conn, $dbname  );
419
+            throw $e;
420
+        }
421
+
422
+        return $this->buildItems( $map, $ref, 'customer' );
423
+    }
424
+
425
+
426
+    /**
427
+     * Returns a new manager for customer extensions
428
+     *
429
+     * @param string $manager Name of the sub manager type in lower case
430
+     * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
431
+     * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
432
+     */
433
+    public function getSubManager( $manager, $name = null )
434
+    {
435
+        return $this->getSubManagerBase( 'customer', $manager, ( $name === null ? 'Ezpublish' : $name ) );
436
+    }
437
+
438
+
439
+    /**
440
+     * Creates a new customer item.
441
+     *
442
+     * @param array $values List of attributes for customer item
443
+     * @param array $listItems List items associated to the customer item
444
+     * @param array $refItems Items referenced by the customer item via the list items
445
+     * @return \Aimeos\MShop\Customer\Item\Iface New customer item
446
+     */
447
+    protected function createItemBase( array $values = array(), array $listItems = array(), array $refItems = array() )
448
+    {
449
+        if( !isset( $this->addressManager ) ) {
450
+            $this->addressManager = $this->getSubManager( 'address' );
451
+        }
452
+
453
+        $helper = $this->getPasswordHelper();
454
+        $address = $this->addressManager->createItem();
455
+
456
+        return new \Aimeos\MShop\Customer\Item\Standard( $address, $values, $listItems, $refItems, null, $helper );
457
+    }
458 458
 }
Please login to merge, or discard this patch.
lib/custom/src/MShop/Customer/Manager/Address/Ezpublish.php 1 patch
Indentation   +245 added lines, -245 removed lines patch added patch discarded remove patch
@@ -18,263 +18,263 @@
 block discarded – undo
18 18
  * @subpackage Customer
19 19
  */
20 20
 class Ezpublish
21
-	extends \Aimeos\MShop\Customer\Manager\Address\Standard
22
-	implements \Aimeos\MShop\Customer\Manager\Address\Iface
21
+    extends \Aimeos\MShop\Customer\Manager\Address\Standard
22
+    implements \Aimeos\MShop\Customer\Manager\Address\Iface
23 23
 {
24
-	private $searchConfig = array(
25
-		'customer.address.id' => array(
26
-			'label' => 'Customer address ID',
27
-			'code' => 'customer.address.id',
28
-			'internalcode' => 'ezuad."id"',
29
-			'internaldeps' => array( 'LEFT JOIN "ezuser_address" AS ezuad ON ( ezu."contentobject_id" = ezuad."parentid" )' ),
30
-			'type' => 'integer',
31
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
32
-			'public' => false,
33
-		),
34
-		// site ID is not available
35
-		'customer.address.refid' => array(
36
-			'label' => 'Customer address parent ID',
37
-			'code' => 'customer.address.parentid',
38
-			'internalcode' => 'ezuad."parentid"',
39
-			'type' => 'integer',
40
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
41
-			'public' => false,
42
-		),
43
-		'customer.address.company'=> array(
44
-			'label' => 'Customer address company',
45
-			'code' => 'customer.address.company',
46
-			'internalcode' => 'ezuad."company"',
47
-			'type' => 'string',
48
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
49
-		),
50
-		'customer.address.vatid'=> array(
51
-			'label' => 'Customer address VAT ID',
52
-			'code' => 'customer.address.vatid',
53
-			'internalcode' => 'ezuad."vatid"',
54
-			'type' => 'string',
55
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
56
-		),
57
-		'customer.address.salutation' => array(
58
-			'label' => 'Customer address salutation',
59
-			'code' => 'customer.address.salutation',
60
-			'internalcode' => 'ezuad."salutation"',
61
-			'type' => 'integer',
62
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
63
-		),
64
-		'customer.address.title' => array(
65
-			'label' => 'Customer address title',
66
-			'code' => 'customer.address.title',
67
-			'internalcode' => 'ezuad."title"',
68
-			'type' => 'string',
69
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
70
-		),
71
-		'customer.address.firstname' => array(
72
-			'label' => 'Customer address firstname',
73
-			'code' => 'customer.address.firstname',
74
-			'internalcode' => 'ezuad."firstname"',
75
-			'type' => 'string',
76
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
77
-		),
78
-		'customer.address.lastname' => array(
79
-			'label' => 'Customer address lastname',
80
-			'code' => 'customer.address.lastname',
81
-			'internalcode' => 'ezuad."lastname"',
82
-			'type' => 'string',
83
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
84
-		),
85
-		'customer.address.address1' => array(
86
-			'label' => 'Customer address address part one',
87
-			'code' => 'customer.address.address1',
88
-			'internalcode' => 'ezuad."address1"',
89
-			'type' => 'string',
90
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
91
-		),
92
-		'customer.address.address2' => array(
93
-			'label' => 'Customer address address part two',
94
-			'code' => 'customer.address.address2',
95
-			'internalcode' => 'ezuad."address2"',
96
-			'type' => 'string',
97
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
98
-		),
99
-		'customer.address.address3' => array(
100
-			'label' => 'Customer address address part three',
101
-			'code' => 'customer.address.address3',
102
-			'internalcode' => 'ezuad."address3"',
103
-			'type' => 'string',
104
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
105
-		),
106
-		'customer.address.postal' => array(
107
-			'label' => 'Customer address postal',
108
-			'code' => 'customer.address.postal',
109
-			'internalcode' => 'ezuad."postal"',
110
-			'type' => 'string',
111
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
112
-		),
113
-		'customer.address.city' => array(
114
-			'label' => 'Customer address city',
115
-			'code' => 'customer.address.city',
116
-			'internalcode' => 'ezuad."city"',
117
-			'type' => 'string',
118
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
119
-		),
120
-		'customer.address.state' => array(
121
-			'label' => 'Customer address state',
122
-			'code' => 'customer.address.state',
123
-			'internalcode' => 'ezuad."state"',
124
-			'type' => 'string',
125
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
126
-		),
127
-		'customer.address.languageid' => array(
128
-			'label' => 'Customer address language',
129
-			'code' => 'customer.address.languageid',
130
-			'internalcode' => 'ezuad."langid"',
131
-			'type' => 'string',
132
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
133
-		),
134
-		'customer.address.countryid' => array(
135
-			'label' => 'Customer address country',
136
-			'code' => 'customer.address.countryid',
137
-			'internalcode' => 'ezuad."countryid"',
138
-			'type' => 'string',
139
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
140
-		),
141
-		'customer.address.telephone' => array(
142
-			'label' => 'Customer address telephone',
143
-			'code' => 'customer.address.telephone',
144
-			'internalcode' => 'ezuad."telephone"',
145
-			'type' => 'string',
146
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
147
-		),
148
-		'customer.address.email' => array(
149
-			'label' => 'Customer address email',
150
-			'code' => 'customer.address.email',
151
-			'internalcode' => 'ezuad."email"',
152
-			'type' => 'string',
153
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
154
-		),
155
-		'customer.address.telefax' => array(
156
-			'label' => 'Customer address telefax',
157
-			'code' => 'customer.address.telefax',
158
-			'internalcode' => 'ezuad."telefax"',
159
-			'type' => 'string',
160
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
161
-		),
162
-		'customer.address.website' => array(
163
-			'label' => 'Customer address website',
164
-			'code' => 'customer.address.website',
165
-			'internalcode' => 'ezuad."website"',
166
-			'type' => 'string',
167
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
168
-		),
169
-		'customer.address.flag' => array(
170
-			'label' => 'Customer address flag',
171
-			'code' => 'customer.address.flag',
172
-			'internalcode' => 'ezuad."flag"',
173
-			'type' => 'integer',
174
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
175
-		),
176
-		'customer.address.position' => array(
177
-			'label' => 'Customer address position',
178
-			'code' => 'customer.address.position',
179
-			'internalcode' => 'ezuad."pos"',
180
-			'type' => 'integer',
181
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
182
-		),
183
-		'customer.address.ctime'=> array(
184
-			'label'=>'Customer address create date/time',
185
-			'code'=>'customer.address.ctime',
186
-			'internalcode'=>'ezuad."ctime"',
187
-			'type'=> 'datetime',
188
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
189
-		),
190
-		'customer.address.mtime'=> array(
191
-			'label'=>'Customer address modification date/time',
192
-			'code'=>'customer.address.mtime',
193
-			'internalcode'=>'ezuad."mtime"',
194
-			'type'=> 'datetime',
195
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
196
-		),
197
-		'customer.address.editor'=> array(
198
-			'label'=>'Customer address editor',
199
-			'code'=>'customer.address.editor',
200
-			'internalcode'=>'ezuad."editor"',
201
-			'type'=> 'string',
202
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
203
-		),
204
-	);
24
+    private $searchConfig = array(
25
+        'customer.address.id' => array(
26
+            'label' => 'Customer address ID',
27
+            'code' => 'customer.address.id',
28
+            'internalcode' => 'ezuad."id"',
29
+            'internaldeps' => array( 'LEFT JOIN "ezuser_address" AS ezuad ON ( ezu."contentobject_id" = ezuad."parentid" )' ),
30
+            'type' => 'integer',
31
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
32
+            'public' => false,
33
+        ),
34
+        // site ID is not available
35
+        'customer.address.refid' => array(
36
+            'label' => 'Customer address parent ID',
37
+            'code' => 'customer.address.parentid',
38
+            'internalcode' => 'ezuad."parentid"',
39
+            'type' => 'integer',
40
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
41
+            'public' => false,
42
+        ),
43
+        'customer.address.company'=> array(
44
+            'label' => 'Customer address company',
45
+            'code' => 'customer.address.company',
46
+            'internalcode' => 'ezuad."company"',
47
+            'type' => 'string',
48
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
49
+        ),
50
+        'customer.address.vatid'=> array(
51
+            'label' => 'Customer address VAT ID',
52
+            'code' => 'customer.address.vatid',
53
+            'internalcode' => 'ezuad."vatid"',
54
+            'type' => 'string',
55
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
56
+        ),
57
+        'customer.address.salutation' => array(
58
+            'label' => 'Customer address salutation',
59
+            'code' => 'customer.address.salutation',
60
+            'internalcode' => 'ezuad."salutation"',
61
+            'type' => 'integer',
62
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
63
+        ),
64
+        'customer.address.title' => array(
65
+            'label' => 'Customer address title',
66
+            'code' => 'customer.address.title',
67
+            'internalcode' => 'ezuad."title"',
68
+            'type' => 'string',
69
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
70
+        ),
71
+        'customer.address.firstname' => array(
72
+            'label' => 'Customer address firstname',
73
+            'code' => 'customer.address.firstname',
74
+            'internalcode' => 'ezuad."firstname"',
75
+            'type' => 'string',
76
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
77
+        ),
78
+        'customer.address.lastname' => array(
79
+            'label' => 'Customer address lastname',
80
+            'code' => 'customer.address.lastname',
81
+            'internalcode' => 'ezuad."lastname"',
82
+            'type' => 'string',
83
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
84
+        ),
85
+        'customer.address.address1' => array(
86
+            'label' => 'Customer address address part one',
87
+            'code' => 'customer.address.address1',
88
+            'internalcode' => 'ezuad."address1"',
89
+            'type' => 'string',
90
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
91
+        ),
92
+        'customer.address.address2' => array(
93
+            'label' => 'Customer address address part two',
94
+            'code' => 'customer.address.address2',
95
+            'internalcode' => 'ezuad."address2"',
96
+            'type' => 'string',
97
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
98
+        ),
99
+        'customer.address.address3' => array(
100
+            'label' => 'Customer address address part three',
101
+            'code' => 'customer.address.address3',
102
+            'internalcode' => 'ezuad."address3"',
103
+            'type' => 'string',
104
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
105
+        ),
106
+        'customer.address.postal' => array(
107
+            'label' => 'Customer address postal',
108
+            'code' => 'customer.address.postal',
109
+            'internalcode' => 'ezuad."postal"',
110
+            'type' => 'string',
111
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
112
+        ),
113
+        'customer.address.city' => array(
114
+            'label' => 'Customer address city',
115
+            'code' => 'customer.address.city',
116
+            'internalcode' => 'ezuad."city"',
117
+            'type' => 'string',
118
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
119
+        ),
120
+        'customer.address.state' => array(
121
+            'label' => 'Customer address state',
122
+            'code' => 'customer.address.state',
123
+            'internalcode' => 'ezuad."state"',
124
+            'type' => 'string',
125
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
126
+        ),
127
+        'customer.address.languageid' => array(
128
+            'label' => 'Customer address language',
129
+            'code' => 'customer.address.languageid',
130
+            'internalcode' => 'ezuad."langid"',
131
+            'type' => 'string',
132
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
133
+        ),
134
+        'customer.address.countryid' => array(
135
+            'label' => 'Customer address country',
136
+            'code' => 'customer.address.countryid',
137
+            'internalcode' => 'ezuad."countryid"',
138
+            'type' => 'string',
139
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
140
+        ),
141
+        'customer.address.telephone' => array(
142
+            'label' => 'Customer address telephone',
143
+            'code' => 'customer.address.telephone',
144
+            'internalcode' => 'ezuad."telephone"',
145
+            'type' => 'string',
146
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
147
+        ),
148
+        'customer.address.email' => array(
149
+            'label' => 'Customer address email',
150
+            'code' => 'customer.address.email',
151
+            'internalcode' => 'ezuad."email"',
152
+            'type' => 'string',
153
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
154
+        ),
155
+        'customer.address.telefax' => array(
156
+            'label' => 'Customer address telefax',
157
+            'code' => 'customer.address.telefax',
158
+            'internalcode' => 'ezuad."telefax"',
159
+            'type' => 'string',
160
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
161
+        ),
162
+        'customer.address.website' => array(
163
+            'label' => 'Customer address website',
164
+            'code' => 'customer.address.website',
165
+            'internalcode' => 'ezuad."website"',
166
+            'type' => 'string',
167
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
168
+        ),
169
+        'customer.address.flag' => array(
170
+            'label' => 'Customer address flag',
171
+            'code' => 'customer.address.flag',
172
+            'internalcode' => 'ezuad."flag"',
173
+            'type' => 'integer',
174
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
175
+        ),
176
+        'customer.address.position' => array(
177
+            'label' => 'Customer address position',
178
+            'code' => 'customer.address.position',
179
+            'internalcode' => 'ezuad."pos"',
180
+            'type' => 'integer',
181
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT,
182
+        ),
183
+        'customer.address.ctime'=> array(
184
+            'label'=>'Customer address create date/time',
185
+            'code'=>'customer.address.ctime',
186
+            'internalcode'=>'ezuad."ctime"',
187
+            'type'=> 'datetime',
188
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
189
+        ),
190
+        'customer.address.mtime'=> array(
191
+            'label'=>'Customer address modification date/time',
192
+            'code'=>'customer.address.mtime',
193
+            'internalcode'=>'ezuad."mtime"',
194
+            'type'=> 'datetime',
195
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
196
+        ),
197
+        'customer.address.editor'=> array(
198
+            'label'=>'Customer address editor',
199
+            'code'=>'customer.address.editor',
200
+            'internalcode'=>'ezuad."editor"',
201
+            'type'=> 'string',
202
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
203
+        ),
204
+    );
205 205
 
206 206
 
207
-	/**
208
-	 * Removes old entries from the storage.
209
-	 *
210
-	 * @param array $siteids List of IDs for sites whose entries should be deleted
211
-	 */
212
-	public function cleanup( array $siteids )
213
-	{
214
-		$path = 'mshop/customer/manager/address/submanagers';
215
-		foreach( $this->getContext()->getConfig()->get( $path, array() ) as $domain ) {
216
-			$this->getSubManager( $domain )->cleanup( $siteids );
217
-		}
218
-	}
207
+    /**
208
+     * Removes old entries from the storage.
209
+     *
210
+     * @param array $siteids List of IDs for sites whose entries should be deleted
211
+     */
212
+    public function cleanup( array $siteids )
213
+    {
214
+        $path = 'mshop/customer/manager/address/submanagers';
215
+        foreach( $this->getContext()->getConfig()->get( $path, array() ) as $domain ) {
216
+            $this->getSubManager( $domain )->cleanup( $siteids );
217
+        }
218
+    }
219 219
 
220 220
 
221
-	/**
222
-	 * Removes multiple items specified by ids in the array.
223
-	 *
224
-	 * @param array $ids List of IDs
225
-	 */
226
-	public function deleteItems( array $ids )
227
-	{
228
-		$path = 'mshop/customer/manager/address/ezpublish/delete';
229
-		$this->deleteItemsBase( $ids, $path, false );
230
-	}
221
+    /**
222
+     * Removes multiple items specified by ids in the array.
223
+     *
224
+     * @param array $ids List of IDs
225
+     */
226
+    public function deleteItems( array $ids )
227
+    {
228
+        $path = 'mshop/customer/manager/address/ezpublish/delete';
229
+        $this->deleteItemsBase( $ids, $path, false );
230
+    }
231 231
 
232 232
 
233
-	/**
234
-	 * Returns the list attributes that can be used for searching.
235
-	 *
236
-	 * @param boolean $withsub Return also attributes of sub-managers if true
237
-	 * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
238
-	 */
239
-	public function getSearchAttributes( $withsub = true )
240
-	{
241
-		$path = 'mshop/customer/manager/address/submanagers';
233
+    /**
234
+     * Returns the list attributes that can be used for searching.
235
+     *
236
+     * @param boolean $withsub Return also attributes of sub-managers if true
237
+     * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
238
+     */
239
+    public function getSearchAttributes( $withsub = true )
240
+    {
241
+        $path = 'mshop/customer/manager/address/submanagers';
242 242
 
243
-		return $this->getSearchAttributesBase( $this->searchConfig, $path, array(), $withsub );
244
-	}
243
+        return $this->getSearchAttributesBase( $this->searchConfig, $path, array(), $withsub );
244
+    }
245 245
 
246 246
 
247
-	/**
248
-	 * Returns a new manager for customer extensions
249
-	 *
250
-	 * @param string $manager Name of the sub manager type in lower case
251
-	 * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
252
-	 * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
253
-	 */
254
-	public function getSubManager( $manager, $name = null )
255
-	{
256
-		return $this->getSubManagerBase( 'customer', 'address/' . $manager, ( $name === null ? 'Ezpublish' : $name ) );
257
-	}
247
+    /**
248
+     * Returns a new manager for customer extensions
249
+     *
250
+     * @param string $manager Name of the sub manager type in lower case
251
+     * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
252
+     * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
253
+     */
254
+    public function getSubManager( $manager, $name = null )
255
+    {
256
+        return $this->getSubManagerBase( 'customer', 'address/' . $manager, ( $name === null ? 'Ezpublish' : $name ) );
257
+    }
258 258
 
259 259
 
260
-	/**
261
-	 * Returns the config path for retrieving the configuration values.
262
-	 *
263
-	 * @return string Configuration path (mshop/customer/manager/address/ezpublish/)
264
-	 */
265
-	protected function getConfigPath()
266
-	{
267
-		return 'mshop/customer/manager/address/ezpublish/';
268
-	}
260
+    /**
261
+     * Returns the config path for retrieving the configuration values.
262
+     *
263
+     * @return string Configuration path (mshop/customer/manager/address/ezpublish/)
264
+     */
265
+    protected function getConfigPath()
266
+    {
267
+        return 'mshop/customer/manager/address/ezpublish/';
268
+    }
269 269
 
270 270
 
271
-	/**
272
-	 * Returns the search configuration for searching items.
273
-	 *
274
-	 * @return array Associative list of search keys and search definitions
275
-	 */
276
-	protected function getSearchConfig()
277
-	{
278
-		return $this->searchConfig;
279
-	}
271
+    /**
272
+     * Returns the search configuration for searching items.
273
+     *
274
+     * @return array Associative list of search keys and search definitions
275
+     */
276
+    protected function getSearchConfig()
277
+    {
278
+        return $this->searchConfig;
279
+    }
280 280
 }
Please login to merge, or discard this patch.
lib/custom/setup/EzuserAddAddress.php 1 patch
Indentation   +116 added lines, -116 removed lines patch added patch discarded remove patch
@@ -14,120 +14,120 @@
 block discarded – undo
14 14
  */
15 15
 class EzuserAddAddress extends \Aimeos\MW\Setup\Task\TablesCreateMShop
16 16
 {
17
-	/**
18
-	 * Returns the list of task names which depends on this task.
19
-	 *
20
-	 * @return array List of task names
21
-	 */
22
-	public function getPostDependencies()
23
-	{
24
-		return array();
25
-	}
26
-
27
-
28
-	/**
29
-	 * Migrate database schema
30
-	 */
31
-	public function migrate()
32
-	{
33
-		$this->msg( 'Adding address fields to ezuser table', 0 );
34
-
35
-		$dbal = $this->getConnection( 'db-customer' )->getRawObject();
36
-
37
-		if( !( $dbal instanceof \Doctrine\DBAL\Connection ) ) {
38
-			throw new \Aimeos\MW\Setup\Exception( 'Not a DBAL connection' );
39
-		}
40
-
41
-
42
-		$fromSchema = $dbal->getSchemaManager()->createSchema();
43
-		$comparator = new \Doctrine\DBAL\Schema\Comparator();
44
-		$toSchema = clone $fromSchema;
45
-
46
-		$this->addIndexes( $this->addColumns( $toSchema->getTable( 'ezuser' ) ) );
47
-		$sql = $fromSchema->getMigrateToSql( $toSchema, $dbal->getDatabasePlatform() );
48
-
49
-		if( $sql !== array() )
50
-		{
51
-			$this->executeList( $sql, 'db-customer' );
52
-			$this->status( 'done' );
53
-		}
54
-		else
55
-		{
56
-			$this->status( 'OK' );
57
-		}
58
-	}
59
-
60
-
61
-	/**
62
-	 * Adds the missing columns to the table
63
-	 *
64
-	 * @param \Doctrine\DBAL\Schema\Table $table Table object
65
-	 * @return \Doctrine\DBAL\Schema\Table Updated table object
66
-	 */
67
-	protected function addColumns( \Doctrine\DBAL\Schema\Table $table )
68
-	{
69
-		$columns = array(
70
-			'company' => array( 'string', array( 'length' => 100 ) ),
71
-			'vatid' => array( 'string', array( 'length' => 32 ) ),
72
-			'salutation' => array( 'string', array( 'length' => 8 ) ),
73
-			'title' => array( 'string', array( 'length' => 64 ) ),
74
-			'firstname' => array( 'string', array( 'length' => 64 ) ),
75
-			'address1' => array( 'string', array( 'length' => 255 ) ),
76
-			'address2' => array( 'string', array( 'length' => 255 ) ),
77
-			'address3' => array( 'string', array( 'length' => 255 ) ),
78
-			'postal' => array( 'string', array( 'length' => 16 ) ),
79
-			'city' => array( 'string', array( 'length' => 255 ) ),
80
-			'state' => array( 'string', array( 'length' => 255 ) ),
81
-			'langid' => array( 'string', array( 'length' => 5, 'notnull' => false ) ),
82
-			'countryid' => array( 'string', array( 'length' => 2, 'notnull' => false, 'fixed' => true ) ),
83
-			'telephone' => array( 'string', array( 'length' => 32 ) ),
84
-			'telefax' => array( 'string', array( 'length' => 32 ) ),
85
-			'website' => array( 'string', array( 'length' => 255 ) ),
86
-			'birthday' => array( 'date', array( 'notnull' => false ) ),
87
-			'vdate' => array( 'date', array( 'notnull' => false ) ),
88
-			'status' => array( 'smallint', array() ),
89
-			'mtime' => array( 'datetime', array() ),
90
-			'ctime' => array( 'datetime', array() ),
91
-			'editor' => array( 'string', array( 'length' => 255 ) ),
92
-		);
93
-
94
-		foreach( $columns as $name => $def )
95
-		{
96
-			if( $table->hasColumn( $name ) === false ) {
97
-				$table->addColumn( $name, $def[0], $def[1] );
98
-			}
99
-		}
100
-
101
-		return $table;
102
-	}
103
-
104
-
105
-	/**
106
-	 * Adds the missing indexes to the table
107
-	 *
108
-	 * @param \Doctrine\DBAL\Schema\Table $table Table object
109
-	 * @return \Doctrine\DBAL\Schema\Table Updated table object
110
-	 */
111
-	protected function addIndexes( \Doctrine\DBAL\Schema\Table $table )
112
-	{
113
-		$indexes = array(
114
-			'idx_ezpus_langid' => array( 'langid' ),
115
-			'idx_ezpus_status_ln_fn' => array( 'status', 'lastname', 'firstname' ),
116
-			'idx_ezpus_status_ad1_ad2' => array( 'status', 'address1', 'address2' ),
117
-			'idx_ezpus_status_postal_city' => array( 'status', 'postal', 'city' ),
118
-			'idx_ezpus_lastname' => array( 'lastname' ),
119
-			'idx_ezpus_address1' => array( 'address1' ),
120
-			'idx_ezpus_postal' => array( 'postal' ),
121
-			'idx_ezpus_city' => array( 'city' ),
122
-		);
123
-
124
-		foreach( $indexes as $name => $def )
125
-		{
126
-			if( $table->hasIndex( $name ) === false ) {
127
-				$table->addIndex( $def, $name );
128
-			}
129
-		}
130
-
131
-		return $table;
132
-	}
17
+    /**
18
+     * Returns the list of task names which depends on this task.
19
+     *
20
+     * @return array List of task names
21
+     */
22
+    public function getPostDependencies()
23
+    {
24
+        return array();
25
+    }
26
+
27
+
28
+    /**
29
+     * Migrate database schema
30
+     */
31
+    public function migrate()
32
+    {
33
+        $this->msg( 'Adding address fields to ezuser table', 0 );
34
+
35
+        $dbal = $this->getConnection( 'db-customer' )->getRawObject();
36
+
37
+        if( !( $dbal instanceof \Doctrine\DBAL\Connection ) ) {
38
+            throw new \Aimeos\MW\Setup\Exception( 'Not a DBAL connection' );
39
+        }
40
+
41
+
42
+        $fromSchema = $dbal->getSchemaManager()->createSchema();
43
+        $comparator = new \Doctrine\DBAL\Schema\Comparator();
44
+        $toSchema = clone $fromSchema;
45
+
46
+        $this->addIndexes( $this->addColumns( $toSchema->getTable( 'ezuser' ) ) );
47
+        $sql = $fromSchema->getMigrateToSql( $toSchema, $dbal->getDatabasePlatform() );
48
+
49
+        if( $sql !== array() )
50
+        {
51
+            $this->executeList( $sql, 'db-customer' );
52
+            $this->status( 'done' );
53
+        }
54
+        else
55
+        {
56
+            $this->status( 'OK' );
57
+        }
58
+    }
59
+
60
+
61
+    /**
62
+     * Adds the missing columns to the table
63
+     *
64
+     * @param \Doctrine\DBAL\Schema\Table $table Table object
65
+     * @return \Doctrine\DBAL\Schema\Table Updated table object
66
+     */
67
+    protected function addColumns( \Doctrine\DBAL\Schema\Table $table )
68
+    {
69
+        $columns = array(
70
+            'company' => array( 'string', array( 'length' => 100 ) ),
71
+            'vatid' => array( 'string', array( 'length' => 32 ) ),
72
+            'salutation' => array( 'string', array( 'length' => 8 ) ),
73
+            'title' => array( 'string', array( 'length' => 64 ) ),
74
+            'firstname' => array( 'string', array( 'length' => 64 ) ),
75
+            'address1' => array( 'string', array( 'length' => 255 ) ),
76
+            'address2' => array( 'string', array( 'length' => 255 ) ),
77
+            'address3' => array( 'string', array( 'length' => 255 ) ),
78
+            'postal' => array( 'string', array( 'length' => 16 ) ),
79
+            'city' => array( 'string', array( 'length' => 255 ) ),
80
+            'state' => array( 'string', array( 'length' => 255 ) ),
81
+            'langid' => array( 'string', array( 'length' => 5, 'notnull' => false ) ),
82
+            'countryid' => array( 'string', array( 'length' => 2, 'notnull' => false, 'fixed' => true ) ),
83
+            'telephone' => array( 'string', array( 'length' => 32 ) ),
84
+            'telefax' => array( 'string', array( 'length' => 32 ) ),
85
+            'website' => array( 'string', array( 'length' => 255 ) ),
86
+            'birthday' => array( 'date', array( 'notnull' => false ) ),
87
+            'vdate' => array( 'date', array( 'notnull' => false ) ),
88
+            'status' => array( 'smallint', array() ),
89
+            'mtime' => array( 'datetime', array() ),
90
+            'ctime' => array( 'datetime', array() ),
91
+            'editor' => array( 'string', array( 'length' => 255 ) ),
92
+        );
93
+
94
+        foreach( $columns as $name => $def )
95
+        {
96
+            if( $table->hasColumn( $name ) === false ) {
97
+                $table->addColumn( $name, $def[0], $def[1] );
98
+            }
99
+        }
100
+
101
+        return $table;
102
+    }
103
+
104
+
105
+    /**
106
+     * Adds the missing indexes to the table
107
+     *
108
+     * @param \Doctrine\DBAL\Schema\Table $table Table object
109
+     * @return \Doctrine\DBAL\Schema\Table Updated table object
110
+     */
111
+    protected function addIndexes( \Doctrine\DBAL\Schema\Table $table )
112
+    {
113
+        $indexes = array(
114
+            'idx_ezpus_langid' => array( 'langid' ),
115
+            'idx_ezpus_status_ln_fn' => array( 'status', 'lastname', 'firstname' ),
116
+            'idx_ezpus_status_ad1_ad2' => array( 'status', 'address1', 'address2' ),
117
+            'idx_ezpus_status_postal_city' => array( 'status', 'postal', 'city' ),
118
+            'idx_ezpus_lastname' => array( 'lastname' ),
119
+            'idx_ezpus_address1' => array( 'address1' ),
120
+            'idx_ezpus_postal' => array( 'postal' ),
121
+            'idx_ezpus_city' => array( 'city' ),
122
+        );
123
+
124
+        foreach( $indexes as $name => $def )
125
+        {
126
+            if( $table->hasIndex( $name ) === false ) {
127
+                $table->addIndex( $def, $name );
128
+            }
129
+        }
130
+
131
+        return $table;
132
+    }
133 133
 }
Please login to merge, or discard this patch.
lib/custom/setup/default/schema/customer.php 1 patch
Indentation   +121 added lines, -121 removed lines patch added patch discarded remove patch
@@ -7,125 +7,125 @@
 block discarded – undo
7 7
 
8 8
 
9 9
 return array(
10
-	'table' => array(
11
-		'ezuser' => function ( \Doctrine\DBAL\Schema\Schema $schema ) {
12
-
13
-			$table = $schema->createTable( 'ezuser' );
14
-
15
-			$table->addColumn( 'contentobject_id', 'integer', array() );
16
-			$table->addColumn( 'email', 'string', array( 'length' => 150 ) );
17
-			$table->addColumn( 'login', 'string', array( 'length' => 150 ) );
18
-			$table->addColumn( 'login_normalized', 'string', array( 'length' => 150 ) );
19
-			$table->addColumn( 'password_hash', 'string', array( 'length' => 50 ) );
20
-			$table->addColumn( 'password_hash_type', 'integer', array( 'default' => 1 ) );
21
-
22
-			$table->setPrimaryKey( array( 'contentobject_id' ) );
23
-			$table->addUniqueIndex( array( 'login_normalized' ), 'ezuser_login' );
24
-
25
-			return $schema;
26
-		},
27
-
28
-		'ezuser_address' => function ( \Doctrine\DBAL\Schema\Schema $schema ) {
29
-
30
-			$table = $schema->createTable( 'ezuser_address' );
31
-
32
-			$table->addColumn( 'id', 'integer', array( 'autoincrement' => true ) );
33
-			$table->addColumn( 'siteid', 'integer', array() );
34
-			$table->addColumn( 'parentid', 'integer', array() );
35
-			$table->addColumn( 'company', 'string', array( 'length' => 100 ) );
36
-			$table->addColumn( 'vatid', 'string', array( 'length' => 32 ) );
37
-			$table->addColumn( 'salutation', 'string', array( 'length' => 8 ) );
38
-			$table->addColumn( 'title', 'string', array( 'length' => 64 ) );
39
-			$table->addColumn( 'firstname', 'string', array( 'length' => 64 ) );
40
-			$table->addColumn( 'lastname', 'string', array( 'length' => 64 ) );
41
-			$table->addColumn( 'address1', 'string', array( 'length' => 255 ) );
42
-			$table->addColumn( 'address2', 'string', array( 'length' => 255 ) );
43
-			$table->addColumn( 'address3', 'string', array( 'length' => 255 ) );
44
-			$table->addColumn( 'postal', 'string', array( 'length' => 16 ) );
45
-			$table->addColumn( 'city', 'string', array( 'length' => 255 ) );
46
-			$table->addColumn( 'state', 'string', array( 'length' => 255 ) );
47
-			$table->addColumn( 'langid', 'string', array( 'length' => 5, 'notnull' => false ) );
48
-			$table->addColumn( 'countryid', 'string', array( 'length' => 2, 'notnull' => false, 'fixed' => true ) );
49
-			$table->addColumn( 'telephone', 'string', array( 'length' => 32 ) );
50
-			$table->addColumn( 'email', 'string', array( 'length' => 255 ) );
51
-			$table->addColumn( 'telefax', 'string', array( 'length' => 255 ) );
52
-			$table->addColumn( 'website', 'string', array( 'length' => 255 ) );
53
-			$table->addColumn( 'flag', 'integer', array() );
54
-			$table->addColumn( 'pos', 'smallint', array() );
55
-			$table->addColumn( 'mtime', 'datetime', array() );
56
-			$table->addColumn( 'ctime', 'datetime', array() );
57
-			$table->addColumn( 'editor', 'string', array('length' => 255 ) );
58
-
59
-			$table->setPrimaryKey( array( 'id' ), 'pk_ezpad_id' );
60
-			$table->addIndex( array( 'lastname', 'firstname' ), 'idx_ezpad_ln_fn' );
61
-			$table->addIndex( array( 'address1', 'address2' ), 'idx_ezpad_ad1_ad2' );
62
-			$table->addIndex( array( 'postal', 'city' ), 'idx_ezpad_post_ci' );
63
-			$table->addIndex( array( 'parentid' ), 'idx_ezpad_pid' );
64
-			$table->addIndex( array( 'city' ), 'idx_ezpad_city' );
65
-
66
-			$table->addForeignKeyConstraint( 'ezuser', array( 'parentid' ), array( 'contentobject_id' ),
67
-				array( 'onUpdate' => 'CASCADE', 'onDelete' => 'CASCADE' ), 'fk_ezpad_pid' );
68
-
69
-			return $schema;
70
-		},
71
-
72
-		'ezuser_list_type' => function ( \Doctrine\DBAL\Schema\Schema $schema ) {
73
-
74
-			$table = $schema->createTable( 'ezuser_list_type' );
75
-
76
-			$table->addColumn( 'id', 'integer', array( 'autoincrement' => true ) );
77
-			$table->addColumn( 'siteid', 'integer', array() );
78
-			$table->addColumn( 'domain', 'string', array( 'length' => 32 ) );
79
-			$table->addColumn( 'code', 'string', array( 'length' => 32 ) );
80
-			$table->addColumn( 'label', 'string', array( 'length' => 255 ) );
81
-			$table->addColumn( 'status', 'smallint', array() );
82
-			$table->addColumn( 'mtime', 'datetime', array() );
83
-			$table->addColumn( 'ctime', 'datetime', array() );
84
-			$table->addColumn( 'editor', 'string', array( 'length' => 255 ) );
85
-
86
-			$table->setPrimaryKey( array( 'id' ), 'pk_ezplity_id' );
87
-			$table->addUniqueIndex( array( 'siteid', 'domain', 'code' ), 'unq_ezplity_sid_dom_code' );
88
-			$table->addIndex( array( 'siteid', 'status' ), 'idx_ezplity_sid_status' );
89
-			$table->addIndex( array( 'siteid', 'label' ), 'idx_ezplity_sid_label' );
90
-			$table->addIndex( array( 'siteid', 'code' ), 'idx_ezplity_sid_code' );
91
-
92
-			return $schema;
93
-		},
94
-
95
-		'ezuser_list' => function ( \Doctrine\DBAL\Schema\Schema $schema ) {
96
-
97
-			$table = $schema->createTable( 'ezuser_list' );
98
-
99
-			$table->addColumn( 'id', 'integer', array( 'autoincrement' => true ) );
100
-			$table->addColumn( 'parentid', 'integer', array() );
101
-			$table->addColumn( 'siteid', 'integer', array() );
102
-			$table->addColumn( 'typeid', 'integer', array() );
103
-			$table->addColumn( 'domain', 'string', array( 'length' => 32 ) );
104
-			$table->addColumn( 'refid', 'string', array( 'length' => 32 ) );
105
-			$table->addColumn( 'start', 'datetime', array( 'notnull' => false ) );
106
-			$table->addColumn( 'end', 'datetime', array( 'notnull' => false ) );
107
-			$table->addColumn( 'config', 'text', array( 'length' => 0xffff ) );
108
-			$table->addColumn( 'pos', 'integer', array() );
109
-			$table->addColumn( 'status', 'smallint', array() );
110
-			$table->addColumn( 'mtime', 'datetime', array() );
111
-			$table->addColumn( 'ctime', 'datetime', array() );
112
-			$table->addColumn( 'editor', 'string', array( 'length' => 255 ) );
113
-
114
-			$table->setPrimaryKey( array( 'id' ), 'pk_ezpli_id' );
115
-			$table->addUniqueIndex( array( 'siteid', 'domain', 'refid', 'typeid', 'parentid' ), 'unq_ezpli_sid_dm_rid_tid_pid' );
116
-			$table->addIndex( array( 'siteid', 'status', 'start', 'end' ), 'idx_ezpli_sid_stat_start_end' );
117
-			$table->addIndex( array( 'parentid', 'siteid', 'refid', 'domain', 'typeid' ), 'idx_ezpli_pid_sid_rid_dom_tid' );
118
-			$table->addIndex( array( 'parentid', 'siteid', 'start' ), 'idx_ezpli_pid_sid_start' );
119
-			$table->addIndex( array( 'parentid', 'siteid', 'end' ), 'idx_ezpli_pid_sid_end' );
120
-			$table->addIndex( array( 'parentid', 'siteid', 'pos' ), 'idx_ezpli_pid_sid_pos' );
121
-
122
-			$table->addForeignKeyConstraint( 'ezuser', array( 'parentid' ), array( 'contentobject_id' ),
123
-				array( 'onUpdate' => 'CASCADE', 'onDelete' => 'CASCADE' ), 'fk_ezpli_pid' );
124
-
125
-			$table->addForeignKeyConstraint( 'ezuser_list_type', array( 'typeid' ), array( 'id' ),
126
-				array( 'onUpdate' => 'CASCADE', 'onDelete' => 'CASCADE' ), 'fk_ezpli_typeid' );
127
-
128
-			return $schema;
129
-		},
130
-	),
10
+    'table' => array(
11
+        'ezuser' => function ( \Doctrine\DBAL\Schema\Schema $schema ) {
12
+
13
+            $table = $schema->createTable( 'ezuser' );
14
+
15
+            $table->addColumn( 'contentobject_id', 'integer', array() );
16
+            $table->addColumn( 'email', 'string', array( 'length' => 150 ) );
17
+            $table->addColumn( 'login', 'string', array( 'length' => 150 ) );
18
+            $table->addColumn( 'login_normalized', 'string', array( 'length' => 150 ) );
19
+            $table->addColumn( 'password_hash', 'string', array( 'length' => 50 ) );
20
+            $table->addColumn( 'password_hash_type', 'integer', array( 'default' => 1 ) );
21
+
22
+            $table->setPrimaryKey( array( 'contentobject_id' ) );
23
+            $table->addUniqueIndex( array( 'login_normalized' ), 'ezuser_login' );
24
+
25
+            return $schema;
26
+        },
27
+
28
+        'ezuser_address' => function ( \Doctrine\DBAL\Schema\Schema $schema ) {
29
+
30
+            $table = $schema->createTable( 'ezuser_address' );
31
+
32
+            $table->addColumn( 'id', 'integer', array( 'autoincrement' => true ) );
33
+            $table->addColumn( 'siteid', 'integer', array() );
34
+            $table->addColumn( 'parentid', 'integer', array() );
35
+            $table->addColumn( 'company', 'string', array( 'length' => 100 ) );
36
+            $table->addColumn( 'vatid', 'string', array( 'length' => 32 ) );
37
+            $table->addColumn( 'salutation', 'string', array( 'length' => 8 ) );
38
+            $table->addColumn( 'title', 'string', array( 'length' => 64 ) );
39
+            $table->addColumn( 'firstname', 'string', array( 'length' => 64 ) );
40
+            $table->addColumn( 'lastname', 'string', array( 'length' => 64 ) );
41
+            $table->addColumn( 'address1', 'string', array( 'length' => 255 ) );
42
+            $table->addColumn( 'address2', 'string', array( 'length' => 255 ) );
43
+            $table->addColumn( 'address3', 'string', array( 'length' => 255 ) );
44
+            $table->addColumn( 'postal', 'string', array( 'length' => 16 ) );
45
+            $table->addColumn( 'city', 'string', array( 'length' => 255 ) );
46
+            $table->addColumn( 'state', 'string', array( 'length' => 255 ) );
47
+            $table->addColumn( 'langid', 'string', array( 'length' => 5, 'notnull' => false ) );
48
+            $table->addColumn( 'countryid', 'string', array( 'length' => 2, 'notnull' => false, 'fixed' => true ) );
49
+            $table->addColumn( 'telephone', 'string', array( 'length' => 32 ) );
50
+            $table->addColumn( 'email', 'string', array( 'length' => 255 ) );
51
+            $table->addColumn( 'telefax', 'string', array( 'length' => 255 ) );
52
+            $table->addColumn( 'website', 'string', array( 'length' => 255 ) );
53
+            $table->addColumn( 'flag', 'integer', array() );
54
+            $table->addColumn( 'pos', 'smallint', array() );
55
+            $table->addColumn( 'mtime', 'datetime', array() );
56
+            $table->addColumn( 'ctime', 'datetime', array() );
57
+            $table->addColumn( 'editor', 'string', array('length' => 255 ) );
58
+
59
+            $table->setPrimaryKey( array( 'id' ), 'pk_ezpad_id' );
60
+            $table->addIndex( array( 'lastname', 'firstname' ), 'idx_ezpad_ln_fn' );
61
+            $table->addIndex( array( 'address1', 'address2' ), 'idx_ezpad_ad1_ad2' );
62
+            $table->addIndex( array( 'postal', 'city' ), 'idx_ezpad_post_ci' );
63
+            $table->addIndex( array( 'parentid' ), 'idx_ezpad_pid' );
64
+            $table->addIndex( array( 'city' ), 'idx_ezpad_city' );
65
+
66
+            $table->addForeignKeyConstraint( 'ezuser', array( 'parentid' ), array( 'contentobject_id' ),
67
+                array( 'onUpdate' => 'CASCADE', 'onDelete' => 'CASCADE' ), 'fk_ezpad_pid' );
68
+
69
+            return $schema;
70
+        },
71
+
72
+        'ezuser_list_type' => function ( \Doctrine\DBAL\Schema\Schema $schema ) {
73
+
74
+            $table = $schema->createTable( 'ezuser_list_type' );
75
+
76
+            $table->addColumn( 'id', 'integer', array( 'autoincrement' => true ) );
77
+            $table->addColumn( 'siteid', 'integer', array() );
78
+            $table->addColumn( 'domain', 'string', array( 'length' => 32 ) );
79
+            $table->addColumn( 'code', 'string', array( 'length' => 32 ) );
80
+            $table->addColumn( 'label', 'string', array( 'length' => 255 ) );
81
+            $table->addColumn( 'status', 'smallint', array() );
82
+            $table->addColumn( 'mtime', 'datetime', array() );
83
+            $table->addColumn( 'ctime', 'datetime', array() );
84
+            $table->addColumn( 'editor', 'string', array( 'length' => 255 ) );
85
+
86
+            $table->setPrimaryKey( array( 'id' ), 'pk_ezplity_id' );
87
+            $table->addUniqueIndex( array( 'siteid', 'domain', 'code' ), 'unq_ezplity_sid_dom_code' );
88
+            $table->addIndex( array( 'siteid', 'status' ), 'idx_ezplity_sid_status' );
89
+            $table->addIndex( array( 'siteid', 'label' ), 'idx_ezplity_sid_label' );
90
+            $table->addIndex( array( 'siteid', 'code' ), 'idx_ezplity_sid_code' );
91
+
92
+            return $schema;
93
+        },
94
+
95
+        'ezuser_list' => function ( \Doctrine\DBAL\Schema\Schema $schema ) {
96
+
97
+            $table = $schema->createTable( 'ezuser_list' );
98
+
99
+            $table->addColumn( 'id', 'integer', array( 'autoincrement' => true ) );
100
+            $table->addColumn( 'parentid', 'integer', array() );
101
+            $table->addColumn( 'siteid', 'integer', array() );
102
+            $table->addColumn( 'typeid', 'integer', array() );
103
+            $table->addColumn( 'domain', 'string', array( 'length' => 32 ) );
104
+            $table->addColumn( 'refid', 'string', array( 'length' => 32 ) );
105
+            $table->addColumn( 'start', 'datetime', array( 'notnull' => false ) );
106
+            $table->addColumn( 'end', 'datetime', array( 'notnull' => false ) );
107
+            $table->addColumn( 'config', 'text', array( 'length' => 0xffff ) );
108
+            $table->addColumn( 'pos', 'integer', array() );
109
+            $table->addColumn( 'status', 'smallint', array() );
110
+            $table->addColumn( 'mtime', 'datetime', array() );
111
+            $table->addColumn( 'ctime', 'datetime', array() );
112
+            $table->addColumn( 'editor', 'string', array( 'length' => 255 ) );
113
+
114
+            $table->setPrimaryKey( array( 'id' ), 'pk_ezpli_id' );
115
+            $table->addUniqueIndex( array( 'siteid', 'domain', 'refid', 'typeid', 'parentid' ), 'unq_ezpli_sid_dm_rid_tid_pid' );
116
+            $table->addIndex( array( 'siteid', 'status', 'start', 'end' ), 'idx_ezpli_sid_stat_start_end' );
117
+            $table->addIndex( array( 'parentid', 'siteid', 'refid', 'domain', 'typeid' ), 'idx_ezpli_pid_sid_rid_dom_tid' );
118
+            $table->addIndex( array( 'parentid', 'siteid', 'start' ), 'idx_ezpli_pid_sid_start' );
119
+            $table->addIndex( array( 'parentid', 'siteid', 'end' ), 'idx_ezpli_pid_sid_end' );
120
+            $table->addIndex( array( 'parentid', 'siteid', 'pos' ), 'idx_ezpli_pid_sid_pos' );
121
+
122
+            $table->addForeignKeyConstraint( 'ezuser', array( 'parentid' ), array( 'contentobject_id' ),
123
+                array( 'onUpdate' => 'CASCADE', 'onDelete' => 'CASCADE' ), 'fk_ezpli_pid' );
124
+
125
+            $table->addForeignKeyConstraint( 'ezuser_list_type', array( 'typeid' ), array( 'id' ),
126
+                array( 'onUpdate' => 'CASCADE', 'onDelete' => 'CASCADE' ), 'fk_ezpli_typeid' );
127
+
128
+            return $schema;
129
+        },
130
+    ),
131 131
 );
Please login to merge, or discard this patch.