Jump to content
ARTEMN5

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

Recommended Posts

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

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

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

Share this post


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

Share this post


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

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

 

Share this post


Link to post
Share on other sites
$hello =

замените на

$data['hello'] = 

 

  • +1 1

Share this post


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

Share this post


Link to post
Share on other sites

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

Share this post


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");
        }
    });

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


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

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

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

Share this post


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

Share this post


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.

 

 

 

 

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.