Перейти к содержанию
ARTEMN5

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

Рекомендуемые сообщения

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не сложно.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
<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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
$hello =

замените на

$data['hello'] = 

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, ARTEMN5 сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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.

 

 

 

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.