In every module and section of opencart we see a drop down called layout. Which usually contains pages such as category, news, product, default, home, etc...
How can I add a page to this section?
Now, I can add a CONTENT_PAGE via information->insert.
Else, I usually do it by creating a controller and a template, but the page I create is not formally recognized by opencard.
My question is that I should I make open card recognize my page which I create by making a controller and a template manually within the project folder. How?
thanks in advance
Though these questions suit more for OpenCart forum instead of SO, I'll try to answer the first one shortly:
How can I add a page to this section?
Go to administration -> System -> Desgin -> Layouts and click on Insert button. Here You can define a new layout (e.g. You have a custom page with controller that is accessed via URL index.php?route=information/mycustominformation, add it's route information/mycustominformation as a new layout route).
The second problem is completely unclear to me. Can You be more specific and describe in more details?
Related
It has been a few years since I properly worked with WordPress. Now I have a proposal to build a WordPress site where every page has a custom design and only some areas of each page is editable.
The reason for this is to build a bespoke layout on each page which cannot be messed up by someone non-technical editing it in the CMS, except for small areas which they can customise.
e.g. A page contains one div which has some text in it, which can be edited in the WP admin backend, but the rest of the page cannot be edited.
Can this be done? How?
Edit: There needs to be multiple editable areas not just one. I know how to make custom pages/templates.
One method may be to create new page templates. Just create a new file in your main theme folder (or the templates folder if there is one). As long at the top of that file contains the line:
/*
Template Name: <your template name>
*/
You can design the page however you want. The data pulled from the admin section will go wherever you invoke
the_content();
The rest of the page can be hardcoded.
Then on the post edit page, on the right side (usually), you can choose the template with your template name for that page. It may be a good idea to copy the current post.php or single.php into your custom file and work from there.
For restricting access you can look at setting up user levels and keep your content contributors as "Authors" instead of "admins" so they can't change themes or edit settings.
(See https://codex.wordpress.org/User_Levels)
For creating specific unique pages with an area that gets changed you should look into custom Page Templates. You can create a page template by dropping a php file with the right naming structure into your theme hierarchy and it will get picked up by the back-end as template option when you create a page.
(See https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/)
I solved this problem using a plugin called Advanced Custom Fields which does exactly what I required.
I just created a custom page called store in opencart. For that, I created three files in opencart directory. ..\template\common\store.tpl, ..language\english\common\store.php and ..\catalog\controller\common\store.php. After adding these files, http://localhost/store/index.php?route=common/store shows me the home page with headers and footers.
The question is I am not able to add modules into the page as it is not displayed in "Layout" drop down under modules. For example, If I go to extensions and "Account", I am not able to find this page under layout dropdown so that I can add account module.
Can someone please help?
Thanks,
Praveen
for adding page to layout in open cart Go to administration -> System -> Design -> Layouts and click on Insert button. Here You can define a new layout (e.g. You have a custom page with controller that is accessed via URL index.php?route=information/mycustominformation, add it's route information/mycustominformation as a new layout route).
Well, it seems like someone had already answered the same question in :
OpenCart adding page to the layout
Thanks for the answer in that post. This is my first post and I cannot upvote the person yet.
I have no idea why, but if you view this page:
http://www.awesomegti.com/review/product/list/id/50592/#customer-reviews
I feel like the page is trying to utilise either an old template, or multiple templates which is causing the design to get messed up. If you click 'Back to product' the correct template loads fine.
Can anyone guide me to the right place to check this configuration?
The link you have shared utilizes review modules list action, while when we click on "Back to Main Product Info" link, it takes us to catalog module >> product controller >> view action
Both are managed by different layout xml file so both have different layout.
You can do either of two strategies:
Make layout of product review page identical by doing some css work
Call review form and reviews list on product view page under product reviews tab (which is not working correctly right now)
I've made a few modules within my socialengine application however I was wondering how do I add these to the layout editor (root/admin/content) so that I can add widgets to these pages?
You can add the widget in layout editor by adding setting in content.php file.
We recommend adding your widget via the Package Manager which should help take care of the rest. For more information, please see in the Developer SDK section: http://support.socialengine.com/questions/180/Admin-Panel-Manage-Packages-Plugins
You should create a page first from layout editor.DO NOT GIVE any page URL in edit page info section.Leave the page without URL.Most important, add the content widget to your page and save it.
Now, you have a fresh page which does n't have url set.Create a module and either install it or paste it in your application/modules directory. Now, open your database and find the table
"engine4_core_pages" and click on insert and set the name field with your modulename_controller_action.
Comeback to your module and open index controller and put whatever code you want to in index action and just add a simple code to view this in your page,"
$this->_helper->content
// ->setNoRender()
->setEnabled()
You are done.You can set the route from your modules manifest.php inside settings
folder.
Hope this will help.
http://bloffin.blogspot.in/ for more...
I'd like to create a popup window for products instead of directing to another page. I'm looking for advice on the best way to basically make a copy of the product view template to modify for my needs without having to create separate models and blocks. I'm using version 1.3.2.2. Let me know if anything needs clarification.
I realize there are modules that do this, but I'd like to do it myself. Partly for learning.
As a general approach, you could use Javascript to change the product page links to open in a popup (not clear if you mean an AJAX layer or a "real" popup, which many users' browsers will block). Then, modify the layout XML files to add or remove any blocks that you need.
If you want to have both the normal page and a hovered 'layer', then create a new controller and have it inherit from the catalog view layout (IIRC, $this->loadLayout('catalog_product_view') should do it). Then, once again, change layouts for your layout tag to add and remove as necessary.
Joseph's answer wasn't quite clear to me, but this is what I did. I created a new module for the popup with a new controller that extended the ProductController. I made a copy of the viewAction and renamed it to popupAction in my new controller.
Then I made a copy of the catalog.xml and renamed it according to my module. Then deleted everyting not pertaining to the product view page. I made a copy of the view template and set that as the template in my xml layout. Then I made the necessary changes within either the xml layout or the new view template.
I couldn't get $this->loadLayout('catalog_product_view') to work for me.