magento product popup - php

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.

Related

How to make WordPress pages where only certain (multiple) areas of content are editable

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.

How do I customize content in the WP starter theme Roots?

I am fairly new to WP and very new to Roots (http://roots.io/) and I am having trouble creating a custom home page. Here's how far (I think) I understand it:
To create a custom home page I put a file named "front-page.php" in the WP root directory. This file is based off of "page.php".
"front-page.php" loads "content-page.php" from the templates directory.
And that's where it gets a bit fuzzy to me. The function "the_content()" lives in "content-page.php" and I'm assuming it loads the content of the page but it's loading some default stuff (I think it's added by the Roots theme) that I don't want there. I don't think the proper way to customize the home page content is to modify "content-page.php" and remove or change the function "the_content()". I'm assuming there is a better, modular way to do this, possibly creating a custom class that will be loaded when "the_content()" is called but I don't know where and how to do that.
As you're a bit vague with the details I'm going to have to read between the lines a bit. If you need further clarification just ask:
the_content() just outputs the content stored for a particular post, which you would edit in the WP admin. In terms of editing the markup that surrounds the content you have a couple of options. You could edit content-page.php as you require, or create a new partial (such as content-home.php and load that instead.
You can also use filters for modifying content; these are often used to change content that appears in multiple places such as 'read more' links. Check out this introduction to filters for more info.
In closing, you don't want/need to edit the_content()

How do I edit an individual page in WordPress

I don't want to edit the template files - I'd like to make a new template file. I'm looking in the MySQL registry, but all I see is a table for posts, not pages. Someone mentioned the editor earlier, but that doesn't help with creating new templates.
I think I create a php file in my content>theme>my_theme directory, but I'm not certain.
Thanks for any help.
This should help you out:
It shows you which pages map to which template, and how new templates should be created. As an example, if you created an About Us page (singular, static page with the default page template), here's what Wordpress checks for:
Is there a file called page-about-us.php?
No? Is there a page called page-#.php (where # is the pageid)
No? Just render the generic page.php
In your case, if you want to edit a single page (it's a page right, not post?) .. then simply creating a file called page-$slug.php would be sufficient .. WP will use that "template" when rendering that page.
If it's still a bit unclear, check out the source link here (it makes things crystal clear!): http://make.wordpress.org/docs/theme-developer-handbook/part-one-theme-basics/template-hierarchy/
You can create your own template files in your theme directory, or a subfolder. Use a comment on top that has the name of the template.
/*
Template Name: Custom Template
*/
You can assign the template to a page under the "Page Attributes" box in the dashboard.
Of course you need more than just that comment to display anything in your template. You might stay by copying the content of your theme's index.php, then edit from there.

OpenCart adding page to the layout

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?

Socialengine - How to add custom module to layout editor

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...

Categories