1 | <?php |
||||
2 | |||||
3 | /** |
||||
4 | * @license MIT, http://opensource.org/licenses/MIT |
||||
5 | * @copyright Aimeos (aimeos.org), 2015-2016 |
||||
6 | * @package symfony |
||||
7 | * @subpackage Controller |
||||
8 | */ |
||||
9 | |||||
10 | |||||
11 | namespace Aimeos\ShopBundle\Controller; |
||||
12 | |||||
13 | use Symfony\Component\HttpFoundation\Request; |
||||
14 | use Symfony\Component\HttpFoundation\Response; |
||||
15 | use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory; |
||||
16 | use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; |
||||
17 | |||||
18 | |||||
19 | /** |
||||
20 | * Aimeos controller for the JQAdm admin interface |
||||
21 | * |
||||
22 | * @package symfony |
||||
23 | * @subpackage Controller |
||||
24 | */ |
||||
25 | class JqadmController extends AbstractController |
||||
26 | { |
||||
27 | private $twig; |
||||
28 | |||||
29 | |||||
30 | public function __construct( \Twig\Environment $twig ) |
||||
31 | { |
||||
32 | $this->twig = $twig; |
||||
33 | } |
||||
34 | |||||
35 | |||||
36 | /** |
||||
37 | * Returns the JS file content |
||||
38 | * |
||||
39 | * @param $name File type, i.e. "index-css" or "index-js" |
||||
0 ignored issues
–
show
|
|||||
40 | * @return Response Response object |
||||
41 | */ |
||||
42 | public function fileAction( $name ) : Response |
||||
43 | { |
||||
44 | $files = []; |
||||
45 | $aimeos = $this->container->get( 'aimeos' )->get(); |
||||
46 | |||||
47 | foreach( $aimeos->getCustomPaths( 'admin/jqadm' ) as $base => $paths ) |
||||
48 | { |
||||
49 | foreach( $paths as $path ) { |
||||
50 | $files[] = $base . '/' . $path; |
||||
51 | } |
||||
52 | } |
||||
53 | |||||
54 | $response = new Response( \Aimeos\Admin\JQAdm\Bundle::get( $files, $name ) ); |
||||
55 | |||||
56 | if( str_ends_with( $name, 'js' ) ) { |
||||
57 | $response->headers->set( 'Content-Type', 'application/javascript' ); |
||||
58 | } elseif( str_ends_with( $name, 'css' ) ) { |
||||
59 | $response->headers->set( 'Content-Type', 'text/css' ); |
||||
60 | } |
||||
61 | |||||
62 | return $response; |
||||
63 | } |
||||
64 | |||||
65 | |||||
66 | /** |
||||
67 | * Returns the HTML code for a batch of a resource object |
||||
68 | * |
||||
69 | * @param Request $request Symfony request object |
||||
70 | * @param string $resource Resource location, e.g. "product" |
||||
71 | * @param string $site Unique site code |
||||
72 | * @return Response Generated output |
||||
73 | */ |
||||
74 | public function batchAction( Request $request, $resource, $site = 'default' ) : Response |
||||
75 | { |
||||
76 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
77 | |||||
78 | if( ( $html = $cntl->batch() ) == '' ) { |
||||
79 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
0 ignored issues
–
show
The method
view() does not exist on Aimeos\Admin\JQAdm\Iface . It seems like you code against a sub-type of said class. However, the method does not exist in Aimeos\Admin\JQAdm\Common\Admin\Factory\Iface or Aimeos\Admin\JQAdm\Common\Decorator\Iface . Are you sure you never get one of those?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
80 | } |
||||
81 | |||||
82 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
83 | } |
||||
84 | |||||
85 | |||||
86 | /** |
||||
87 | * Returns the HTML code for a copy of a resource object |
||||
88 | * |
||||
89 | * @param Request $request Symfony request object |
||||
90 | * @param string $resource Resource location, e.g. "product" |
||||
91 | * @param string $site Unique site code |
||||
92 | * @return Response Generated output |
||||
93 | */ |
||||
94 | public function copyAction( Request $request, $resource, $site = 'default' ) : Response |
||||
95 | { |
||||
96 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
97 | |||||
98 | if( ( $html = $cntl->copy() ) == '' ) { |
||||
99 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
100 | } |
||||
101 | |||||
102 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
103 | } |
||||
104 | |||||
105 | |||||
106 | /** |
||||
107 | * Returns the HTML code for a new resource object |
||||
108 | * |
||||
109 | * @param Request $request Symfony request object |
||||
110 | * @param string $resource Resource location, e.g. "product" |
||||
111 | * @param string $site Unique site code |
||||
112 | * @return Response Generated output |
||||
113 | */ |
||||
114 | public function createAction( Request $request, $resource, $site = 'default' ) : Response |
||||
115 | { |
||||
116 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
117 | |||||
118 | if( ( $html = $cntl->create() ) == '' ) { |
||||
119 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
120 | } |
||||
121 | |||||
122 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
123 | } |
||||
124 | |||||
125 | |||||
126 | /** |
||||
127 | * Deletes the resource object or a list of resource objects |
||||
128 | * |
||||
129 | * @param Request $request Symfony request object |
||||
130 | * @param string $resource Resource location, e.g. "product" |
||||
131 | * @param string $site Unique site code |
||||
132 | * @return Response Generated output |
||||
133 | */ |
||||
134 | public function deleteAction( Request $request, $resource, $site = 'default' ) : Response |
||||
135 | { |
||||
136 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
137 | |||||
138 | if( ( $html = $cntl->delete() ) == '' ) { |
||||
139 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
140 | } |
||||
141 | |||||
142 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
143 | } |
||||
144 | |||||
145 | |||||
146 | /** |
||||
147 | * Exports the requested resource object |
||||
148 | * |
||||
149 | * @param Request $request Symfony request object |
||||
150 | * @param string $resource Resource location, e.g. "product" |
||||
151 | * @param string $site Unique site code |
||||
152 | * @return Response Generated output |
||||
153 | */ |
||||
154 | public function exportAction( Request $request, $resource, $site = 'default' ) : Response |
||||
155 | { |
||||
156 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
157 | |||||
158 | if( ( $html = $cntl->export() ) == '' ) { |
||||
159 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
160 | } |
||||
161 | |||||
162 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
163 | } |
||||
164 | |||||
165 | |||||
166 | /** |
||||
167 | * Returns the HTML code for the requested resource object |
||||
168 | * |
||||
169 | * @param Request $request Symfony request object |
||||
170 | * @param string $resource Resource location, e.g. "product" |
||||
171 | * @param string $site Unique site code |
||||
172 | * @return Response Generated output |
||||
173 | */ |
||||
174 | public function getAction( Request $request, $resource, $site = 'default' ) : Response |
||||
175 | { |
||||
176 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
177 | |||||
178 | if( ( $html = $cntl->get() ) == '' ) { |
||||
179 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
180 | } |
||||
181 | |||||
182 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
183 | } |
||||
184 | |||||
185 | |||||
186 | /** |
||||
187 | * Imports the requested resource object |
||||
188 | * |
||||
189 | * @param Request $request Symfony request object |
||||
190 | * @param string $resource Resource location, e.g. "product" |
||||
191 | * @param string $site Unique site code |
||||
192 | * @return Response Generated output |
||||
193 | */ |
||||
194 | public function importAction( Request $request, $resource, $site = 'default' ) : Response |
||||
195 | { |
||||
196 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
197 | |||||
198 | if( ( $html = $cntl->import() ) == '' ) { |
||||
199 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
200 | } |
||||
201 | |||||
202 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
203 | } |
||||
204 | |||||
205 | |||||
206 | /** |
||||
207 | * Saves a new resource object |
||||
208 | * |
||||
209 | * @param Request $request Symfony request object |
||||
210 | * @param string $resource Resource location, e.g. "product" |
||||
211 | * @param string $site Unique site code |
||||
212 | * @return Response Generated output |
||||
213 | */ |
||||
214 | public function saveAction( Request $request, $resource, $site = 'default' ) : Response |
||||
215 | { |
||||
216 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
217 | |||||
218 | if( ( $html = $cntl->save() ) == '' ) { |
||||
219 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
220 | } |
||||
221 | |||||
222 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
223 | } |
||||
224 | |||||
225 | |||||
226 | /** |
||||
227 | * Returns the HTML code for a list of resource objects |
||||
228 | * |
||||
229 | * @param Request $request Symfony request object |
||||
230 | * @param string $resource Resource location, e.g. "product" |
||||
231 | * @param string $site Unique site code |
||||
232 | * @return Response Generated output |
||||
233 | */ |
||||
234 | public function searchAction( Request $request, $resource, $site = 'default' ) : Response |
||||
235 | { |
||||
236 | $cntl = $this->createAdmin( $request, $site, $resource ); |
||||
237 | |||||
238 | if( ( $html = $cntl->search() ) == '' ) { |
||||
239 | return ( new HttpFoundationFactory() )->createResponse( $cntl->view()->response() ); |
||||
240 | } |
||||
241 | |||||
242 | return $this->getHtml( (string) $html, $request->get( 'locale', 'en' ) ); |
||||
243 | } |
||||
244 | |||||
245 | |||||
246 | /** |
||||
247 | * Returns the resource controller |
||||
248 | * |
||||
249 | * @param Request $request Symfony request object |
||||
250 | * @param string $site Unique site code |
||||
251 | * @param string $resource Resource location, e.g. "product" |
||||
252 | * @return \Aimeos\Admin\JQAdm\Iface Context item |
||||
253 | */ |
||||
254 | protected function createAdmin( Request $request, $site, $resource ) : \Aimeos\Admin\JQAdm\Iface |
||||
255 | { |
||||
256 | $lang = $request->get( 'locale', 'en' ); |
||||
257 | |||||
258 | $aimeos = $this->container->get( 'aimeos' )->get(); |
||||
259 | $templatePaths = $aimeos->getTemplatePaths( 'admin/jqadm/templates' ); |
||||
260 | |||||
261 | $context = $this->container->get( 'aimeos.context' )->get( false, 'backend' ); |
||||
262 | $context->setI18n( $this->container->get( 'aimeos.i18n' )->get( array( $lang, 'en' ) ) ); |
||||
263 | $context->setLocale( $this->container->get( 'aimeos.locale' )->getBackend( $context, $site )->setLanguageId( $lang ) ); |
||||
264 | |||||
265 | $view = $this->container->get( 'aimeos.view' )->create( $context, $templatePaths, $lang ); |
||||
266 | |||||
267 | $view->aimeosType = 'Symfony'; |
||||
268 | $view->aimeosVersion = $this->container->get( 'aimeos' )->getVersion(); |
||||
269 | $view->aimeosExtensions = implode( ',', $aimeos->getExtensions() ); |
||||
270 | |||||
271 | $context->setView( $view ); |
||||
272 | |||||
273 | return \Aimeos\Admin\JQAdm::create( $context, $aimeos, $resource ); |
||||
274 | } |
||||
275 | |||||
276 | |||||
277 | /** |
||||
278 | * Returns the generated HTML code |
||||
279 | * |
||||
280 | * @param string $content Content from admin client |
||||
281 | * @param string $lang ISO language code |
||||
282 | * @return Response View for rendering the output |
||||
283 | */ |
||||
284 | protected function getHtml( string $content, string $lang ) : Response |
||||
285 | { |
||||
286 | return new Response( $this->twig->render( '@AimeosShop/Jqadm/index.html.twig', [ |
||||
287 | 'content' => $content, |
||||
288 | 'locale' => $lang, |
||||
289 | 'localeDir' => in_array( $lang, ['ar', 'az', 'dv', 'fa', 'he', 'ku', 'ur'] ) ? 'rtl' : 'ltr', |
||||
290 | 'theme' => ( $_COOKIE['aimeos_backend_theme'] ?? '' ) == 'dark' ? 'dark' : 'light' |
||||
291 | ] ) ); |
||||
292 | } |
||||
293 | } |
||||
294 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths