[Help] Front-End & Back-End Issue

Hello everyone,

I’m trying to make a website with a front-end and back-end separated like this the link below:

Organize directories for applications with front-end and back-end using WebApplicationEnd behavior

And the problem is when i setup the URL Manager for the front.php and back.php files, it seems to not merge the arrays as expected and the actual URLs point to another direction and believe me i did exactly what was told in the article.

Thank you in advance.

PS: is there a way to change the CDetailView widget (i mean the css) ?

Hi.

Try this in the default action of front e back-end:




CVarDumper::dump(Yii::app()->urlManager->rules, 10, true);

exit;



The resulting array is what you expect?

About CDetailView, take a look at the cssFile property.

I did it and it gives me an empty array() :( :’( It seems to not merging the two arrays in the config/front.php, back.php and main.php files

It works for me. Please, paste your main.php and front.php or back.php code here, maybe i can help you.

main.php :




<?php


// uncomment the following to define a path alias

// Yii::setPathOfAlias('local','path/to/local-folder');


// This is the main Web application configuration. Any writable

// CWebApplication properties can be configured here.

return array(

	'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',

	'name'=>'My Web Application',


	// preloading 'log' component

	'preload'=>array('log'),


	// autoloading model and component classes

	'import'=>array(

		'application.models.*',

		'application.components.*',

	),


	'modules'=>array(

		// uncomment the following to enable the Gii tool

		'gii'=>array(

			'class'=>'system.gii.GiiModule',

			'password'=>false,

			// If removed, Gii defaults to localhost only. Edit carefully to taste.

			'ipFilters'=>array('127.0.0.1','::1'),

		),

	),


	// application components

	'components'=>array(

		'user'=>array(

			// enable cookie-based authentication

			'allowAutoLogin'=>true,

			'class'=>'WebUser',

		),

		/*

		// uncomment the following to enable URLs in path-format

		'urlManager'=>array(

			'urlFormat'=>'path',

            'showScriptName' => false,

			'rules'=>array(

				'<controller:\w+>/<id:\d+>'=>'<controller>/view',

				'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

				'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

				

				'backend'=>'site/index',

	    		'backend/<_c>'=>'<_c>',

	    		'backend/<_c>/<_a>'=>'<_c>/<_a>',

			),

		),

		*/

		/*

		'db'=>array(

			'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',

		),

		*/

		// uncomment the following to use a MySQL database

		'db'=>array(

			'connectionString' => 'mysql:host=localhost;dbname=testdb',

			'emulatePrepare' => true,

			'username' => 'root',

			'password' => '',

			'charset' => 'utf8',

			'tablePrefix'=>'tab_',

		),


		'errorHandler'=>array(

			// use 'site/error' action to display errors

			'errorAction'=>'site/error',

		),

		'log'=>array(

			'class'=>'CLogRouter',

			'routes'=>array(

				array(

					'class'=>'CFileLogRoute',

					'levels'=>'error, warning',

				),

				// uncomment the following to show log messages on web pages

				/*

				array(

					'class'=>'CWebLogRoute',

				),

				*/

			),

		),

	),


	// application-level parameters that can be accessed

	// using Yii::app()->params['paramName']

	'params'=>array(

		// this is used in contact page

		'adminEmail'=>'admin@localhost',

		'uploadPath'=>dirname(__FILE__).'/../../images/avatar/',

		'uploadUrl'=>'../../images/avatar/',

		'noImage'=>'../../images/noimage.jpg',

	),

	

	'behaviors'=>array(

		'runEnd'=>array(

			'class'=>'application.components.WebApplicationEndBehavior',

		),

	),

);



front.php :




<?php


return CMap::mergeArray(

    require(dirname(__FILE__).'/main.php'),

    array(

        // Put front-end settings there

        // (for example, url rules).

    	'components'=>array(

    		'urlManager'=>array(

    			'urlFormat'=>'path',

    			'showScriptName' => false,

    			'rules'=>array(

    				'<controller:\w+>/<id:\d+>'=>'<controller>/view',

    				'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

    				'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

    			),

    		),

    	),

    )

);



back.php :




<?php


return CMap::mergeArray(

    require(dirname(__FILE__).'/main.php'),

    array(

    	'name'=>'Admin Panel',

    	

	'basePath'=>'backend',

        // Put back-end settings there.

        'components'=>array(

	    	'urlManager'=>array(

	    		'urlFormat'=>'path',

	    		'showScriptName'=>true,

	    		'rules'=>array(

	    			'backend'=>'site/index',

	    			'backend/<_c>'=>'<_c>',

	    			'backend/<_c>/<_a>'=>'<_c>/<_a>',

	    		),

	    	),

        ),

    )

);



i tested here, with your config files, and CMap::mergeArray works like expected. :blink:

so there must be another config to do in the main.php file maybe. :(

Is there someone else to help, please.