Routing in cakephp? - cakephp-2.0

I have a problem in my cakephp project.I have used css and js in layout using Html helper eg.
echo $this->Html->css(array('custom/style'));
echo $this->Html->script(array('custom/jquery-1.7.1.min'));
Css and js not working in my project and redirect function like
$this->Html->link('test',array('controller' => 'pages','action' => 'index'))
and its looks like this :- www.example.com/app/webroot/pages/index.
Thanks in advance .

you need to enable mod_rewrite on your server

Related

CakePHP 3 - set different layout from plugin controller

How to set different layout from an Action of a plugin controller. The layout files are in the general Template/Layout directory of the app.
I tried:
$this->viewBuilder()->layout('login_layout');
and it didn't worked.
I am not sure but you can try with below code
$this->ViewBuilder()->layoutPath("");
$this->viewBuilder()->layout('login_layout');

Custom layout for page 404 in cakephp 3.x

I want to change default layout for 404 page in cakephp 3.x .I know I can change it from src/Templates/Error/error400.ctp file but what I want is to load css from my theme from plugins/Theme/webroot/ not from default webroot.
Can anyone help me with this please?
You can use plugin syntax for loading css file from plugin.
echo $this->Html->css('DebugKit.toolbar.css');
Source > Linking to CSS Files

CakePHP's DebugKit assets are not loading

Now I know there is a work around already for this were I can just copy the assets to the projects own webroot. And will probably just do that in a bit however . . .
I do want to know why I keep getting this issue. I was poking around in the AssetDispatcher code and placed some CakeLog::write() statements in there and when I call the page the dispatcher is only called once. Shouldn't it be called for each asset that is being requested? Is there another file that handles the dispatching of assets other than this class I can look at?
I have a fresh install of cakephp 2.5.5 and DebugKit 2.2.4
I followed the instructions in how to load the plugin and indeed the php code is seeing the plugin and tries to load it. It is just not being displayed properly because it can't find the css and js within the plugin.
I did some searching and found somethings stating that the order that the plugins are loaded and the order of the dispatchers withing the bootstrap.php file matters here. I am using a fresh install of cakephp here and that order is already present. DebugKit is loaded and then the dispatchers.
Mostly I could use some help in how to debug the dispatchers since this seems to be where the problem is. Never have had to touch these before. The cakebook gives general information on how to write your own, but I am more interested in the lifecycle here.
Or more like I am making this overly complicated and there is an even easier thing to do here to figure this out. Any information is appreciated.
I've included the relevent code on the initial setup of the DebugKit below in case I missed something simple or overlooked something I thought I had done.
app/Config/bootstrap.php
CakePlugin::load( 'DebugKit' );
Configure::write('Dispatcher.filters', array(
'AssetDispatcher',
'CacheDispatcher'
));
app/Controller/AppController.php
$components = array( 'DebugKit.Toolbar' );
app/View/Layout/default.ctp
bottom of file
<p>
<?php echo $cakeVersion; ?>
</p>
</div>
</div>
</body>
</html>
These are the paths that cake is having trouble resolving
/debug_kit/css/debug_toolbar.css
/debug_kit/js/js_debug_toolbar.js
/debug_kit/image/cake.icon.png
These are the urls that cake is generating itself
I have the same problem before when upgrading to the latest CakePHP. I solve it by adding the following codes in bootstrap.php:
Configure::write('Dispatcher.filters', array(
'AssetDispatcher',
'CacheDispatcher'
));
When upgrading to latest version, you need to also check whether there are changes in index.php and htaccess file.
Here are the steps you follow:
Install CakePHP and check installation.
Download the latest DebugKit 2.2.1, which is compatible with Cake 2.4
Copy the contents to the cake/plugins/DebugKit folder.
Call CakePlugin::load('DebugKit'); in app/Config/bootstrap.php
Include toolbar component by calling public $components = array('DebugKit.Toolbar'); within the class of AppController.php
Set Configure::write('debug', 1); in app/Config/core.php
Remove the 'sql_dump' element from my layout in app/View/Layouts/default.ctp
Copy all contents (folders 'css', 'js', 'img') of app/Plugin/DebugKit/webroot/ in app/webroot/debug_kit/

How to use tinymce with CakePHP?

I am totally new to CakePHP.
I want Tinymce editor in my webpage.
I have followed the link: Using TinyMCE with CakePHP
As per this link I have added JavaScript helper in my AppController file but it shows an error: "Helper class javascriptHelper could not be found."
Also confused that where to place this code:
<?php if(isset($javascript)):
echo $javascript->link('tiny_mce/tiny_mce.js');
endif; ?>
I am using CakePHP 2.9.3 & TinyMCE 4.0.6
can anyone help me by specifying the step to configure TinyMCE.
Did you notice the publish date of that article you linked? :)
You can use this plugin for CakePHP 2.x.

CakePHP 2.0 Plugin URL

Trying to get CakePHP work with subfolders for Controllers, Views, or Models is not really working and from what I've read I need to use "Plugins". Right now I have the following folder structure:
/app/Plugin/Manager/
/Controller
CandyController.php
/Models
/View
/Candy
viewCandy.ctp
ManagerAppController.php
ManagerAppModel.php
When I try and set my url to: http://localhost/Manager/Candy/viewCandy/123. I get the error message: "ManagerController does not exist". Why is CakePHP not picking up that it should look in the Manager plugin folder?
Now that 2.0 has been released the docs are fleshed out a bit more. This is described in the Plugin section of the cookbook.
They suggest putting this in bootstrap.php instead of routes.php:
CakePlugin::loadAll(); // Loads all plugins at once
CakePlugin::load('ContactManager'); //Loads a single plugin
Here is the solution:
Go to /app/Config/routes.php and add the line CakePlugin::load(array('YourPluginName')); after the line CakePlugin::routes();. In my case it was line 40.
Basically CakePHP 2.0 doesn't automatically load plugins. I think that's fine and dandy, but there isn't really any documentation for this.

Resources