Koderhan (15 Май 2013 - 08:36) писал:
Код:
.product-name a { font-size: 10px;/*размер шрифта*/ }
55 публикаций создано hamer750 (учитываются публикации только с 20-Май 23)
Отправлено от hamer750 в 15 Май 2013 - 09:24 в Страница товара
Отправлено от hamer750 в 15 Май 2013 - 08:29 в Страница товара
Отправлено от hamer750 в 23 Февраль 2013 - 14:02 в Шаблон Пластик
miyako (23 Февраль 2013 - 13:51) писал:
.stikyes , .stikno {position: absolute;margin-top: -37px;}и замените на:
.stikyes , .stikno {position: relative;}
hamer750 (23 Февраль 2013 - 14:00) писал:
Отправлено от hamer750 в 23 Февраль 2013 - 13:18 в Шаблон Пластик
miyako (23 Февраль 2013 - 13:15) писал:
Отправлено от hamer750 в 23 Февраль 2013 - 13:26 в Шаблон Пластик
Отправлено от hamer750 в 23 Февраль 2013 - 12:49 в Шаблон Пластик
Отправлено от hamer750 в 23 Февраль 2013 - 13:37 в Шаблон Пластик
miyako (23 Февраль 2013 - 13:34) писал:
Отправлено от hamer750 в 23 Февраль 2013 - 17:46 в Шаблон Пластик
support 2.0 (23 Февраль 2013 - 17:02) писал:
<a class="blgreen" onclick="$('#goodsListFormId{related_goods.MIN_PRICE_NOW_ID}').submit(); return false;" href="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}?hash={HASH | url_amp}&form%5Bgoods_from%5D={related_goods.GOODS_FROM}&form%5Bgoods_mod_id%5D={related_goods.MIN_PRICE_NOW_ID}" title="Положить «{related_goods.NAME}» в корзину">Купить</a>
<a class="blgreen" onclick="$('#goodsListFormId{related_goods.MIN_PRICE_NOW_ID}').submit(); return false;" href="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}?hash={HASH | url_amp}&form%5Bgoods_from%5D={related_goods.GOODS_FROM}&form%5Bgoods_mod_id%5D={related_goods.MIN_PRICE_NOW_ID}" title="Положить «{related_goods.NAME}» в корзину" {% IF GOODS_MOD_REST_VALUE>0 %}style="display:none;"{% ENDIF %}>Купить</a> <a class="blgreen" onclick="$('#goodsListFormId{related_goods.MIN_PRICE_NOW_ID}').submit(); return false;" href="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}?hash={HASH | url_amp}&form%5Bgoods_from%5D={related_goods.GOODS_FROM}&form%5Bgoods_mod_id%5D={related_goods.MIN_PRICE_NOW_ID}" title="Положить «{related_goods.NAME}» в корзину" {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}>Заказать</a>
{% IF GOODS_MOD_REST_VALUE>0 %} <li><a class="whtblue" onclick="$('.goodsDataForm').submit(); return false;" title="Положить «{GOODS_NAME}» в корзину" href="#">В корзину</a></li> {% ENDIF %}
<li {% IF GOODS_MOD_REST_VALUE>0 %}style="display:none;"{% ENDIF %}><a class="whtblue" onclick="$('.goodsDataForm').submit(); return false;" title="Положить «{GOODS_NAME}» в корзину" href="#">В корзину</a></li> <li {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}><a class="whtblue" onclick="$('.goodsDataForm').submit(); return false;" title="Положить «{GOODS_NAME}» в корзину" href="#">Заказать</a></li>
.stikyes , .stikno {position: relative; }
.stikyes , .stikno { position: relative; color:red; <!-- цвет текста наличия товара --> font: italic 12px verdana; <! шрифт текста наличия товара --> }
Отправлено от hamer750 в 10 Март 2013 - 17:37 в Изменение общей стилистики
Koderhan (10 Март 2013 - 17:23) писал:
Отправлено от hamer750 в 10 Март 2013 - 16:55 в Изменение общей стилистики
hamer750 (10 Март 2013 - 16:40) писал:
Отправлено от hamer750 в 10 Март 2013 - 17:31 в Изменение общей стилистики
Отправлено от hamer750 в 10 Март 2013 - 20:12 в Изменение общей стилистики
Stasya (10 Март 2013 - 19:29) писал:
<img src="http://design.xn--h1aka1au3a.xn--p1ai/e3.png?0418" style="display:inline;"> <img src="http://design.xn--h1aka1au3a.xn--p1ai/e1.png?8875" style="display:inline;"> <img src="http://design.xn--h1aka1au3a.xn--p1ai/e2.png?9187" style="display:inline;"> <img src="http://design.xn--h1aka1au3a.xn--p1ai/e4.png?1051" style="display:inline;">и замените на
<img class="img_icon" src="{ASSETS_IMAGES_PATH}e3.png" style="display:inline;"> <img class="img_icon" src="{ASSETS_IMAGES_PATH}e1.png" style="display:inline;"> <img class="img_icon" src="{ASSETS_IMAGES_PATH}e2.png" style="display:inline;"> <img class="img_icon" src="{ASSETS_IMAGES_PATH}e4.png" style="display:inline;">Затем в файл main.css добавьте блок
.img_icon:hover {border:1px solid red; border-radius:5px;}
Отправлено от hamer750 в 10 Март 2013 - 16:16 в Изменение общей стилистики
Отправлено от hamer750 в 11 Март 2013 - 14:24 в Изменение общей стилистики
Отправлено от hamer750 в 10 Март 2013 - 16:40 в Изменение общей стилистики
Koderhan (10 Март 2013 - 16:31) писал:
<a href="адрес страницы" class="m1"> <img class="m2" src="адрес изображения" style="display:inline;" /> <script> $('.m1').hover( i=''; function(){ i = $('.m2').attr('src'); $('.m2').attr('src')='адрес второй картинки'; }, function() { $('.m2').attr('src')=i; }); </script>
Отправлено от hamer750 в 10 Март 2013 - 20:27 в Изменение общей стилистики
hamer750 (10 Март 2013 - 20:12) писал:
Stasya (10 Март 2013 - 19:29) писал:
<img src="http://design.xn--h1aka1au3a.xn--p1ai/e3.png?0418" style="display:inline;"> <img src="http://design.xn--h1aka1au3a.xn--p1ai/e1.png?8875" style="display:inline;"> <img src="http://design.xn--h1aka1au3a.xn--p1ai/e2.png?9187" style="display:inline;"> <img src="http://design.xn--h1aka1au3a.xn--p1ai/e4.png?1051" style="display:inline;">и замените на
<img class="img_icon" src="{ASSETS_IMAGES_PATH}e3.png" style="display:inline;"> <img class="img_icon" src="{ASSETS_IMAGES_PATH}e1.png" style="display:inline;"> <img class="img_icon" src="{ASSETS_IMAGES_PATH}e2.png" style="display:inline;"> <img class="img_icon" src="{ASSETS_IMAGES_PATH}e4.png" style="display:inline;">Затем в файл main.css добавьте блок
.img_icon:hover {border:1px solid red; border-radius:5px;}
Отправлено от hamer750 в 14 Май 2013 - 15:43 в Каталог товаров
Отправлено от hamer750 в 15 Май 2013 - 07:28 в Каталог товаров
Сake (15 Май 2013 - 01:34) писал:
Отправлено от hamer750 в 15 Май 2013 - 09:33 в Каталог товаров
Koderhan (15 Май 2013 - 08:28) писал:
<!-- Блок выбора модификаций для текущей товарной позиции --> <div class="span12"> <div class="goodsDataMainModificationsBlock product-options" {% IF GOODS_NO_CHOISE_IN_PROPERTIES_FOR_MODIFICATIONS %}style="display:none;"{% ENDIF %}> {% FOR goods_modifications_properties %} <div class="goodsDataMainModificationsBlockProperty"> <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь --> {% FOR values %} <!-- Если это первый элемент в списке --> {% IF goods_modifications_properties.values.first %} <strong>{goods_modifications_properties.NAME}:</strong><br /> <select name="form[properties][]"> {% ENDIF %} <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option> <!-- Если это последний элемент в списке --> {% IF goods_modifications_properties.values.last %} </select> {% ENDIF %} {% ENDFOR %} </div> {goods_modifications_properties.index | is_divided("2","</tr><tr>","")} {% ENDFOR %} <!-- Данные по модификациям для текущей товарной позиции --> {% FOR goods_modifications %} <div class="goodsDataMainModificationsList" rel="{goods_modifications.PROPERTIES_SLUG}"> <input type="hidden" name="id" value="{goods_modifications.ID}" /> <input type="hidden" name="art_number" value="{goods_modifications.ART_NUMBER}" /> <input type="hidden" name="price_now" value="{goods_modifications.PRICE_NOW}" /> <div class="price_now_formated" style="display:none">{goods_modifications.PRICE_NOW | money_format}</div> <input type="hidden" name="price_old" value="{% IF goods_modifications.PRICE_NOW_WITHOUT_DISCOUNT>goods_modifications.PRICE_NOW %}{goods_modifications.PRICE_NOW_WITHOUT_DISCOUNT}{% ELSE %}{goods_modifications.PRICE_OLD}{% ENDIF %}" /> <div class="price_old_formated" style="display:none">{% IF goods_modifications.PRICE_NOW_WITHOUT_DISCOUNT>goods_modifications.PRICE_NOW %}{goods_modifications.PRICE_NOW_WITHOUT_DISCOUNT | money_format}{% ELSE %}{goods_modifications.PRICE_OLD | money_format}{% ENDIF %}</div> <input type="hidden" name="rest_value" value="{goods_modifications.REST_VALUE}" /> <input type="hidden" name="measure_id" value="{goods_modifications.MEASURE_ID}" /> <input type="hidden" name="measure_name" value="{goods_modifications.MEASURE_NAME}" /> <input type="hidden" name="measure_desc" value="{goods_modifications.MEASURE_DESC}" /> <input type="hidden" name="measure_precision" value="{goods_modifications.MEASURE_PRECISION}" /> <input type="hidden" name="is_has_in_compare_list" value="{goods_modifications.IS_HAS_IN_COMPARE_LIST}" /> <div class="description" style="display:none">{goods_modifications.DESCRIPTION}</div> </div> {% ENDFOR %} </div> </div> <!-- /Блок выбора модификаций для текущей товарной позиции -->
Отправлено от hamer750 в 14 Май 2013 - 18:32 в Каталог товаров
Koderhan (14 Май 2013 - 16:31) писал:
// Функция собирает свойства в строку, для определения модификации товара function getSlugFromGoodsDataFormModificationsProperties(obj) { var properties = new Array(); var reset_arr = new Array(); $(obj).each(function(i){ if($(this).is(':checked')){ properties[i] = parseInt($(this).val());} }); for(var i in properties) { if(properties[i]) { reset_arr.push(properties[i]); } } return reset_arr.sort(function(a,B){return a - b}).join('_'); } var // Запоминаем поля выбора свойств, для ускорения работы со значениями свойств goodsDataProperties = $('div.goodsDataMainModificationsBlock select[name="form[properties][]"]'), // Запоминаем блоки с информацией по модификациям, для ускорения работы goodsDataModifications = $('div.goodsDataMainModificationsList'); // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует. function updateVisibility (y) { // Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств goodsDataProperties.each(function(j){ // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств if( j != y ) { // Проходим по всем значениям текущего свойства модификации товара $(this).find('option').each(function(){ // Записываем временный массив свойств, которые будем использовать для проверки существования модификации var checkProperties = new Array(); $(goodsDataProperties).each(function(i){ checkProperties[i] = parseInt($(this).val()); }); // Пытаемся найти модификацию соответствующую выбранным значениям свойств checkProperties[j] = parseInt($(this).attr('value')); // Собираем хэш определяющий модификацию по свойствам slug = checkProperties.sort(function(a,B){return a - b}).join('_'); // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет. if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) { $(this).attr('disabled', true); // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный. } else { $(this).attr('disabled', false); } }); } }); } // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность. // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать updateVisibility (0); // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций updateVisibility (1); // Изменение цены товара при изменении у товара свойства для модификации goodsDataProperties.each(function(y){ $(this).change(function(){ var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties), modificationBlock = goodsDataModifications.filter('[rel="'+slug+'"]'), modificationId = parseInt(modificationBlock.find('[name="id"]').val()), modificationArtNumber = modificationBlock.find('[name="art_number"]').val(), modificationPriceNow = parseFloat(modificationBlock.find('[name="price_now"]').val()), modificationPriceNowFormated = modificationBlock.find('.price_now_formated').html(), modificationPriceOld = parseFloat(modificationBlock.find('[name="price_old"]').val()), modificationPriceOldFormated = modificationBlock.find('.price_old_formated').html(), modificationRestValue = parseFloat(modificationBlock.find('[name="rest_value"]').val()), modificationDescription = modificationBlock.find('.description').html(), modificationMeasureId = parseInt(modificationBlock.find('[name="measure_id"]').val()), modificationMeasureName = modificationBlock.find('[name="measure_name"]').val(), modificationMeasureDesc = modificationBlock.find('[name="measure_desc"]').val(), modificationMeasurePrecision = modificationBlock.find('[name="measure_precision"]').val(), modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(), goodsModificationId = $('.goodsDataMainModificationId'), goodsPriceNow = $('.goodsDataMainModificationPriceNow'), goodsPriceOld = $('.goodsDataMainModificationPriceOld'), goodsAvailable = $('.goodsDataMainModificationAvailable'), goodsAvailableTrue = goodsAvailable.find('.available-true'), goodsAvailableFalse = goodsAvailable.find('.available-false'), goodsArtNumberBlock = $('.goodsDataMainModificationArtNumber'), goodsArtNumber = goodsArtNumberBlock.find('span'), goodsCompareAddButton = $('.goodsDataCompareButton.add'), goodsCompareDeleteButton = $('.goodsDataCompareButton.delete'), goodsModDescriptionBlock = $('.goodsDataMainModificationsDescriptionBlock'); // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация if(modificationBlock.length) { // Цена товара goodsPriceNow.html(modificationPriceNowFormated); // Старая цена товара if(modificationPriceOld>modificationPriceNow) { goodsPriceOld.html(modificationPriceOldFormated); } else { goodsPriceOld.html(''); } // Есть ли товар есть в наличии if(modificationRestValue>0) { goodsAvailableTrue.show(); goodsAvailableFalse.hide(); // Если товара нет в наличии } else { goodsAvailableTrue.hide(); goodsAvailableFalse.show(); } // Если товар есть в списке сравнения if(modificationIsHasInCompareList>0) { goodsCompareAddButton.hide(); goodsCompareDeleteButton.show(); // Если товара нет в списке сравнения } else { goodsCompareAddButton.show(); goodsCompareDeleteButton.hide(); } // Покажем артикул модификации товара, если он указан if(modificationArtNumber.length>0) { goodsArtNumberBlock.show(); goodsArtNumber.html(modificationArtNumber); // Скроем артикул модификации товара, если он не указан } else { goodsArtNumberBlock.hide(); goodsArtNumber.html(''); } // Описание модификации товара. Покажем если оно есть, спрячем если его у модификации нет if(modificationDescription.length > 0) { goodsModDescriptionBlock.show().html('<div>' + modificationDescription + '</div>'); } else { goodsModDescriptionBlock.hide().html(); } // Идентификатор товарной модификации goodsModificationId.val(modificationId); } else { // Отправим запись об ошибке на сервер sendError('no modification by slug '+slug); alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.'); } // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. updateVisibility(y); }); });Заменить:
// Функция собирает свойства в строку, для определения модификации товара function getSlugFromGoodsDataFormModificationsProperties(obj) { var properties = new Array(); $(obj).each(function(i){ properties[i] = parseInt($(this).val()); }); return properties.sort(function(a,B){return a - b}).join('_'); } var // Запоминаем поля выбора свойств, для ускорения работы со значениями свойств goodsDataProperties = $('div.goodsDataMainModificationsBlock select[name="form[properties][]"]'), // Запоминаем блоки с информацией по модификациям, для ускорения работы goodsDataModifications = $('div.goodsDataMainModificationsList'); // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует. function updateVisibility (y) { // Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств goodsDataProperties.each(function(j){ // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств if( j != y ) { // Проходим по всем значениям текущего свойства модификации товара $(this).find('option').each(function(){ // Записываем временный массив свойств, которые будем использовать для проверки существования модификации var checkProperties = new Array(); $(goodsDataProperties).each(function(i){ checkProperties[i] = parseInt($(this).val()); }); // Пытаемся найти модификацию соответствующую выбранным значениям свойств checkProperties[j] = parseInt($(this).attr('value')); // Собираем хэш определяющий модификацию по свойствам slug = checkProperties.sort(function(a,B){return a - b}).join('_'); // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет. if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) { $(this).attr('disabled', true); // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный. } else { $(this).attr('disabled', false); } }); } }); } // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность. // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать updateVisibility (0); // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций updateVisibility (1); // Изменение цены товара при изменении у товара свойства для модификации goodsDataProperties.each(function(y){ $(this).change(function(){ var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties), modificationBlock = goodsDataModifications.filter('[rel="'+slug+'"]'), modificationId = parseInt(modificationBlock.find('[name="id"]').val()), modificationArtNumber = modificationBlock.find('[name="art_number"]').val(), modificationPriceNow = parseFloat(modificationBlock.find('[name="price_now"]').val()), modificationPriceNowFormated = modificationBlock.find('.price_now_formated').html(), modificationPriceOld = parseFloat(modificationBlock.find('[name="price_old"]').val()), modificationPriceOldFormated = modificationBlock.find('.price_old_formated').html(), modificationRestValue = parseFloat(modificationBlock.find('[name="rest_value"]').val()), modificationDescription = modificationBlock.find('.description').html(), modificationMeasureId = parseInt(modificationBlock.find('[name="measure_id"]').val()), modificationMeasureName = modificationBlock.find('[name="measure_name"]').val(), modificationMeasureDesc = modificationBlock.find('[name="measure_desc"]').val(), modificationMeasurePrecision = modificationBlock.find('[name="measure_precision"]').val(), modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(), goodsModificationId = $('.goodsDataMainModificationId'), goodsPriceNow = $('.goodsDataMainModificationPriceNow'), goodsPriceOld = $('.goodsDataMainModificationPriceOld'), goodsAvailable = $('.goodsDataMainModificationAvailable'), goodsAvailableTrue = goodsAvailable.find('.available-true'), goodsAvailableFalse = goodsAvailable.find('.available-false'), goodsArtNumberBlock = $('.goodsDataMainModificationArtNumber'), goodsArtNumber = goodsArtNumberBlock.find('span'), goodsCompareAddButton = $('.goodsDataCompareButton.add'), goodsCompareDeleteButton = $('.goodsDataCompareButton.delete'), goodsModDescriptionBlock = $('.goodsDataMainModificationsDescriptionBlock'); // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация if(modificationBlock.length) { // Цена товара goodsPriceNow.html(modificationPriceNowFormated); // Старая цена товара if(modificationPriceOld>modificationPriceNow) { goodsPriceOld.html(modificationPriceOldFormated); } else { goodsPriceOld.html(''); } // Есть ли товар есть в наличии if(modificationRestValue>0) { goodsAvailableTrue.show(); goodsAvailableFalse.hide(); // Если товара нет в наличии } else { goodsAvailableTrue.hide(); goodsAvailableFalse.show(); } // Если товар есть в списке сравнения if(modificationIsHasInCompareList>0) { goodsCompareAddButton.hide(); goodsCompareDeleteButton.show(); // Если товара нет в списке сравнения } else { goodsCompareAddButton.show(); goodsCompareDeleteButton.hide(); } // Покажем артикул модификации товара, если он указан if(modificationArtNumber.length>0) { goodsArtNumberBlock.show(); goodsArtNumber.html(modificationArtNumber); // Скроем артикул модификации товара, если он не указан } else { goodsArtNumberBlock.hide(); goodsArtNumber.html(''); } // Описание модификации товара. Покажем если оно есть, спрячем если его у модификации нет if(modificationDescription.length > 0) { goodsModDescriptionBlock.show().html('<div>' + modificationDescription + '</div>'); } else { goodsModDescriptionBlock.hide().html(); } // Идентификатор товарной модификации goodsModificationId.val(modificationId); } else { // Отправим запись об ошибке на сервер sendError('no modification by slug '+slug); alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.'); } // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. updateVisibility(y); }); });
Отправлено от hamer750 в 15 Май 2013 - 09:50 в Каталог товаров
Отправлено от hamer750 в 15 Май 2013 - 19:33 в Каталог товаров
miyako (15 Май 2013 - 14:44) писал:
<!-- Если это первый элемент в списке --> {% IF goods_modifications_properties.values.first %} <strong>{goods_modifications_properties.NAME}:</strong><br /> {% ENDIF %} <input type="radio" name="form[properties][]" value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}checked="checked"{% ENDIF %} /> {goods_modifications_properties.values.NAME} <br />
Отправлено от hamer750 в 20 Май 2013 - 17:38 в Каталог товаров
Отправлено от hamer750 в 21 Май 2013 - 06:39 в Каталог товаров
Сake (21 Май 2013 - 05:04) писал:
goodsDataProperties = $('.goodsDataMainModificationsBlock .goodsDataMainModificationsRadio'),
goodsDataProperties = $('.goodsDataMainModificationsBlock .goodsDataMainModificationsBlockProperty'),
Отправлено от hamer750 в 06 Май 2013 - 08:51 в Изменение общей стилистики
Система для сообществ IP.Board
Лицензия зарегистрирована на: StoreLand