@@ -28,7 +28,7 @@ discard block |
||
28 | 28 | * |
29 | 29 | * @param Container $container Container object to access parameters |
30 | 30 | */ |
31 | - public function __construct( Container $container ) |
|
31 | + public function __construct(Container $container) |
|
32 | 32 | { |
33 | 33 | $this->container = $container; |
34 | 34 | } |
@@ -40,23 +40,23 @@ discard block |
||
40 | 40 | * @param string $pageName Name of the configured page |
41 | 41 | * @return array Associative list with body and header output separated by client name |
42 | 42 | */ |
43 | - public function getSections( $pageName ) |
|
43 | + public function getSections($pageName) |
|
44 | 44 | { |
45 | 45 | $context = $this->container->get('aimeos_context')->get(); |
46 | - $pagesConfig = $this->container->getParameter( 'aimeos_shop.page' ); |
|
47 | - $result = array( 'aibody' => array(), 'aiheader' => array() ); |
|
46 | + $pagesConfig = $this->container->getParameter('aimeos_shop.page'); |
|
47 | + $result = array('aibody' => array(), 'aiheader' => array()); |
|
48 | 48 | |
49 | 49 | $langid = $context->getLocale()->getLanguageId(); |
50 | - $tmplPaths = $this->container->get('aimeos')->get()->getCustomPaths( 'client/html/templates' ); |
|
51 | - $view = $this->container->get('aimeos_view')->create( $context, $tmplPaths, $langid ); |
|
52 | - $context->setView( $view ); |
|
50 | + $tmplPaths = $this->container->get('aimeos')->get()->getCustomPaths('client/html/templates'); |
|
51 | + $view = $this->container->get('aimeos_view')->create($context, $tmplPaths, $langid); |
|
52 | + $context->setView($view); |
|
53 | 53 | |
54 | - if( isset( $pagesConfig[$pageName] ) ) |
|
54 | + if (isset($pagesConfig[$pageName])) |
|
55 | 55 | { |
56 | - foreach( (array) $pagesConfig[$pageName] as $clientName ) |
|
56 | + foreach ((array) $pagesConfig[$pageName] as $clientName) |
|
57 | 57 | { |
58 | - $client = \Aimeos\Client\Html\Factory::createClient( $context, $tmplPaths, $clientName ); |
|
59 | - $client->setView( clone $view ); |
|
58 | + $client = \Aimeos\Client\Html\Factory::createClient($context, $tmplPaths, $clientName); |
|
59 | + $client->setView(clone $view); |
|
60 | 60 | $client->process(); |
61 | 61 | |
62 | 62 | $result['aibody'][$clientName] = $client->getBody(); |
@@ -16,14 +16,14 @@ discard block |
||
16 | 16 | $kernel = $this->createKernel(); |
17 | 17 | $kernel->boot(); |
18 | 18 | |
19 | - $application = new Application( $kernel ); |
|
20 | - $application->add( new Command\AccountCommand() ); |
|
19 | + $application = new Application($kernel); |
|
20 | + $application->add(new Command\AccountCommand()); |
|
21 | 21 | |
22 | - $command = $application->find( 'aimeos:account' ); |
|
23 | - $commandTester = new CommandTester( $command ); |
|
24 | - $commandTester->execute( array( 'command' => $command->getName(), 'site' => 'unittest', 'email' => '[email protected]', '--password' => 'test' ) ); |
|
22 | + $command = $application->find('aimeos:account'); |
|
23 | + $commandTester = new CommandTester($command); |
|
24 | + $commandTester->execute(array('command' => $command->getName(), 'site' => 'unittest', 'email' => '[email protected]', '--password' => 'test')); |
|
25 | 25 | |
26 | - $this->assertEquals( 0, $commandTester->getStatusCode() ); |
|
26 | + $this->assertEquals(0, $commandTester->getStatusCode()); |
|
27 | 27 | } |
28 | 28 | |
29 | 29 | |
@@ -32,13 +32,13 @@ discard block |
||
32 | 32 | $kernel = $this->createKernel(); |
33 | 33 | $kernel->boot(); |
34 | 34 | |
35 | - $application = new Application( $kernel ); |
|
36 | - $application->add( new Command\AccountCommand() ); |
|
35 | + $application = new Application($kernel); |
|
36 | + $application->add(new Command\AccountCommand()); |
|
37 | 37 | |
38 | - $command = $application->find( 'aimeos:account' ); |
|
39 | - $commandTester = new CommandTester( $command ); |
|
40 | - $commandTester->execute( array( 'command' => $command->getName(), 'site' => 'unittest', 'email' => '[email protected]', '--password' => 'test', '--admin' => true ) ); |
|
38 | + $command = $application->find('aimeos:account'); |
|
39 | + $commandTester = new CommandTester($command); |
|
40 | + $commandTester->execute(array('command' => $command->getName(), 'site' => 'unittest', 'email' => '[email protected]', '--password' => 'test', '--admin' => true)); |
|
41 | 41 | |
42 | - $this->assertEquals( 0, $commandTester->getStatusCode() ); |
|
42 | + $this->assertEquals(0, $commandTester->getStatusCode()); |
|
43 | 43 | } |
44 | 44 | } |
@@ -28,6 +28,6 @@ |
||
28 | 28 | */ |
29 | 29 | public function selectComponentAction() |
30 | 30 | { |
31 | - return $this->getOutput( 'locale/select' ); |
|
31 | + return $this->getOutput('locale/select'); |
|
32 | 32 | } |
33 | 33 | } |
@@ -28,29 +28,29 @@ |
||
28 | 28 | * @param string $clientName Html client name |
29 | 29 | * @return Response Response object containing the generated output |
30 | 30 | */ |
31 | - protected function getOutput( $clientName ) |
|
31 | + protected function getOutput($clientName) |
|
32 | 32 | { |
33 | - $tmplPaths = $this->container->get( 'aimeos' )->get()->getCustomPaths( 'client/html/templates' ); |
|
34 | - $context = $this->container->get( 'aimeos_context' )->get(); |
|
33 | + $tmplPaths = $this->container->get('aimeos')->get()->getCustomPaths('client/html/templates'); |
|
34 | + $context = $this->container->get('aimeos_context')->get(); |
|
35 | 35 | $langid = $context->getLocale()->getLanguageId(); |
36 | 36 | |
37 | - $view = $this->container->get( 'aimeos_view' )->create( $context, $tmplPaths, $langid ); |
|
38 | - $context->setView( $view ); |
|
37 | + $view = $this->container->get('aimeos_view')->create($context, $tmplPaths, $langid); |
|
38 | + $context->setView($view); |
|
39 | 39 | |
40 | - $client = \Aimeos\Client\Html\Factory::createClient( $context, $tmplPaths, $clientName ); |
|
41 | - $client->setView( $view ); |
|
40 | + $client = \Aimeos\Client\Html\Factory::createClient($context, $tmplPaths, $clientName); |
|
41 | + $client->setView($view); |
|
42 | 42 | $client->process(); |
43 | 43 | |
44 | - $twig = $this->container->get( 'twig' ); |
|
44 | + $twig = $this->container->get('twig'); |
|
45 | 45 | $vars = $twig->getGlobals(); |
46 | 46 | |
47 | - if( !isset( $vars['aiheader'] ) ) { |
|
47 | + if (!isset($vars['aiheader'])) { |
|
48 | 48 | $vars['aiheader'] = array(); |
49 | 49 | } |
50 | 50 | |
51 | 51 | $vars['aiheader'][$clientName] = (string) $client->getHeader(); |
52 | - $twig->addGlobal( 'aiheader', $vars['aiheader'] ); |
|
52 | + $twig->addGlobal('aiheader', $vars['aiheader']); |
|
53 | 53 | |
54 | - return new Response( (string) $client->getBody() ); |
|
54 | + return new Response((string) $client->getBody()); |
|
55 | 55 | } |
56 | 56 | } |
@@ -11,11 +11,11 @@ discard block |
||
11 | 11 | { |
12 | 12 | $client = static::createClient(); |
13 | 13 | |
14 | - $client->request( 'GET', '/admin' ); |
|
14 | + $client->request('GET', '/admin'); |
|
15 | 15 | $response = $client->getResponse(); |
16 | 16 | |
17 | - $this->assertEquals( 200, $response->getStatusCode() ); |
|
18 | - $this->assertContains( '<form class="login"', $response->getContent() ); |
|
17 | + $this->assertEquals(200, $response->getStatusCode()); |
|
18 | + $this->assertContains('<form class="login"', $response->getContent()); |
|
19 | 19 | } |
20 | 20 | |
21 | 21 | |
@@ -24,12 +24,12 @@ discard block |
||
24 | 24 | $client = static::createClient(array(), array( |
25 | 25 | 'PHP_AUTH_USER' => 'admin', |
26 | 26 | 'PHP_AUTH_PW' => 'adminpass', |
27 | - ) ); |
|
27 | + )); |
|
28 | 28 | |
29 | - $client->request( 'GET', '/admin' ); |
|
29 | + $client->request('GET', '/admin'); |
|
30 | 30 | $response = $client->getResponse(); |
31 | 31 | |
32 | - $this->assertEquals( 302, $response->getStatusCode() ); |
|
33 | - $this->assertContains( '/default/jqadm/search/dashboard?lang=en', $response->getContent() ); |
|
32 | + $this->assertEquals(302, $response->getStatusCode()); |
|
33 | + $this->assertContains('/default/jqadm/search/dashboard?lang=en', $response->getContent()); |
|
34 | 34 | } |
35 | 35 | } |
@@ -27,15 +27,15 @@ |
||
27 | 27 | * @param \Aimeos\MShop\Context\Item\Iface $context Context object |
28 | 28 | * @return array List of group codes the user is in |
29 | 29 | */ |
30 | - public function getGroups( \Aimeos\MShop\Context\Item\Iface $context ) |
|
30 | + public function getGroups(\Aimeos\MShop\Context\Item\Iface $context) |
|
31 | 31 | { |
32 | 32 | $list = array(); |
33 | - $manager = \Aimeos\MShop\Factory::createManager( $context, 'customer/group' ); |
|
33 | + $manager = \Aimeos\MShop\Factory::createManager($context, 'customer/group'); |
|
34 | 34 | |
35 | 35 | $search = $manager->createSearch(); |
36 | - $search->setConditions( $search->compare( '==', 'customer.group.id', $context->getGroupIds() ) ); |
|
36 | + $search->setConditions($search->compare('==', 'customer.group.id', $context->getGroupIds())); |
|
37 | 37 | |
38 | - foreach( $manager->searchItems( $search ) as $item ) { |
|
38 | + foreach ($manager->searchItems($search) as $item) { |
|
39 | 39 | $list[] = $item->getCode(); |
40 | 40 | } |
41 | 41 |
@@ -32,7 +32,7 @@ discard block |
||
32 | 32 | * @param RequestStack $requestStack Current request stack |
33 | 33 | * @param Container $container Container object to access parameters |
34 | 34 | */ |
35 | - public function __construct( RequestStack $requestStack, Container $container ) |
|
35 | + public function __construct(RequestStack $requestStack, Container $container) |
|
36 | 36 | { |
37 | 37 | $this->requestStack = $requestStack; |
38 | 38 | $this->container = $container; |
@@ -45,19 +45,19 @@ discard block |
||
45 | 45 | * @param \Aimeos\MShop\Context\Item\Iface $context Context object |
46 | 46 | * @return \Aimeos\MShop\Locale\Item\Iface Locale item object |
47 | 47 | */ |
48 | - public function get( \Aimeos\MShop\Context\Item\Iface $context ) |
|
48 | + public function get(\Aimeos\MShop\Context\Item\Iface $context) |
|
49 | 49 | { |
50 | - if( $this->locale === null ) |
|
50 | + if ($this->locale === null) |
|
51 | 51 | { |
52 | - $status = $this->container->getParameter( 'aimeos_shop.disable_sites' ); |
|
52 | + $status = $this->container->getParameter('aimeos_shop.disable_sites'); |
|
53 | 53 | $request = $this->requestStack->getMasterRequest(); |
54 | 54 | |
55 | - $site = $request->attributes->get( 'site', $request->query->get( 'site', 'default' ) ); |
|
56 | - $currency = $request->attributes->get( 'currency', $request->query->get( 'currency', '' ) ); |
|
57 | - $lang = $request->attributes->get( 'locale', $request->query->get( 'locale', '' ) ); |
|
55 | + $site = $request->attributes->get('site', $request->query->get('site', 'default')); |
|
56 | + $currency = $request->attributes->get('currency', $request->query->get('currency', '')); |
|
57 | + $lang = $request->attributes->get('locale', $request->query->get('locale', '')); |
|
58 | 58 | |
59 | - $localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager( $context ); |
|
60 | - $this->locale = $localeManager->bootstrap( $site, $lang, $currency, $status ); |
|
59 | + $localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager($context); |
|
60 | + $this->locale = $localeManager->bootstrap($site, $lang, $currency, $status); |
|
61 | 61 | } |
62 | 62 | |
63 | 63 | return $this->locale; |
@@ -71,17 +71,17 @@ discard block |
||
71 | 71 | * @param string $site Unique site code |
72 | 72 | * @return \Aimeos\MShop\Locale\Item\Iface Locale item object |
73 | 73 | */ |
74 | - public function getBackend( \Aimeos\MShop\Context\Item\Iface $context, $site ) |
|
74 | + public function getBackend(\Aimeos\MShop\Context\Item\Iface $context, $site) |
|
75 | 75 | { |
76 | - $localeManager = \Aimeos\MShop\Factory::createManager( $context, 'locale' ); |
|
76 | + $localeManager = \Aimeos\MShop\Factory::createManager($context, 'locale'); |
|
77 | 77 | |
78 | 78 | try |
79 | 79 | { |
80 | - $localeItem = $localeManager->bootstrap( $site, '', '', false ); |
|
81 | - $localeItem->setLanguageId( null ); |
|
82 | - $localeItem->setCurrencyId( null ); |
|
80 | + $localeItem = $localeManager->bootstrap($site, '', '', false); |
|
81 | + $localeItem->setLanguageId(null); |
|
82 | + $localeItem->setCurrencyId(null); |
|
83 | 83 | } |
84 | - catch( \Aimeos\MShop\Locale\Exception $e ) |
|
84 | + catch (\Aimeos\MShop\Locale\Exception $e) |
|
85 | 85 | { |
86 | 86 | $localeItem = $localeManager->createItem(); |
87 | 87 | } |
@@ -29,26 +29,26 @@ |
||
29 | 29 | public function getConfigTreeBuilder() |
30 | 30 | { |
31 | 31 | $treeBuilder = new TreeBuilder(); |
32 | - $rootNode = $treeBuilder->root( 'aimeos_shop' ); |
|
32 | + $rootNode = $treeBuilder->root('aimeos_shop'); |
|
33 | 33 | |
34 | 34 | $rootNode |
35 | 35 | ->children() |
36 | - ->booleanNode('disable_sites')->defaultValue( true )->end() |
|
37 | - ->booleanNode('apc_enable')->defaultValue( false )->end() |
|
38 | - ->scalarNode('apc_prefix')->defaultValue( 'sf2:' )->end() |
|
36 | + ->booleanNode('disable_sites')->defaultValue(true)->end() |
|
37 | + ->booleanNode('apc_enable')->defaultValue(false)->end() |
|
38 | + ->scalarNode('apc_prefix')->defaultValue('sf2:')->end() |
|
39 | 39 | ->scalarNode('extdir')->end() |
40 | 40 | ->scalarNode('uploaddir')->end() |
41 | - ->variableNode('admin')->defaultValue( array() )->end() |
|
42 | - ->variableNode('client')->defaultValue( array() )->end() |
|
43 | - ->variableNode('controller')->defaultValue( array() )->end() |
|
44 | - ->variableNode('i18n')->defaultValue( array() )->end() |
|
45 | - ->variableNode('madmin')->defaultValue( array() )->end() |
|
46 | - ->variableNode('mshop')->defaultValue( array() )->end() |
|
47 | - ->variableNode('resource')->defaultValue( array() )->end() |
|
48 | - ->variableNode('page')->defaultValue( array() )->end() |
|
49 | - ->variableNode('backend')->defaultValue( array() )->end() |
|
50 | - ->variableNode('frontend')->defaultValue( array() )->end() |
|
51 | - ->variableNode('command')->defaultValue( array() )->end() |
|
41 | + ->variableNode('admin')->defaultValue(array())->end() |
|
42 | + ->variableNode('client')->defaultValue(array())->end() |
|
43 | + ->variableNode('controller')->defaultValue(array())->end() |
|
44 | + ->variableNode('i18n')->defaultValue(array())->end() |
|
45 | + ->variableNode('madmin')->defaultValue(array())->end() |
|
46 | + ->variableNode('mshop')->defaultValue(array())->end() |
|
47 | + ->variableNode('resource')->defaultValue(array())->end() |
|
48 | + ->variableNode('page')->defaultValue(array())->end() |
|
49 | + ->variableNode('backend')->defaultValue(array())->end() |
|
50 | + ->variableNode('frontend')->defaultValue(array())->end() |
|
51 | + ->variableNode('command')->defaultValue(array())->end() |
|
52 | 52 | ->end() |
53 | 53 | ; |
54 | 54 |
@@ -29,13 +29,13 @@ discard block |
||
29 | 29 | */ |
30 | 30 | protected function configure() |
31 | 31 | { |
32 | - $this->setName( 'aimeos:setup'); |
|
33 | - $this->setDescription( 'Initialize or update the Aimeos database tables' ); |
|
34 | - $this->addArgument( 'site', InputArgument::OPTIONAL, 'Site for updating database entries', 'default' ); |
|
35 | - $this->addArgument( 'tplsite', InputArgument::OPTIONAL, 'Template site for creating or updating database entries', 'default' ); |
|
36 | - $this->addOption( 'option', null, InputOption::VALUE_REQUIRED, 'Optional setup configuration, name and value are separated by ":" like "setup/default/demo:1"', array() ); |
|
37 | - $this->addOption( 'action', null, InputOption::VALUE_REQUIRED, 'Action name that should be executed, i.e. "migrate", "rollback", "clean"', 'migrate' ); |
|
38 | - $this->addOption( 'task', null, InputOption::VALUE_REQUIRED, 'Name of the setup task that should be executed', null ); |
|
32 | + $this->setName('aimeos:setup'); |
|
33 | + $this->setDescription('Initialize or update the Aimeos database tables'); |
|
34 | + $this->addArgument('site', InputArgument::OPTIONAL, 'Site for updating database entries', 'default'); |
|
35 | + $this->addArgument('tplsite', InputArgument::OPTIONAL, 'Template site for creating or updating database entries', 'default'); |
|
36 | + $this->addOption('option', null, InputOption::VALUE_REQUIRED, 'Optional setup configuration, name and value are separated by ":" like "setup/default/demo:1"', array()); |
|
37 | + $this->addOption('action', null, InputOption::VALUE_REQUIRED, 'Action name that should be executed, i.e. "migrate", "rollback", "clean"', 'migrate'); |
|
38 | + $this->addOption('task', null, InputOption::VALUE_REQUIRED, 'Name of the setup task that should be executed', null); |
|
39 | 39 | } |
40 | 40 | |
41 | 41 | |
@@ -45,41 +45,41 @@ discard block |
||
45 | 45 | * @param InputInterface $input Input object |
46 | 46 | * @param OutputInterface $output Output object |
47 | 47 | */ |
48 | - protected function execute( InputInterface $input, OutputInterface $output ) |
|
48 | + protected function execute(InputInterface $input, OutputInterface $output) |
|
49 | 49 | { |
50 | - $ctx = $this->getContainer()->get( 'aimeos_context' )->get( false, 'command' ); |
|
51 | - $ctx->setEditor( 'aimeos:setup' ); |
|
50 | + $ctx = $this->getContainer()->get('aimeos_context')->get(false, 'command'); |
|
51 | + $ctx->setEditor('aimeos:setup'); |
|
52 | 52 | |
53 | 53 | $config = $ctx->getConfig(); |
54 | - $site = $input->getArgument( 'site' ); |
|
55 | - $tplsite = $input->getArgument( 'tplsite' ); |
|
54 | + $site = $input->getArgument('site'); |
|
55 | + $tplsite = $input->getArgument('tplsite'); |
|
56 | 56 | |
57 | - $config->set( 'setup/site', $site ); |
|
58 | - $dbconfig = $this->getDbConfig( $config ); |
|
59 | - $this->setOptions( $config, $input ); |
|
57 | + $config->set('setup/site', $site); |
|
58 | + $dbconfig = $this->getDbConfig($config); |
|
59 | + $this->setOptions($config, $input); |
|
60 | 60 | |
61 | - $taskPaths = $this->getContainer()->get( 'aimeos' )->get()->getSetupPaths( $tplsite ); |
|
62 | - $manager = new \Aimeos\MW\Setup\Manager\Multiple( $ctx->getDatabaseManager(), $dbconfig, $taskPaths, $ctx ); |
|
61 | + $taskPaths = $this->getContainer()->get('aimeos')->get()->getSetupPaths($tplsite); |
|
62 | + $manager = new \Aimeos\MW\Setup\Manager\Multiple($ctx->getDatabaseManager(), $dbconfig, $taskPaths, $ctx); |
|
63 | 63 | |
64 | - $output->writeln( sprintf( 'Initializing or updating the Aimeos database tables for site <info>%1$s</info>', $site ) ); |
|
64 | + $output->writeln(sprintf('Initializing or updating the Aimeos database tables for site <info>%1$s</info>', $site)); |
|
65 | 65 | |
66 | - if( ( $task = $input->getOption( 'task' ) ) && is_array( $task ) ) { |
|
67 | - $task = reset( $task ); |
|
66 | + if (($task = $input->getOption('task')) && is_array($task)) { |
|
67 | + $task = reset($task); |
|
68 | 68 | } |
69 | 69 | |
70 | - switch( $input->getOption( 'action' ) ) |
|
70 | + switch ($input->getOption('action')) |
|
71 | 71 | { |
72 | 72 | case 'migrate': |
73 | - $manager->migrate( $task ); |
|
73 | + $manager->migrate($task); |
|
74 | 74 | break; |
75 | 75 | case 'rollback': |
76 | - $manager->rollback( $task ); |
|
76 | + $manager->rollback($task); |
|
77 | 77 | break; |
78 | 78 | case 'clean': |
79 | - $manager->clean( $task ); |
|
79 | + $manager->clean($task); |
|
80 | 80 | break; |
81 | 81 | default: |
82 | - throw new \Exception( sprintf( 'Invalid setup action "%1$s"', $input->getOption( 'action' ) ) ); |
|
82 | + throw new \Exception(sprintf('Invalid setup action "%1$s"', $input->getOption('action'))); |
|
83 | 83 | } |
84 | 84 | } |
85 | 85 | |
@@ -90,14 +90,14 @@ discard block |
||
90 | 90 | * @param \Aimeos\MW\Config\Iface $conf Config object |
91 | 91 | * @return array Multi-dimensional associative list of database configuration parameters |
92 | 92 | */ |
93 | - protected function getDbConfig( \Aimeos\MW\Config\Iface $conf ) |
|
93 | + protected function getDbConfig(\Aimeos\MW\Config\Iface $conf) |
|
94 | 94 | { |
95 | - $dbconfig = $conf->get( 'resource', array() ); |
|
95 | + $dbconfig = $conf->get('resource', array()); |
|
96 | 96 | |
97 | - foreach( $dbconfig as $rname => $dbconf ) |
|
97 | + foreach ($dbconfig as $rname => $dbconf) |
|
98 | 98 | { |
99 | - if( strncmp( $rname, 'db', 2 ) !== 0 ) { |
|
100 | - unset( $dbconfig[$rname] ); |
|
99 | + if (strncmp($rname, 'db', 2) !== 0) { |
|
100 | + unset($dbconfig[$rname]); |
|
101 | 101 | } |
102 | 102 | } |
103 | 103 | |
@@ -113,12 +113,12 @@ discard block |
||
113 | 113 | * @param array Associative list of database configurations |
114 | 114 | * @throws \RuntimeException If the format of the options is invalid |
115 | 115 | */ |
116 | - protected function setOptions( \Aimeos\MW\Config\Iface $conf, InputInterface $input ) |
|
116 | + protected function setOptions(\Aimeos\MW\Config\Iface $conf, InputInterface $input) |
|
117 | 117 | { |
118 | - foreach( (array) $input->getOption( 'option' ) as $option ) |
|
118 | + foreach ((array) $input->getOption('option') as $option) |
|
119 | 119 | { |
120 | - list( $name, $value ) = explode( ':', $option ); |
|
121 | - $conf->set( str_replace( '\\', '/', $name ), $value ); |
|
120 | + list($name, $value) = explode(':', $option); |
|
121 | + $conf->set(str_replace('\\', '/', $name), $value); |
|
122 | 122 | } |
123 | 123 | } |
124 | 124 | } |