1+ <?php
2+
3+ namespace Ajax \php \cakephp ;
4+
5+
6+ use Ajax \service \JString ;
7+ use Cake \Routing \Router ;
8+ class _JsUtils extends \Ajax \JsUtils{
9+ public function getUrl ($ url ){
10+ return Router::url ($ url );
11+ }
12+ public function addViewElement ($ identifier ,$ content ,&$ view ){
13+ $ viewVars =$ view ->viewVars ;
14+ if (isset ($ viewVars ["q " ]) === false ) {
15+ $ controls =array ();
16+ }else {
17+ $ controls =$ viewVars ["q " ];
18+ }
19+ $ controls [$ identifier ]=$ content ;
20+ $ view ->set ("q " , $ controls );
21+ }
22+
23+ public function createScriptVariable (&$ view ,$ view_var , $ output ){
24+ $ view ->set ($ view_var ,$ output );
25+ }
26+
27+ /**
28+ * @param Symfony\Component\DependencyInjection\ContainerInterface $initialControllerInstance
29+ * @param string $controllerName
30+ * @param string $actionName
31+ * @param array $params
32+ * @see \Ajax\JsUtils::forward()
33+ */
34+ public function forward ($ initialControllerInstance ,$ controllerName ,$ actionName ,$ params =array ()){
35+ $ path =$ params ;
36+ $ request = $ initialControllerInstance ->get ('request_stack ' )->getCurrentRequest ();
37+ $ path ['_forwarded ' ] = $ request ->attributes ;
38+ $ path ['_controller ' ] = $ controllerName .": " .$ actionName ;
39+ $ subRequest = $ request ->duplicate ([], null , $ path );
40+ $ response = $ initialControllerInstance ->get ('http_kernel ' )->handle ($ subRequest , HttpKernelInterface::SUB_REQUEST );
41+ return $ response ->getContent ();
42+ }
43+
44+ public function renderContent ($ initialControllerInstance ,$ viewName , $ params =NULL ) {
45+ if ($ initialControllerInstance ->has ('templating ' )) {
46+ return $ initialControllerInstance ->get ('templating ' )->render ($ viewName , $ params );
47+ }
48+
49+ if (!$ initialControllerInstance ->has ('twig ' )) {
50+ throw new \LogicException ('You can not use the "renderView" method if the Templating Component or the Twig Bundle are not available. ' );
51+ }
52+
53+ return $ initialControllerInstance ->get ('twig ' )->render ($ viewName , $ params );
54+ }
55+
56+ public function fromDispatcher ($ dispatcher ){
57+ return \explode ("/ " , Router::getRequest (true )->url );
58+ }
59+ }
0 commit comments