Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Доработка] Фото для специальных предложений


fill
 Поделиться

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

New если только привязать к товарам по дате добавления к примеру 10.01.11 считается товар NEW в течении 14 дней.

Только как это зделать я не знаю.

----Растояние увеличилось на главной в "РЕкомендуемых" там у меня выводится 6 товаров по 3 в ряд, 3 товара и ниже 3 товара. И между ними при добавлении Шильдика 70х70 пикс. увеличилось растояние ровно на 70 пикс. Какой код выложить я даже незнаю вот то куда вставлял:

<div class="middle">
  <table class="list">
  <?php for ($i = 0; $i < sizeof($products); $i = $i + 3) { ?>
    <tr>
    
      <?php for ($j = $i; $j < ($i + 3); $j++) { ?>
      <td style="width: 25%;" height="200"><?php if (isset($products[$j])) { ?>
//начало 
    <?php if ($display_price) { ?>
          <?php if (!$products[$j]['special']) { ?>
          <?php } else { ?>
          <div>
          <div id="header">
          <div class="div15"> 
          </div>
          <?php } ?>
          <?php } ?> 
// конец   
      <a href="<?php echo str_replace('&', '&', $products[$j]['href']); ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a><br />
      <a href="<?php echo str_replace('&', '&', $products[$j]['href']); ?>"><?php echo $products[$j]['name']; ?></a><br />
      <span style="color: #999; font-size: 11px;"><?php echo $products[$j]['model']; ?></span><br /> 
      Цена: <?php if ($display_price) { ?>
         <span style="color: #900; font-size:15px;color:#990000;font-weight: bold;"><?php if (!$products[$j]['special']) { ?> 
   <?php echo $products[$j]['price']; ?></span>       <br /> 
      <?php } else { ?>    
      <span style="color: #900; font-weight: bold; text-decoration: line-through;"><?php echo $products[$j]['price']; ?></span> <span style="color: #F00;"><?php echo $products[$j]['special']; ?></span><br /> 
      <?php } ?>
      <br /><a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" > </a>
      <?php } ?>
      <br /> <br />
      <?php if ($products[$j]['rating']) { ?>
     
      <?php } ?>
      <?php } ?></td>
      <?php } ?>
    </tr>
    <?php } ?>
  </table>
</div>]
Ссылка на комментарий
Поделиться на других сайтах


Хочу реализовать чтобы соответствующие картинки в зависимости от статуса товара были

"latest"

"special"

"out of stock"

как это реализовать в одном цикле? (product.tpl)

И возможность предусмотреть вывода только "OUT OF STOCK" когда "новый" товар со "скидкой" отсутствует в продаже

<?php if (!$special) { ?> // sale        
<?php if (!$latest) { ?> // new        
<?php if (!$product[stock]) { ?> // out of stock 
- - - - - - - - - - - - -          
<?php } else { ?>         
<div>   
 <div id="header">            
<div class="div9">           
</div>         
<?php } ?>                   
</td> 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


  • 1 месяц спустя...
  • 2 недели спустя...

Господа. Может, я что-то и недопонимаю, но, не могли бы Вы, объснить подробно и "нормально" КАК это реализовать???

Один пишет одно, другой другое. Третий говорит что в этом файле таких строк нет, ему тут же пишут что они вообще забиваются в другой... Ппц. )

Как можно советовать то - что Вы сами не делали? Это как на войне; "иди друг, там мин нет". )))))

Обьясните подробно, что куда и какие строки ставить - что бы появился лейбл на товаре, говорящий о скидках и т.п.. Спасибо.

Версия OpenCart - 1.4.9.3

Делал как в этом посте --> пост. Все получилось. Правда, вместо див8 див9 придумал свои названия.

Однако, в мазиле не хочет отображаться. Никто не сталкивался?

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

Для правильного расчета скидки в процентах необходимо привести значения переменных Цены и Спецпредложения обратно к числам, т.к. там они уже хранятся в виде отформатированных стрингов с лишними запятыми и точками. Я это сделал так:

после строки <td width="25%"><?php if (isset($products[$j])) { ?> в соответствующих шаблонах вставил:

<?php if ($products[$j]['special']) {
 $gxrc = array(',','.');
 $gxsp = (int)str_replace($gxrc,'',$products[$j]['special']);
 $gxpr = (int)str_replace($gxrc,'',$products[$j]['price']);
?>
<div id="header"><div class="label"><?php echo '-'.(int)(($gxpr - $gxsp)/$gxpr*100).'%'; ?></div></div>
<?php } ?>

В моем магазине цены указываются всегда, поэтому лишнюю проверку я просто отключил. Названия переменных и классов у меня тоже свои, можно менять. Идея, думаю, понятна...

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


  • 2 недели спустя...

Господа. Может, я что-то и недопонимаю, но, не могли бы Вы, объснить подробно и "нормально" КАК это реализовать???

Один пишет одно, другой другое. Третий говорит что в этом файле таких строк нет, ему тут же пишут что они вообще забиваются в другой... Ппц. )

Как можно советовать то - что Вы сами не делали? Это как на войне; "иди друг, там мин нет". )))))

Обьясните подробно, что куда и какие строки ставить - что бы появился лейбл на товаре, говорящий о скидках и т.п.. Спасибо.

Версия OpenCart - 1.4.9.3

ИЛИ Выложите уже готовый и проверенный работаюший ,чтоб можно было скачать и залить на ftp

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


для версии 1.4.9.4

catalog/view/theme/default/template/product/category.tpl

ищем

<td width="25%"><?php if (isset($products[$j])) { ?>

после вставляем

<div>
          <?php if ($display_price) { ?>
          <?php if (!$products[$j]['special']) { ?>
          <?php } else { ?>
          <div>

          <div class="best-price">
          </div>
          <?php } ?>
          <?php } ?>

CSS

#header .best-price{
            position: absolute;
            margin-top: 5px;
            background: url('../image/best.png') no-repeat;
            width: 70px;
            height: 70px;

post-6857-0-73961700-1301165419_thumb.jpg

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


HOME.TPL не работает .. и я не мог этого сделать ... если кто может помочь ... вот мой код home.tpl

<?php echo $header; ?>
<div class="container1">
<?php echo $column_left; ?>
<?php echo $column_right; ?>
<div id="content">
  <?php if ($welcome) { ?>
  <div class="top">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center">
      <h1><?php echo $heading_title; ?></h1>
    </div>
  </div>  
  <div class="middle">
    <div><?php echo $welcome; ?></div>
  </div>
  <div class="bottom">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
  </div>  
  <?php } ?>
  <?php foreach ($modules as $module) { ?>
  <?php echo ${$module['code']}; ?>
  <?php } ?>
</div></div>
<?php echo $footer; ?>
Ссылка на комментарий
Поделиться на других сайтах


для версии 1.4.9.4

На держи для продуктов:

открываем

catalog/view/theme/default/template/product/product.tpl

ищем

<table style="width: 100%; border-collapse: collapse;">
        <tr>

после вставляем

<?php if (!$special) { ?>
                  <?php } else { ?>
                    <div>
                    <div class="best-price-more">
                    </div>
                  <?php } ?></td>

CSS

#header .best-price-more {
            position: absolute;
            margin-top: 25px;
            margin-left: 5px;
            background: url('../image/best.png') no-repeat;
            width: 70px;
            height: 70px;
}

post-6857-0-32834800-1301168328_thumb.jpg

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


HOME.TPL не работает .. и я не мог этого сделать ... если кто может помочь ... вот мой код home.tpl

<?php echo $header; ?>
<div class="container1">
<?php echo $column_left; ?>
<?php echo $column_right; ?>
<div id="content">
  <?php if ($welcome) { ?>
  <div class="top">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center">
      <h1><?php echo $heading_title; ?></h1>
    </div>
  </div>  
  <div class="middle">
    <div><?php echo $welcome; ?></div>
  </div>
  <div class="bottom">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
  </div>  
  <?php } ?>
  <?php foreach ($modules as $module) { ?>
  <?php echo ${$module['code']}; ?>
  <?php } ?>
</div></div>
<?php echo $footer; ?>

=======================================

исправлен и работает

catalog/view/theme/default/template/module/LATEST_HOME.TPL

ищем

<td width="25%"><?php if (isset($products[$j])) { ?>

после вставляем

<div>
          <?php if ($display_price) { ?>
          <?php if (!$products[$j]['special']) { ?>
          <?php } else { ?>
           <div>
           <div class="best-price">
          </div>
           <?php } ?>
           <?php } ?>

post-6857-0-11687300-1301169189_thumb.jpg

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


Хочу реализовать чтобы соответствующие картинки в зависимости от статуса товара были

"latest"

"special"

"out of stock"

как это реализовать в одном цикле? (product.tpl)

И возможность предусмотреть вывода только "OUT OF STOCK" когда "новый" товар со "скидкой" отсутствует в продаже

<?php if (!$special) { ?> // sale        
<?php if (!$latest) { ?> // new        
<?php if (!$product[stock]) { ?> // out of stock 
- - - - - - - - - - - - -          
<?php } else { ?>         
<div>   
 <div id="header">            
<div class="div9">           
</div>         
<?php } ?>                   
</td> 

<?php if (!$latest) { ?> // new

Как сделать этот модуль, попробуйте ... но что-то не

CATEGORY.TPL

<div>
<?php if (!$latest) { ?> 
<?php } else { ?>         
 <div>   
<div class="latest">           
</div>         
<?php } ?>

CSS

.latest {
    position: absolute;
    margin-top: 45px;
    background: url('../image/best.png') no-repeat;
    width: 70px;
    height: 70px;
}

post-6857-0-87152300-1301173065_thumb.jpg

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


для версии 1.4.9.4.....

А можно ссылку на сайт где всё это уже вертится.

Хотелось бы в живую поглядеть, о чём идет речь.

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


А можно ссылку на сайт где всё это уже вертится.

Хотелось бы в живую поглядеть, о чём идет речь.

Пусть ваше личное сообщение ...... Извините, но мой русский очень плохо

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


Пока только сделал специальной цене ... Я пытался сделать "новый продукт"

"Нет на складе", но я ... не могли бы вы помочь мне, .... у меня версии 1.4.9.4

<?php if (!$latest) { ?> // new

<?php if (!$product[stock]) { ?> // out of stock

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


в пхп я не очень, делал интуитивно, на основе этой темы.

может не оптимально, но главное работает :)

версия магазина ocstore_v0.1.4

дальше описаны изменения для отображения "ПРОДАНО" на картинке товара в Продукте, Категории, Производителях и Последних товарах, при количестве товара = 0.

post-3931-0-99207800-1301841227_thumb.jpg post-3931-0-27272400-1301841317_thumb.jpg post-3931-0-54910100-1301841344_thumb.jpg post-3931-0-57772600-1301841329_thumb.jpg

как выше писал fill

предварительно помещаем картинку sold_out.png с текстом "Продано" в папку catalog/view/theme/default/image

и добавляем в файл catalog\view\theme\default\stylesheet\stylesheet.css код

#header .div91 {
            position: absolute;
            margin-top: 5px;
            background: url('../image/sold_out.png') no-repeat;
            width: 70px;
            height: 70px;
}
post-3931-0-57740900-1301841285_thumb.png

Для отображения в Продукте.

1. открываем catalog\controller\product\product.php

$this->data['quantity'] = $product_info['quantity'];
Я вставил перед

if ($product_info['image']) {
				$image = $product_info['image'];
			} else {
				$image = 'no_image.jpg';
			}	

2.

открываем catalog\view\theme\default\template\product\product.php

и находим строчку

<table style="width: 100%; border-collapse: collapse;">
        <tr>
после нее вставляем

<?php if ($quantity > 0) { ?>
                  <?php } else { ?>
                    <div>
                    <div id="header">
                    <div class="div91">
                    </div>
                  <?php } ?></td>
Работает.

post-3931-0-99207800-1301841227_thumb.jpg

Для отображения в Каталоге.

открываем catalog\model\catalog\product.php

находим строчку

foreach ($product_option_value_query->rows as $product_option_value) {
заменяем

$product_option_value_data[] = array(
					'product_option_value_id' => $product_option_value['product_option_value_id'],
					'name'                    => $product_option_value_description_query->row['name'],
         			'price'                   => $product_option_value['price'],
         			'prefix'                  => $product_option_value['prefix']
				);
на

$product_option_value_data[] = array(
					'product_option_value_id' => $product_option_value['product_option_value_id'],
					'name'                    => $product_option_value_description_query->row['name'],
         			'price'                   => $product_option_value['price'],
         			'prefix'                  => $product_option_value['prefix'],
         			'quantity'              => $product_option_value['quantity']
				);

открываем catalog\controller\product\category.php

находим

$this->data['products'][] = array(
            			'name'    => $result['name'],
						'model'   => $result['model'],
            			'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
            			'price'   => $price,
            			'options' => $options,
						'special' => $special,
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
						'add'	  => $add
          			);
меняем на(фактически, дописываем "'quantity'=> $result['quantity'],")

$this->data['products'][] = array(
            			'name'    => $result['name'],
						'model'   => $result['model'],
            			'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
            			'price'   => $price,
            			'options' => $options,
						'special' => $special,
						'quantity'=> $result['quantity'],
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
						'add'	  => $add
          			);

открываем catalog\view\theme\default\template\product\category.tpl

находим строчку

<td width="25%"><?php if (isset($products[$j])) { ?>
после нее вставляем

<div>
          <?php if ($display_price) { ?>
          <?php if ($products[$j]['quantity']>0) { ?>
          <?php } else { ?>
          <div>
          <div id="header">
          <div class="div91">
          </div>
          <?php } ?>
          <?php } ?> 

Работает.

post-3931-0-54910100-1301841344_thumb.jpg

Для отображения в Производителях.

catalog\model\catalog\product.php должен мы уже поменяли выше для Каталога, добавив строчку "'quantity' => $product_option_value['quantity']" в массив.

открываем catalog\controller\product\manufacturer.php

находим массив

$this->data['products'][] = array(
            			'name'    => $result['name'],
						'model'   => $result['model'],
						'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),            			
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
            			'price'   => $price,
            			'options' => $options,
						'special' => $special,
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&manufacturer_id=' . $this->request->get['manufacturer_id'] . '&product_id=' . $result['product_id']),
						'add'	  => $add
          			);

добавляем поле 'quantity'=> $result['quantity'],

$this->data['products'][] = array(
            			'name'    => $result['name'],
						'model'   => $result['model'],
						'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),            			
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
            			'price'   => $price,
            			'options' => $options,
						'special' => $special,
						'quantity'=> $result['quantity'],
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&manufacturer_id=' . $this->request->get['manufacturer_id'] . '&product_id=' . $result['product_id']),
						'add'	  => $add
          			);

открываем catalog\view\theme\default\template\product\manufacturer.tpl

находим

<td width="25%"><?php if (isset($products[$j])) { ?>
вставляем

<div>
          <?php if ($display_price) { ?>
          <?php if ($products[$j]['quantity']>0) { ?>
          <?php } else { ?>
          <div>
          <div id="header">
          <div class="div91">
          </div>
          <?php } ?>
          <?php } ?> 

Работает.

post-3931-0-27272400-1301841317_thumb.jpg

Для отображения в Последних добавленных.

открываем catalog\controller\module\latest.php

находим массив

$this->data['products'][] = array(
            			'name'    => $result['name'],
						'model'   => $result['model'],
						'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),            			
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
            			'price'   => $price,
            			'options' => $options,
						'special' => $special,
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&manufacturer_id=' . $this->request->get['manufacturer_id'] . '&product_id=' . $result['product_id']),
						'add'	  => $add
          			);

добавляем поле 'quantity'=> $result['quantity'],

$this->data['products'][] = array(
            			'name'    => $result['name'],
						'model'   => $result['model'],
						'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),            			
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
            			'price'   => $price,
            			'options' => $options,
						'special' => $special,
						'quantity'=> $result['quantity'],
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&manufacturer_id=' . $this->request->get['manufacturer_id'] . '&product_id=' . $result['product_id']),
						'add'	  => $add
          			);

открываем catalog\view\theme\default\template\module\latest_home.tpl

находим

<td style="width: 25%;"><?php if (isset($products[$j])) { ?>
добавляем после этой строчки

<div>
          <?php if ($display_price) { ?>
          <?php if ($products[$j]['quantity']>0) { ?>
          <?php } else { ?>
          <div>
          <div id="header">
          <div class="div91">
          </div>
          <?php } ?>
          <?php } ?> 

Работает.

post-3931-0-57772600-1301841329_thumb.jpg

  • +1 5
Ссылка на комментарий
Поделиться на других сайтах


в пхп я не очень, делал интуитивно, на основе этой темы.

может не оптимально, но главное работает :)

версия магазина ocstore_v0.1.4

Спасибо!

Всё замечательно работает, у меня ocStore 0.1.9

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


У кого установлен модуль для отображения категорий на главной, то тут тоже можно немножко поправить:

1. В файле catalog\view\theme\default\template\module\webme_categories_at_homepage.tpl

после строчки

<td style="width: 25%;"><?php if (isset($w_category["products"][$j])) { ?>
вставляем
<div>
          <?php if ($w_category["products"][$j]['quantity']>0) { ?>
          <?php } else { ?>
          <div>
          <div id="header">
          <div class="div91">
          </div>
          <?php } ?>
2.В файле opencart\www\catalog\controller\module\webme_categories_at_homepage.php

меняем

$this->data['w_categories'][$category_id]['products'][] = array(
						'name'    => $result['name'],
						'model'   => $result['model'],
						'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
						'price'   => $price,
						'options' => $options,
						'special' => $special,
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $category_id . '&product_id=' . $result['product_id']),
						'add'	  => $add
					);
на

$this->data['w_categories'][$category_id]['products'][] = array(
						'name'    => $result['name'],
						'model'   => $result['model'],
						'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
						'price'   => $price,
						'options' => $options,
						'quantity'=> $result['quantity'],
						'special' => $special,
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $category_id . '&product_id=' . $result['product_id']),
						'add'	  => $add
					);
т.е. просто дописываем
'quantity'=> $result['quantity'],
Всё.

Работает.

post-6715-0-91099300-1302126890_thumb.jpg

Изменено пользователем aachernishev
Ссылка на комментарий
Поделиться на других сайтах


default\template\module\latest_home.tpl

<div>
          <?php if ($display_price) { ?>
          <?php if (!$products[$j]['special']) { ?>
          <?php } else { ?>
           <div>
           <div class="best-price">
          </div>
           <?php } ?>
           <?php } ?>	
       

	   <div>
           <?php if ($products[$j]['quantity']>0) { ?>
          <?php } else { ?>
          <div>
          <div id="header">
          <div class="out-of-stock">
          </div>
          <?php } ?>

category.php

$this->data['products'][] = array(
            			'name'    => $result['name'],
						'model'   => $result['model'],
            			'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
            			'price'   => $price,
            			'options' => $options,
						'quantity'=> $result['quantity'],
						'special' => $special,
						'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
						'add'	  => $add
          			);
        		}
только что добавили: 'quantity'=> $result['quantity'],

"ЛУЧШИЕ ЦЕНЫ" (BEST PRICE) и "ПРОДАНО" (OUT OF STOCK) не могу работать вместе

....line 28 ( <?php if ($products[$j]['quantity']>0) { ?> )

ЛУЧШИЕ ЦЕНЫ работает самостоятельно, но когда я пытаюсь добавить код ПРОДАНА - не работает

post-6857-0-11568600-1302446910_thumb.jpg

post-6857-0-00848100-1302447280_thumb.jpg

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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