Log message #4265750

# At Username Text
# Jun 17th 2021, 13:21 dantedantas Could be better. A Html.
# Jun 17th 2021, 13:21 kevin.pfeifer do you expect to get a formatted HTML back?
# Jun 17th 2021, 13:20 dantedantas No. :) Maybe, could you have an example of how to format it?
# Jun 17th 2021, 13:20 alamnaryab I am trying to see documentation how to capture request in middleware and append default language param if not available
# Jun 17th 2021, 13:17 kevin.pfeifer yes, do you expect something different?
# Jun 17th 2021, 13:16 dantedantas The result.
# Jun 17th 2021, 13:16 dantedantas Is already.
# Jun 17th 2021, 13:15 kevin.pfeifer
# Jun 17th 2021, 13:14 kevin.pfeifer have you changed your AJAX request to GET?
# Jun 17th 2021, 13:14 dantedantas Hi Kevin. Thank you for your feedback. It looks much better. :) The 'IF' condition still doesnt work.
# Jun 17th 2021, 13:12 ndm I see, looks like they're supported in 4.next
# Jun 17th 2021, 13:06 admad Maybe, a while back I updated the router classes to support brace style everywhere (and check for those first)
# Jun 17th 2021, 13:05 ndm Maybe because brace style placeholders aren't supported, only the colon ones work.
# Jun 17th 2021, 13:04 ndm @alamnaryab That is the expected behavior, the URL filter only persists the language parameter if there is one present in the request. You could add a default or inferred (from the request's `Accept-Language` header) language in the URL filter, or possibly the better solution, use a middleware to redirect to a URL with a language parameter being added to the path, so that you don't have one and the same URL serving different content.
# Jun 17th 2021, 12:58 admad I was mistaken about not being able to use placeholder as scope :) There was probably some other reason why I didn't/couldn't use them for my i18n routes and misremembered.
# Jun 17th 2021, 12:53 alamnaryab @ndm it is all working fine as long the URL has language param but without language param is says missing param
# Jun 17th 2021, 12:22 ndm Then I misunderstood, I thought your problem was the other way around with 4.x, ie a string _not_ working. Converting the data to a string with `http_build_query()` should be fine, it's what happens internally too.
# Jun 17th 2021, 12:20 alamnaryab @ndm This is working perfectly. You are the hero. :thumbsup:
# Jun 17th 2021, 12:08 slackebot \Cake\Http\ServerRequest $request) { if ( $request->getParam('language') andand !isset($params['language']) ) { $params['language'] = $request->getParam('language'); } return $params; } );```
# Jun 17th 2021, 12:08 slackebot $patterns = ['language' => 'en|ar']; $builder ->connect('/', ['controller' => 'Clients', 'action' => 'index']) ->setPatterns($patterns); $builder ->connect('/:controller', ['action' => 'index']) ->setPatterns($patterns); $builder ->connect('/:controller/:action/*') ->setPatterns($patterns); }); \Cake\Routing\Router::addUrlFilter( function (array $params,
# Jun 17th 2021, 12:08 slackebot 'en|ar']; $routes ->connect('/', ['controller' => 'Users', 'action' => 'login']) ->setPatterns($patterns); $routes ->connect('/:controller', ['action' => 'index']) ->setPatterns($patterns); $routes ->connect('/:controller/:action/*', []) ->setPatterns($patterns); }); }); $routes->scope('/:language', function (RouteBuilder $builder) {
# Jun 17th 2021, 12:08 ndm @alamnaryab Go from here. If you run into errors, don't jump to using other methods until you have a firm grasp on why things are failing and how the problem could be solved, otherwise you'll never get anywhere with it, as you're just jumping from one problem to the next. ```$routes->scope('/:language', function (RouteBuilder $routes) { $routes->prefix('Admin', function (RouteBuilder $routes) { $patterns = ['language' =>
# Jun 17th 2021, 12:06 alamnaryab I used that plugin still I am getting almost same errors I have attached my updated routes.php debugger/routes tab snapshot and error message
# Jun 17th 2021, 11:58 k4t I hope there are no downsides of this
# Jun 17th 2021, 11:58 k4t and it looks like this is the only solution for CakePHP 3.1.14
# Jun 17th 2021, 11:57 k4t for me it is only working when I convert my $data array into string
# Jun 17th 2021, 11:49 ndm It works _despite_ doing that. I though that was what you were trying to do, as you've pointed to the `is_string()` check, and even mentioned using a string instead of an array?
# Jun 17th 2021, 11:46 k4t it is workign for you becuase as $date parameter you passed string not an array
# Jun 17th 2021, 11:40 kevin.pfeifer 1. Your AJAX Function in your 2. screenshot uses POST and not GET as a Method 2. I was wrong, `->contain()` doesn’t work with `->get()` you need to specify it like that ```$this->Vieworg->get( $id, [ 'contain' => [ 'Viewadr' ], ] );```
# Jun 17th 2021, 11:35 alamnaryab I have not checked, let me see now
# Jun 17th 2021, 11:35 dantedantas Hi Kevin, here you can see my ajaxAction. And you have also my Ajax-javascript function. I have 2 issues. The first is that I have no idea how to show/catch the result and show it on the other screen. The other issue is if I may have as a responsa an HTML code. I would like to format the result into a table and send it back. Thank you.
# Jun 17th 2021, 11:35 alamnaryab I have not checked, let me see now
# Jun 17th 2021, 11:34 alamnaryab there is no special routes, only default root and admin prefix
# Jun 17th 2021, 11:33 slackebot function (RouteBuilder $routes) { $routes->fallbacks(DashedRoute::class); }); ```
# Jun 17th 2021, 11:33 alamnaryab if it is difficult for you people to look at my dummy project at github please convert this routes.php for me ```use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->connect('/', ['controller' => 'Articles', 'action' => 'index']); $builder->fallbacks(); }); $routes->prefix('Admin',
# Jun 17th 2021, 11:32 alamnaryab I thank you people @ndm @admad @kevin.pfeifer but what ever I am trying I am getting errors on all or admin prefix, that's why I created dummy project to just convert default routes.php for me that works with language in url.
# Jun 17th 2021, 11:31 slackebot ]); }```
# Jun 17th 2021, 11:31 slackebot ($request) use ($contentType) { $this->assertEquals($contentType, $request->getHeaderLine('Content-Type')); return true; })) ->will($this->returnValue([new Response()])); $http = new Client([ 'host' => 'cakephp.org', 'adapter' => $adapter, ]); $http->post('/projects/add', 'string data', [ 'headers' => [ 'Content-Type' => $contentType ],
# Jun 17th 2021, 11:31 ndm It works for me, a quick test shows that the supplied content type is being used: ```public function testContentTypeWithStringData() { $contentType = 'application/x-www-form-urlencoded; charset=utf-8'; $adapter = $this ->getMockBuilder(Stream::class) ->onlyMethods(['send']) ->getMock(); $adapter ->expects($this->once()) ->method('send') ->with($this->callback(function
# Jun 17th 2021, 11:25 admad I hope this doesn't mean now I am on the hook for sorting out his problem :P
# Jun 17th 2021, 11:24 admad @alamnaryab have you checked out https://github.com/ADmad/cakephp-i18n#i18nroute?