ACF field content not retrieving in Wordpress Multisite - repeater

I am using ACF repeater field in Wordpress Multisite template. Fields showing in its admin panel and I can add content using back end. But those data not showing in front end. This is my code to retrieve data.
<?php if(get_field('history')): ?>
<?php while(has_sub_field('history')): ?>
<div class="col-lg-3 history">
<h3><?php the_sub_field('year'); ?></h3>
<div class="description"><p><?php the_sub_field('description'); ?></p></div>
</div>
<?php endwhile; ?>
I have 3 sites.
/xx
/xx
/xx
How can I show data in front end..?

I believe your if statement is incorrect. its should probably ready if(get_sub_field('history')):

Related

How to add registration form to custom Opencart page

I have a custom page in Opencart I'd like to use for a campaign, with the aim of getting people to register on the site.
My custom page is http://www.autohouseexpress.com/index.php?route=custom/helloworld
The question now is, how do I add the registration form to that page?
Do I copy the content from the registration.tpl alone?
Thank you.
Open the template file of the registration page
<OC_ROOT>\catalog\view\theme\<YOUR_THEME_FOLDE>\template\account\register.tpl
Copy the contents of the registration form into your custom template
<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data">
<h2><?php echo $text_your_details; ?></h2>
<div class="content">
<table class="form">
....
Now you need to copy the relevant template data to your custom controller, any thing between <?php echo bla bla bla; ?> is relevant, just open the registration controller located in the file <OC_ROOT>\catalog\controller\account\register.php , find function index() # class ControllerAccountRegister and search for the variables there (for example, you need to copy $this->data['action'] , $this->data['text_your_details'] and so on

Kentico - New fields on existing document types won't render

In Kentico 7, I added 3 new fields to the Page (menu item) document type: small_desc, long_desc and icon_class - this is in addition to the existing fields MenuItemID, MenuItemName and MenuItemTeaserImage.
On a Repeater WebPart I added the following transformation:
<li class="...">
<a class="<%# Eval("icon_class") %>" href="<%# GetDocumentUrl() %>">
<%# Eval("MenuItemName") %>
</a>
<p class="..."><%# Eval("small_desc") %></p>
</li>
A strange thing happens. While viewing the page with the Repeater in Preview mode, everything renders correctly:
<li class="...">
<a class="unique_class" href="/url.htm">
Document Title
</a>
<p class="...">A description I just added to the document.</p>
</li>
But in Live mode, I see:
<li class="...">
<a class="" href="/url.htm">
Document Title
</a>
<p class="..."></p>
</li>
So...
We've run through a plethora of troubleshooting steps...
there are absolutely no exceptions in our Event Log
everything is checked in
server cache cleared
application restarted
browser cache cleared and hard reloaded on multiple browsers and machines
My assumption was Kentico didn't like it when you add new fields to existing (Kentico default) document types. I cloned a completely new document type earlier, added all brand spanking new fields, ran a repeater on a list of new documents, and every single field showed up. I'm certain I could do that - just clone Page (menu item) and recreate all of my pages, but for (I hope) obvious reasons I'm not going to do that. Kentico Support hasn't been able to give any good direction so I turn to you smart folks!
What are the columns set in the repeater's Columns property? Isn't it possible that there are set some of them and you are missing the new ones? If it is blank, all the columns should be loaded (not good for performance though).

Edit header of Joomla website using Gantry framework

My website URL is http://picofdel.org/
I want to make it Section 508 compliant by removing an empty link from the header. The empty link is shown at http://wave.webaim.org/report#/picofdel.org. It is in position header-a. But, no module with this position is listed under Modules Manager.
When I view page source the empty link code is shown in browser as:
<div class="rt-grid-8 rt-alpha">
<div class="rt-block">
</div></div>
The index.php has the following lines which is fetching headers
<div id="rt-header">
<div class="rt-container">
<?php echo $gantry->displayModules('header','standard','standard'); ?>
<div class="clear"></div>
</div></div>
So, how can I edit the code for header and in which file to remove the empty link?

Magento - Using same template on mutiple blocks causing error

I have 3 jQuery tabs and want to fill each tab with products from different categories. The tabs are displayed on a category page. In the category page "custom layout update" I have this:
<block type="catalog/product_list" category_id="38" limit="6" name="tabs_new" template="catalog/product/tab_list.phtml" />
<block type="catalog/product_list" category_id="39" limit="6" name="tabs_topsellers" template="catalog/product/tab_list.phtml" />
<block type="catalog/product_list" category_id="40" limit="6" name="tabs_sale" template="catalog/product/tab_list.phtml" />
tab_list.phtml is just a copy of list.phtml with the toolbars stripped out and some markup changes.
In my category view.phtml file I have the following:
<div id="tabs-1">
<?php echo $this->getChildHtml('tabs_topsellers') ?>
</div>
<div id="tabs-2">
<?php echo $this->getChildHtml('tabs_new') ?>
</div>
<div id="tabs-3">
<?php echo $this->getChildHtml('tabs_sale') ?>
</div>
But when I go to the page, I get this error:
Mage registry key "isList" already exists
Any ideas how I can do this?
For fast fix you can use Mage::unregister('isList'); before echo each block
2 solutions :
before registering a value, check if it exists already with :
if (!Mage::registry('isList')) {
Mage::register('isList');
}
use the third parameter "$graceful" of the Mage::register() function in order to ignore the registering of an existing variable (it doesn't throw an exception and do just nothing)
Awesome I had a similar issue with Ultimo theme.
exception 'Mage_Core_Exception' with message 'Mage registry key "isList" already exists' in /home/devlovethe/public_html/app/Mage.php:595
I was trying to use product_list_featured for multiple categories.
{{block type="ultimo/product_list_featured" template="catalog/product/list_featured_slider.phtml" category_id="97" product_count="12" breakpoints="[0, 1], [320, 2], [480, 3], [768, 4], [960, 5], [1280, 6]" pagination="1" centered="1" hide_button="1" block_name="Our Featured Products"}}
At the end of list_featured_slider.phtml I added
<?php Mage::unregister('isList'); ?>

What is the proper way to add a custom dashboard "box" in the Magento backend without editing default templates?

I am working on creating what I hope one day will be a publicly available Magento extension (this part I mention because it's important to me that I do the "right thing" here). One of the things I would like to do is add a box in the default Magento dashboard, basically a new "box" exactly like "Top 5 Search Terms" except with my own content. I would like my new custom box to be the last box that is displayed (ideally).
The issue that I'm running into is that the template that is responsible for rendering the dashboard calls out specific blocks to be rendered, and these blocks are nested inside of html. In other words, where often there is an area where child blocks will be rendered into a nice reasonable HTML element, in this situation it appears that specific blocks are rendered. Here is the contents of /app/design/adminhtml/default/default/template/dashboard/index.phtml
<div class="dashboard-container">
<?php echo $this->getChildHtml('store_switcher') ?>
<table cellspacing="25" width="100%">
<tr>
<td><?php echo $this->getChildHtml('sales') ?>
<div class="entry-edit">
<div class="entry-edit-head"><h4><?php echo $this->__('Last 5 Orders') ?></h4></div>
<fieldset class="np"><?php echo $this->getChildHtml('lastOrders'); ?></fieldset>
</div>
<div class="entry-edit">
<div class="entry-edit-head"><h4><?php echo $this->__('Last 5 Search Terms') ?></h4></div>
<fieldset class="np"><?php echo $this->getChildHtml('lastSearches'); ?></fieldset>
</div>
<div class="entry-edit">
<div class="entry-edit-head"><h4><?php echo $this->__('Top 5 Search Terms') ?></h4></div>
<fieldset class="np"><?php echo $this->getChildHtml('topSearches'); ?></fieldset>
</div>
</td>
<td>
<div class="entry-edit" style="border:1px solid #ccc;">
<?php echo $this->getChildHtml('diagrams') ?>
<?php if (is_array($this->getChild('diagrams')->getTabsIds())) : ?>
<div id="diagram_tab_content"></div>
<?php endif; ?>
<div style="margin:20px;">
<?php echo $this->getChildHtml('totals') ?>
</div>
<div style="margin:20px;">
<?php echo $this->getChildHtml('grids') ?>
<div id="grid_tab_content"></div>
</div>
</div>
</td>
</tr>
</table>
</div>
If I was doing this in my own store, I believe I could achieve this relatively easily by editing the base Magento dashboard template index.phtml above, add what I need to have my block render, something like:
<div class="entry-edit">
<div class="entry-edit-head">
<h4><?php echo $this->__('Top 5 Search Terms') ?></h4></div>
<fieldset class="np"><?php echo $this->getChildHtml('myDashboardBox'); ?></fieldset>
</div>
</div>
But, this isn't my own store, so this doesn't really seem like an option.
Now, after some thought my options seem to be as follows (note that most of these seem "bad" and not something I'd be super proud to have seen in the public):
0) Something obvious that I'm not seeing that you will tell me is the perfect/right solution
1) I might (maybe?) be able to add my custom block inside of one of these other blocks in this area ("topSearches", "sales", etc) and have my block rendered. This does not seem very "clean"
2) I might be able to have the block rendered somewhere else on the dashboard page, and then move it with javascript to the correct place. This would be fairly easy I'm guessing, but feels very "hacky" for obvious reasons.
Does anybody have any feedback on the way to do this, or IF there is a way? Keep in mind that again I would like to release this module publicly so my goal is to do a good job and do as little "hacking" as possible.
Thank you very much for reading!
There is no really clean option, as you said, the template is coded in a non-extendable way, so there will always be some degree of hackiness. This is my personal preferred way of doing it by using event observers. This way it at least doesn't conflict with other modules.
First, add an observer for the core_block_abstract_prepare_layout_after and core_block_abstract_to_html_after event.
<adminhtml>
<events>
<core_block_abstract_prepare_layout_after>
<observers>
<your_module>
<class>your_module/observer</class>
<method>coreBlockAbstractPrepareLayoutAfter</method>
</your_module>
</observers>
</core_block_abstract_prepare_layout_after>
<core_block_abstract_to_html_after>
<observers>
<your_module>
<class>your_module/observer</class>
<method>coreBlockAbstractToHtmlAfter</method>
</your_module>
</observers>
</core_block_abstract_to_html_after>
</events>
</adminhtml>
These two events are dispatched for every block that is instantiated and rendered in Mage_Core_Block_Abstract. In my experience it's not such an issue using them in the adminhtml interface, but on the frontend observers for these events add too much overhead.
Back to the task at hand, you need to create the observer class.
class Your_Module_Model_Observer
{
public function coreBlockAbstractPrepareLayoutAfter(Varien_Event_Observer $observer)
{
if (Mage::app()->getFrontController()->getAction()->getFullActionName() === 'adminhtml_dashboard_index')
{
$block = $observer->getBlock();
if ($block->getNameInLayout() === 'dashboard')
{
$block->getChild('topSearches')->setUseAsDashboardHook(true);
}
}
}
public function coreBlockAbstractToHtmlAfter(Varien_Event_Observer $observer)
{
if (Mage::app()->getFrontController()->getAction()->getFullActionName() === 'adminhtml_dashboard_index')
{
if ($observer->getBlock()->getUseAsDashboardHook())
{
$html = $observer->getTransport()->getHtml();
$myBlock = $observer->getBlock()->getLayout()
->createBlock('you_module/block')
->setTheValuesAndTemplateYouNeed('HA!');
$html .= $myBlock->toHtml();
$observer->getTransport()->setHtml($html);
}
}
}
}
Your template will need to accomodate for the fact that you are inserting a sibling <div> from inside the sibling, but otherwise you should be fine.
</fieldset></div>
<div class="entry-edit">
<div class="entry-edit-head"><h4>Your Module</h4></div>
<fieldset class="np">Your Content
Leave it at that, because the parent template will be closing the <fieldset> and the <div> for you (ugly as heck, I know).