Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Изменение иконки в зависимости от времени суток


Recommended Posts

У font awesome есть иконки с зарядом батарейки

<i class="fa fa-battery-empty" aria-hidden="true"></i>
<i class="fa fa-battery-full" aria-hidden="true"></i>

и т.д.  Я хочу использовать их чтобы показывать сколько осталось до конца акции. С утра иконка полной батарейки, в конце дня почти пустая. Сложно будет реализовать подобное? 

Link to post
Share on other sites

Не сложно.

Вот пример и на его основе делайте

<?php

$morning = "Доброе утро!";
$day = "Добрый день!";
$evening = "Добрый вечер!";
$night = "Доброй ночи!";

$minyt = date("i");
$chasov = date("H");

if($chasov >= 04) {$hello = $morning;}
if($chasov >= 10) {$hello = $day;}
if($chasov >= 16) {$hello = $evening;}
if($chasov >= 22 or $chasov < 04) {$hello = $night;}

echo "Время: $chasov:$minyt, $hello";

?> 

 

  • +1 2
Link to post
Share on other sites

<file path="catalog/controller/extension/module/featured.php">
	  <operation>
<search><![CDATA[if ($data['products']) {]]></search> 
<add position="before"><![CDATA[$morning = "<i class="fa fa-battery-full " ></i>";
$day = "<i class="fa fa-battery-three-quarters" ></i>";
$evening = "<i class="fa fa-battery-half " ></i>";
$night = "<i class="fa fa-battery-quarter" ></i>";
$chasov = date("H");
if($chasov >= 04) {$hello = $morning;}
if($chasov >= 10) {$hello = $day;}
if($chasov >= 16) {$hello = $evening;}
if($chasov >= 22 or $chasov < 04) {$hello = $night;}]]></add>
</operation>
	</file>
      <file path="catalog/view/theme/unishop/template/extension/module/featured.tpl">
	  <operation>
<search><![CDATA[<h3 class="heading"><span><?php echo $heading_title; ?></span></h3>]]></search> 
<add position="replace"><![CDATA[<h3 style="text-align:center;">Товар дня <?php echo $hello;?></h3>]]></add>
</operation>
        </file>

Сделал, пишет при выводе Notice: Undefined variable: hello in public_html/system/storage/modification/catalog/view/theme/unishop/template/extension/module/featured.tpl on line 2

Что я упустил? Или может не в то место вставил в контроллер?

 

Link to post
Share on other sites
$hello =

замените на

$data['hello'] = 

 

  • +1 1
Link to post
Share on other sites

на Jquery думаю будет проще:

<script type="text/javascript"><!--
    $(document).ready(function() {
        var date = new Date().getHours();
        if ( date >= 8 && date <= 12) {
            $('.fa-battery-empty').toggleClass('fa-battery-full', true);
        }
    });
    //--></script>

 

  • +1 1
Link to post
Share on other sites

Спасибо, друзья. Оба способа сработали, думаю какой выбрать...^_^ С наступающим Новым Годом!

Link to post
Share on other sites

Решил через скрипт, вот что сделал, вроде работает, не знаю насколько чистый код

$(document).ready(function() {
        var date = new Date().getHours();
        if ( date >= 0 && date <= 10) {
        	document.getElementsByClassName("fa fa-battery-empty")[0].setAttribute("class", "fa fa-battery-full");
        } else if ( date >= 11 && date <= 16){
       	document.getElementsByClassName("fa fa-battery-empty")[0].setAttribute("class", "fa fa-battery-three-quarters");
       } else if( date >= 17 && date <= 19){
        	document.getElementsByClassName("fa fa-battery-empty")[0].setAttribute("class", "fa fa-battery-half");
        } else if( date >= 20&& date <= 23){
        	document.getElementsByClassName("fa fa-battery-empty")[0].setAttribute("class", "fa fa-battery-quarter");
        }
    });

 

Link to post
Share on other sites

Теперь усложним задачу:)

Как сделать то же самое, но с привязкой к наличию(количественно) товара на складе?

Link to post
Share on other sites

понятно что quntity, но откуда его взять, как его вызвать в js, куда вставить скрипт чтобы он например отображался для товаров в категории?

Link to post
Share on other sites
5 минут назад, ARTEMN5 сказал:

понятно что quntity, но откуда его взять, как его вызвать в js, куда вставить скрипт чтобы он например отображался для товаров в категории?

Это вряд ли для песочницы вопрос :)

Link to post
Share on other sites
1 час назад, ARTEMN5 сказал:

понятно что quntity, но откуда его взять, как его вызвать в js, куда вставить скрипт чтобы он например отображался для товаров в категории?

 

в catalog/controller/product/category.php после

$data['products'][] = array(

добавить 

'quantity' => $result['quantity'],

в catalog/view/theme/default/template/product/category.tpl после (в любом нужном вам месте цикла foreach)

<?php foreach ($products as $product) { ?>

добавить, например так

<input class="prdouct-quantity" type="hidden" value="<?php echo $product['quantity']; ?>" data-product-id="<?php echo $product['product_id']; ?>">

все зависит от того, что хотите. В данном случае можно из input выдернуть quantity и product_id.

 

 

 

 

 

  • +1 1
Link to post
Share on other sites
21 минуту назад, ibond сказал:

 

в catalog/controller/product/category.php после


$data['products'][] = array(

добавить 


'quantity' => $result['quantity'],

в catalog/view/theme/default/template/product/category.tpl после (в любом нужном вам месте цикла foreach)


<?php foreach ($products as $product) { ?>

добавить, например так


<input class="prdouct-quantity" type="hidden" value="<?php echo $product['quantity']; ?>" data-product-id="<?php echo $product['product_id']; ?>">

все зависит от того, что хотите. В данном случае можно из input выдернуть quantity и product_id.

 

 

 

 

 

Спасибо, исчерпывающий ответ! Можно закрывать тему.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.