Single pages and controllers
Permalink
I was having issues figuring out how pass data between the two.
I'm trying to use this simple test that I found in this thread.
https://www.concrete5.org/community/forums/usage/single-page-view-an...
/var/www/html/concrete5/concrete/single_pages/test.php
/var/www/html/concrete5/concrete/controllers/single_page/Test.php
So when I navigate tohttp://mysite.com/test
I expect to see the word red on the screen but I see nothing. What am I doing wrong?
I'm trying to use this simple test that I found in this thread.
https://www.concrete5.org/community/forums/usage/single-page-view-an...
/var/www/html/concrete5/concrete/single_pages/test.php
<?php echo $myColor;
/var/www/html/concrete5/concrete/controllers/single_page/Test.php
<?php namespace Application\Controller\SinglePage; use PageController; class Test extends PageController { public function view(){ $color=red; $this->set('myColor',$color); } }
So when I navigate tohttp://mysite.com/test
I expect to see the word red on the screen but I see nothing. What am I doing wrong?
Alright, I've got this working now. So just a follow up question.
If my single page is not in the root directory say mysite.com/departments/subdepartment/app
and the php file for that site is view.php rather then app.php
does the controller stay in application/controllers/single_page/
or application/controllers/single_page/departments/subdepartment/app
and would the namespace be?
Application\Controller\SinglePage\Department\Subdepartment\App;
If my single page is not in the root directory say mysite.com/departments/subdepartment/app
and the php file for that site is view.php rather then app.php
does the controller stay in application/controllers/single_page/
or application/controllers/single_page/departments/subdepartment/app
and would the namespace be?
Application\Controller\SinglePage\Department\Subdepartment\App;
If you want a single page in any other part, simply add all the route parts with '/':
view: application/single_pages/departments/subdepartment/app/department.php
controller: application/controllers/single_page/departments/subdepartment/app/department.php
I don't think you can use view.php for single pages. But try it. The controller then has to be view.php too.
The namespace will be Application\Controller\SinglePage\Department\Subdepartment\App
view: application/single_pages/departments/subdepartment/app/department.php
controller: application/controllers/single_page/departments/subdepartment/app/department.php
I don't think you can use view.php for single pages. But try it. The controller then has to be view.php too.
The namespace will be Application\Controller\SinglePage\Department\Subdepartment\App
Correct me if I'm wrong but isn't view.php being used in the documentation example?
https://documentation.concrete5.org/developers/working-with-pages/si...
Anyway here is what I have now,
mysite.com/departments/assessor/real_estate/Change_Value_Notices
at directory:
/var/www/html/concrete5/application/single_pages/departments/assessor/real_estate/Change_Value_Notices
I have view.php containting the same code as my above example.
At directory:
/var/www/html/concrete5/application/controllers/single_page/departments/assessor/real_estate/Change_Value_Notices
I have another view.php containing
This however is not working. I'm not seeing the word red on the page like I was in the previous example.
https://documentation.concrete5.org/developers/working-with-pages/si...
Anyway here is what I have now,
mysite.com/departments/assessor/real_estate/Change_Value_Notices
at directory:
/var/www/html/concrete5/application/single_pages/departments/assessor/real_estate/Change_Value_Notices
I have view.php containting the same code as my above example.
At directory:
/var/www/html/concrete5/application/controllers/single_page/departments/assessor/real_estate/Change_Value_Notices
I have another view.php containing
<?php namespace Application\Controller\SinglePage\Departments\Assessor\RealEstate\ChangeValueNotices; use PageController; class view extends PageController { public function view(){ $color=red; $this->set('myColor',$color); } }
This however is not working. I'm not seeing the word red on the page like I was in the previous example.
Ok, you can do it this way:
1. Create a single page in Dashboard->Pages & Themes->Single Pages and Add Single Page departments/assessor/real_estate/change_value_notices
2. Create application/controllers/single_page/departments/assessor/real_estate/change_value_notices.php
3. Create application/single_pages/departments/assessor/real_estate/change_value_notices/view.php
I use single pages in packages, I guess it's different to using them in Application
PS. BTW you forgot to put red in ' ', it must be $color = 'red'; because red is a string.
1. Create a single page in Dashboard->Pages & Themes->Single Pages and Add Single Page departments/assessor/real_estate/change_value_notices
2. Create application/controllers/single_page/departments/assessor/real_estate/change_value_notices.php
<?php namespace Application\Controller\SinglePage\Departments\Assessor\RealEstate; use Concrete\Core\Page\Controller\PageController; class ChangeValueNotices extends PageController { public function view() { $color = 'red'; $this->set('color', $color); } }
3. Create application/single_pages/departments/assessor/real_estate/change_value_notices/view.php
I use single pages in packages, I guess it's different to using them in Application
PS. BTW you forgot to put red in ' ', it must be $color = 'red'; because red is a string.
Thanks for all your help, I've made great progress on this project now. This is really my first time working with php so it's a learning experience on a few fronts.
I'm running into an issue with functions though
I'm able to use view() and submit() just fine but I can't seem to create my own functions such as
If I try to call it such as here.
I get an undefined function error.
I'm running into an issue with functions though
I'm able to use view() and submit() just fine but I can't seem to create my own functions such as
public function BadResults() { print("<p>Your search yielded no result. Please verify your search parameters.<br>"); print("Hints: When stating an address, you HAVE to have a house number. You may NOT state a zip code alone.<br>"); print("We may not have your complete Zip5+4 code. If you entered a long Zip code, try the regular 5 digit Zip instead.<br/>"); print("Also, not all properties received a change of value notice. If in doubt, please contact the Assessor's Office.</p>"); }
If I try to call it such as here.
[if(($zip!="") && ($address=="")) { // print("<p>Your search yielded no result. Please verify your search parameters.<br>"); // print("Hints: When stating an address, you HAVE to have a house number. You may NOT state a zip code alone.<br>"); // print("We may not have your complete Zip5+4 code. If you entered a long Zip code, try the regular 5 digit Zip instead.<br/>"); // print("Also, not all properties received a change of value notice. If in doubt, please contact the Assessor's Office.</p>"); BadResults() }
I get an undefined function error.
controller file: application/controllers/single_page/test.php
view file: application/single_pages/test.php
Note the file names must be the same and low case.
AND the single page must be created first: