Completed
Push — master ( 4a813f...db5871 )
by Aimeos
03:15 queued 01:18
created

JqadmController::copyAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 3
1
<?php
2
3
/**
4
 * @license LGPLv3, http://www.gnu.org/copyleft/lgpl.html
5
 * @copyright Aimeos (aimeos.org), 2015-2016
6
 * @package flow
7
 * @subpackage Controller
8
 */
9
10
11
namespace Aimeos\Shop\Controller;
12
13
use Neos\Flow\Annotations as Flow;
14
15
16
/**
17
 * Controller for JQuery based adminisration interface.
18
 * @package flow
19
 * @subpackage Controller
20
 */
21
class JqadmController extends \Neos\Flow\Mvc\Controller\ActionController
22
{
23
	/**
24
	 * @var \Aimeos\Shop\Base\Aimeos
25
	 * @Flow\Inject
26
	 */
27
	protected $aimeos;
28
29
	/**
30
	 * @var \Aimeos\Shop\Base\Context
31
	 * @Flow\Inject
32
	 */
33
	protected $context;
34
35
	/**
36
	 * @var \Aimeos\Shop\Base\I18n
37
	 * @Flow\Inject
38
	 */
39
	protected $i18n;
40
41
	/**
42
	 * @var \Aimeos\Shop\Base\Locale
43
	 * @Flow\Inject
44
	 */
45
	protected $locale;
46
47
	/**
48
	 * @var \Aimeos\Shop\Base\View
49
	 * @Flow\Inject
50
	 */
51
	protected $viewbase;
52
53
54
	/**
55
	 * Returns the JS file content
56
	 *
57
	 * @return \Neos\Flow\Http\Response Response object
58
	 */
59
	public function fileAction()
60
	{
61
		$files = array();
62
		$aimeos = $this->aimeos->get();
63
		$type = $this->request->getArgument( 'type' );
64
65
		foreach( $aimeos->getCustomPaths( 'admin/jqadm' ) as $base => $paths )
66
		{
67
			foreach( $paths as $path )
68
			{
69
				$jsbAbsPath = $base . '/' . $path;
70
				$jsb2 = new \Aimeos\MW\Jsb2\Standard( $jsbAbsPath, dirname( $jsbAbsPath ) );
71
				$files = array_merge( $files, $jsb2->getFiles( $type ) );
72
			}
73
		}
74
75
		foreach( $files as $file )
76
		{
77
			if( ( $content = file_get_contents( $file ) ) !== false ) {
78
				$this->response->appendContent( $content );
79
			}
80
		}
81
82
		if( $type === 'js' ) {
83
			$this->response->setHeader( 'Content-Type', 'application/javascript' );
84
		} elseif( $type === 'css' ) {
85
			$this->response->setHeader( 'Content-Type', 'text/css' );
86
		}
87
	}
88
89
90
	/**
91
	 * Returns the HTML code for a copy of a resource object
92
	 *
93
	 * @param string Resource location, e.g. "product"
94
	 * @param string $sitecode Unique site code
0 ignored issues
show
Bug introduced by
There is no parameter named $sitecode. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
95
	 * @param integer $id Unique resource ID
96
	 * @return string Generated output
97
	 */
98
	public function copyAction( $site = 'default', $resource, $id )
99
	{
100
		$cntl = $this->createClient( $site, $resource );
101
		return $this->getHtml( $cntl->copy( $id ) );
0 ignored issues
show
Unused Code introduced by
The call to Iface::copy() has too many arguments starting with $id.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
102
	}
103
104
105
	/**
106
	 * Returns the HTML code for a new resource object
107
	 *
108
	 * @param string Resource location, e.g. "product"
109
	 * @param string $sitecode Unique site code
0 ignored issues
show
Bug introduced by
There is no parameter named $sitecode. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
110
	 * @return string Generated output
111
	 */
112
	public function createAction( $site = 'default', $resource )
113
	{
114
		$cntl = $this->createClient( $site, $resource );
115
		return $this->getHtml( $cntl->create() );
116
	}
117
118
119
	/**
120
	 * Deletes the resource object or a list of resource objects
121
	 *
122
	 * @param string Resource location, e.g. "product"
123
	 * @param string $sitecode Unique site code
0 ignored issues
show
Bug introduced by
There is no parameter named $sitecode. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
124
	 * @param integer $id Unique resource ID
125
	 * @return string Generated output
126
	 */
127
	public function deleteAction( $site = 'default', $resource, $id )
128
	{
129
		$cntl = $this->createClient( $site, $resource );
130
		return $this->getHtml( $cntl->delete( $id ) . $cntl->search() );
0 ignored issues
show
Unused Code introduced by
The call to Iface::delete() has too many arguments starting with $id.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
131
	}
132
133
134
	/**
135
	 * Returns the HTML code for the requested resource object
136
	 *
137
	 * @param string Resource location, e.g. "product"
138
	 * @param string $sitecode Unique site code
0 ignored issues
show
Bug introduced by
There is no parameter named $sitecode. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
139
	 * @param integer $id Unique resource ID
140
	 * @return string Generated output
141
	 */
142
	public function getAction( $site = 'default', $resource, $id )
143
	{
144
		$cntl = $this->createClient( $site, $resource );
145
		return $this->getHtml( $cntl->get( $id ) );
0 ignored issues
show
Unused Code introduced by
The call to Iface::get() has too many arguments starting with $id.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
146
	}
147
148
149
	/**
150
	 * Saves a new resource object
151
	 *
152
	 * @param string Resource location, e.g. "product"
153
	 * @param string $sitecode Unique site code
0 ignored issues
show
Bug introduced by
There is no parameter named $sitecode. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
154
	 * @return string Generated output
155
	 */
156
	public function saveAction( $site = 'default', $resource )
157
	{
158
		$cntl = $this->createClient( $site, $resource );
159
		return $this->getHtml( ( $cntl->save() ? : $cntl->search() ) );
160
	}
161
162
163
	/**
164
	 * Returns the HTML code for a list of resource objects
165
	 *
166
	 * @param string Resource location, e.g. "product"
167
	 * @param string $sitecode Unique site code
0 ignored issues
show
Bug introduced by
There is no parameter named $sitecode. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
168
	 * @return string Generated output
169
	 */
170
	public function searchAction( $site = 'default', $resource )
171
	{
172
		$cntl = $this->createClient( $site, $resource );
173
		return $this->getHtml( $cntl->search() );
174
	}
175
176
177
	/**
178
	 * Returns the resource controller
179
	 *
180
	 * @param string $sitecode Unique site code
181
	 * @return \Aimeos\MShop\Context\Item\Iface Context item
182
	 */
183
	protected function createClient( $sitecode, $resource )
184
	{
185
		$lang = ( $this->request->hasArgument( 'lang' ) ? $this->request->getArgument( 'lang' ) : 'en' );
186
		$templatePaths = $this->aimeos->get()->getCustomPaths( 'admin/jqadm/templates' );
187
188
		$context = $this->context->get( null, 'backend' );
189
		$context->setI18n( $this->i18n->get( array( $lang, 'en' ) ) );
190
		$context->setLocale( $this->locale->getBackend( $context, $sitecode ) );
191
		$context->setView( $this->viewbase->create( $context, $this->uriBuilder, $templatePaths, $this->request, $lang ) );
192
193
		return \Aimeos\Admin\JQAdm\Factory::createClient( $context, $templatePaths, $resource );
194
	}
195
196
197
	/**
198
	 * Returns the generated view including the HTML code
199
	 *
200
	 * @param string $content Content from admin client
201
	 */
202
	protected function getHtml( $content )
203
	{
204
		$version = $this->aimeos->getVersion();
205
		$extnames = implode( ',', $this->aimeos->get()->getExtensions() );
206
		$content = str_replace( ['{type}', '{version}', '{extensions}'], ['Flow', $version, $extnames], $content );
207
208
		$this->view->assign( 'content', $content );
209
		return $this->view->render( 'index' );
0 ignored issues
show
Unused Code introduced by
The call to ViewInterface::render() has too many arguments starting with 'index'.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
210
	}
211
}
212