how to style a particular wordpress sidebar widget - wordpress-theming

I have sidebar widgets visible when I open a post in my website. But since the website is bilingual, some of them are supposed to be right aligned while others left aligned.
Is this possible? If I knew which function is generating the content for sidebar HTML, perhaps I could achieve this but I don't know where that function is, if it existed.

umm... kinda got it working.
I made the following changes to the file:
wp-includes\widgets\class-wp-widget-recent-posts.php
It had the following code:
<ul>
<?php while ( $r->have_posts() ) : $r->the_post(); ?>
<li>
<?php get_the_title() ? the_title() : the_ID(); ?>
<?php if ( $show_date ) : ?>
<span class="post-date"><?php echo get_the_date(); ?></span>
<?php endif; ?>
</li>
<?php endwhile; ?>
</ul>
I then changed it to:
<ul>
<?php while ( $r->have_posts() ) : $r->the_post(); ?>
<?php
if (strpos(get_the_title(), 'a') !== false) {
echo '<li class="engwidget">';
}else{
echo '<li class="localwidget">';
}
?>
<?php get_the_title() ? the_title() : the_ID(); ?>
<?php if ( $show_date ) : ?>
<span class="post-date"><?php echo get_the_date(); ?></span>
<?php endif; ?>
</li>
<?php endwhile; ?>
</ul>
I've achieved what I wanted but no idea if this is by any means a right way to do so.

Related

ACF - repeater only showing 1 row on blog page

I have a repeater in my footer.php file and it works for the entire website, but whenever I go to the blog page (index.php), the repeater only displays one row of the entire repeater and I don't know why this is happening.
I've tried putting get_option('page_for_posts') as the repeater field's second parameter, but this didn't work.
This is how it looks on every page except the blog page.
and this is how it looks on the blog page itself:
It only shows one row on the blog page, which is the About Us column.
Here's the code:
<?php if ( have_rows('post_object_repeater') ) : ?>
<?php while( have_rows('post_object_repeater') ) : the_row(); ?>
<?php $header = get_sub_field( 'header' ); ?>
<div class="<?php echo $number_of_columns; ?> col-md-6 col-12 list-column">
<?php
$posts = get_sub_field('post_object_relationship');
if( $posts ): ?>
<ul class="list-unstyled <?php if ( ! $header ): echo 'no-header'; endif; ?>">
<?php if ( $header ): ?>
<li class="header mb-3 font-weight-bold text-uppercase"><?php echo $header; ?></li>
<?php endif; ?>
<?php foreach( $posts as $post): ?>
<?php setup_postdata($post); ?>
<li class="list-item">
<?php the_title(); ?>
</li>
<?php endforeach; ?>
</ul>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
This repeater does have a relationship field inside to pull each of the individual pages or custom post types of the website. Would anyone have an idea why not all of the repeater rows display on a blog page, but work on all other pages?
Have you tried
if(have_rows('post_object_repeater', 'option')
while(have_rows('post_object_repeater', 'option'))
etc.
????

How can I save the items of answers for a questions in an array so that I send them to the database using a controller and a model

The code below is the view page used to display the different kinds of questions and their choices.. Questions like Fill in the blanks and multiple answer consists of more than one answer element.
<?php echo form_open('courseware/saveanswer'); ?>
<?php if(count($test_questions)):?>
<?php $i = 1 ?>
<ol>
<?php foreach($test_questions as $test_question):?>
<li>
<?php if($test_question->question_type == 'Fill-blanks'):?>
<?php $test_question->question_text = str_replace('___',form_input(array('name'=>'answer[]','id'=>'answer_'.$i++,'type'=>'text','size'=>'8')),$test_question->question_text)?>
<?php endif ?>
<?php echo $test_question->question_text ?>
<?php if($test_question->question_type == 'Multi-choice'):?>
<?php $choices = explode("\n", $test_question->question_choices)?>
<?php if(count($choices)):?>
<ul>
<?php foreach($choices as $choice):?>
<li><?php echo form_radio('answer'.$test_question->question_id,$choice) ?> <?php echo $choice ?></li>
<?php endforeach ?>
</ul>
<?php echo form_submit('$save', 'Save') ?>
<?php endif ?>
<?php elseif($test_question->question_type == 'Multi-answer'):?>
<?php $choices = explode("\n", $test_question->question_choices)?>
<?php if(count($choices)):?>
<ul>
<?php foreach($choices as $choice):?>
<li><?php echo form_checkbox('answer',$choice) ?> <?php echo $choice ?></li>
<?php endforeach ?>
</ul>
<?php echo form_submit('$save', 'Save') ?>
<?php endif ?>
<?php elseif($test_question->question_type == 'True/False'):?>
<ul>
<li><?php echo form_radio('answer_'.$test_question->question_id,1) ?> True</li>
<li><?php echo form_radio('answer_'.$test_question->question_id,0) ?> False</li>
</ul>
<?php echo form_submit('$save', 'Save') ?>
<?php else:?>
<?php endif ?>
</li>
<?php endforeach?>
<?php echo form_close(); ?>
below is a screenshot.
The question page looks like this ..
I want an array that has all the answers selected and sends the data to the database
The database consists of the table tbl_response and has the columns
test_reponse_id,
test_reponse_text ,
question_id ,
there's a number of ways to store multiple elements in a single value. You can use an implode() function to save as a string with a separator, as you are already doing with the $test_question->question_choices , which is separated by a '\n'. The cleanest alternative to that is often using json_encode().
either way, as you're presumably going to be comparing the selected answer(s) to something else, i suggest being careful about keeping the format and order consistent.

magento homepage and other pages headers are different

In magento backend, I though no matter homepage or other pages should use the same header file. However, when I change the logo picture for header in backend, only homepage's header picture was changed successfully, other pages are not showing the picture correctly.
Basically what I did is, there are two rows in header, so I put half of the logo on left of the first row and and the other half of the logo on left of the second row, so it seems like a bigger logo.
homepage pic
what it should be
catalog and product view page
in catalog and product view page(bottom part of the logo is not changed)
in secondary catalog page, the upper part of the logo is missing, and bottom part of the logo is not changed.
code path: design/frontend/theme/template/page/html/header.phtml
<div class="header-top">
<img src="media/images/logoUp.jpg" style="width:500px;height:60px;">
<div class="header-top-search-wrapper">
<?php echo $this->getChildHtml('topSearch') ?>
<?php /*TODO: ?><a class="advanced-search-link" href="<?php echo Mage::getURL('') ?>catalogsearch/advanced/"><?php print $this->__('Advanced Search') ?></a><?php */?>
</div>
<?php echo $this->getChildHtml('currency') ?>
<?php echo $this->getChildHtml('store_language') ?>
<?php if ($tmp_html = $this->getChildHtml('i_block_header_top_help')): ?> <?php //Predefined CMS block ?>
<div class="header-top-help-wrapper"><?php echo $tmp_html; ?></div>
<?php endif; ?>
<?php if ($tmp_html = $this->getChildHtml('i_block_header_top_links')): ?> <?php //Predefined CMS block ?>
<div class="header-top-links-wrapper"><?php echo $tmp_html; ?></div>
<?php endif; ?>
</div>
//<?php if ($this->getIsHomePage()):?>
<h1 class="logo"><strong><?php echo $this->getLogoAlt() ?></strong><img src="media/images/logoDown.jpg" style="width:500px;height:60px;"></h1>
//<?php else:?>
// <strong><?php echo $this->getLogoAlt() ?></strong><img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" />
// <?php endif?>
<div class="header-left">
<?php if ($tmp_html = $this->getChildHtml('i_block_header_contact')): ?> <?php //Predefined CMS block ?>
<div class="header-contact-wrapper"><?php echo $tmp_html; ?></div>
<?php endif; ?>
<?php if ($tmp_html = $this->getChildHtml('i_block_header_banner')): ?> <?php //Predefined CMS block ?>
<div class="header-banner-wrapper"><?php echo $tmp_html; ?></div>
<?php endif; ?>
</div> <!-- end: header-left -->
<div class="header-right">
<div class="header-right-secondary">
<p class="welcome-msg"><?php echo $this->getWelcome() ?> <?php echo $this->getAdditionalHtml() ?></p>
<?php echo $this->getChildHtml('topContainer'); ?>
</div>
<div class="user-menu">
<?php // Show custom link, if enabled ?>
<?php if ($themeHelper->getCfg('header/links_custom_link_enabled')): ?>
<?php
$_customLinkPath = $themeHelper->getCfg('header/links_custom_link_path');
$_customLinkAnchor = $themeHelper->getCfg('header/links_custom_link_anchor');
$_customLinkTitle = $themeHelper->getCfg('header/links_custom_link_title');
?>
<ul>
<li class="user-menu-item user-menu-custom">
<?php echo $_customLinkAnchor; ?>
</li>
</ul>
<?php endif?>
<?php echo $this->getChildHtml('topLinks') ?>
<?php // If customer is not logged in: show "Sign Up" link, if enabled ?>
<?php if (Mage::getSingleton('customer/session')->isLoggedIn() == false): ?>
<?php if ($themeHelper->getCfg('header/links_signup_enabled')): ?>
<ul>
<li class="user-menu-item user-menu-signup">
<?php echo $this->__('Sign Up') ?>
</li>
</ul>
<?php endif?>
<?php endif?>
<ul>
<li id="mini-cart" class="user-menu-item user-menu-cart">
<?php echo $this->getChildHtml('cart_sidebar') ?>
</li>
</ul>
</div>
</div> <!-- end: header-right -->
The above code is for header's part.
I'm quite confused, shouldn't all pages use the same header file? why they appear differently?
Thank you
I know the problem now.
The reason why secondary categories can't get the image is because the url is hostname/categoryName/image.jpg
So the url is not valid here anymore. Should have use dynamic url here.

How do I echo the each posts category in wordpress

I am looking to make wordpress print/echo the category name of a post into it's class. I need this to work on the index page inside the main loop. Here is what I mean:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<article class="<?php ** I NEED THIS CODE ** ?>">
<div>
<h2><?php the_title(); ?></h2>
</div>
<?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } else {} ?>
</article>
<?php endwhile; ?>
<?php else : ?>
<h2>Not Found</h2>
<?php endif; ?>
Hopefully you understand my poor description of my issue. Thanks
From http://lorelle.wordpress.com/2007/09/06/using-wordpress-categories-to-style-posts/
Add the following to your theme's functions.php file:
function the_category_unlinked($separator = ' ') {
$categories = (array) get_the_category();
$thelist = '';
foreach($categories as $category) { // concate
$thelist .= $separator . $category->category_nicename;
}
echo $thelist;
}
And the corresponding markup would be:
<article class="<?php the_category_unlinked(' '); ?>">

Nested IF statements in PHTML

Evening,
I tried to edit a simple code in Magento, yet im totaly new to PHTML and im having problems with basics...
I wanted to check the title to set a custom div for the translator to invoke...
This part of the edited PHTML code does not work...
<?php if( $this->getConfig('title') ): ?>
<?php if( $this->getConfig('title') == 'Categories' ?>
<div class="block-title"><strong><?php echo $this->__('Categories') ?></strong></div>
<?php else: ?>
<div class="block-title"><strong><?php echo $this->getConfig('title') ?></strong></div>
<?php endif ?>
<?php endif; ?>
While this original code works:
<?php if( $this->getConfig('title') ): ?>
<div class="block-title"><strong><?php echo $this->getConfig('title') ?></strong></div>
<?php endif; ?>
Can some expert please pinpoint an error so I wont spend whole bunch of time on this?
Thanks in advance.
<?php if( $this->getConfig('title') ): ?>
<?php if( $this->getConfig('title') == 'Categories'): ?>
---^
<div class="block-title"><strong><?php echo $this->__('Categories') ?></strong></div>
<?php else: ?>
<div class="block-title"><strong><?php echo $this->getConfig('title') ?></strong></div>
<?php endif; ?>
---^
<?php endif; ?>