Город по умолчанию

#
Город по умолчанию
В свойствах интернет-магазина можно выбрать страну по умолчанию.
Подскажите, как можно назначить город по умолчанию?
Надо редактировать XSL-шаблон "МагазинАдресДоставки"? Что там прописать?
Модератор
#
Re: Город по умолчанию
kovaldo,
Вы можете задать город по умолчанию порядком сортировки городов в справочнике городов конкретной страны.
#
Re: Город по умолчанию
HostCMS,
Можно задать порядок, но всё равно вместо города будет "троеточие" или я не прав?
Модератор
#
Re: Город по умолчанию
VAshot,
Где вместо города будет троеточие?
#
Re: Город по умолчанию
В xsl-шаблоне, который строит список городов сделать проверку условия что обрабатываемый город является городом по-умолчанию, и для такого города добавить параметр selected="selected" в тег option
Заказов не беру. Консультирую редко.
#
Re: Город по умолчанию
Kotoff, прошу прощения, только начал вникать в xml,
я правильно понимаю, что должно быть как у стран, но с иным условием?

   <!-- Шаблон заполняет options для местоположений (областей) -->
   <xsl:template match="location">
      <xsl:choose>
         <xsl:when test="@select=1">
            <option value="{@id}" selected="selected" style="font-weight: bold;">
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </option>
         </xsl:when>
         <xsl:otherwise>
            <option value="{@id}">
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </option>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>   

Что должно быть вместо
test="@select=1"
или это в корне не верно?
#
Re: Город по умолчанию
В корне это правильно
Однако, в списке местоположений/городов/районов в hostcms отсутствует понятие "по умолчанию", равно как и способ это умолчание задать.
Поэтому остается только способ по id
id местоположения/города/области можно посмотреть а админке (графа "код" в таблице), и делать проверку вида
test="@id=номер"
для соотв. темплейтов, строящих список местоположений, городов, районов.
Заказов не беру. Консультирую редко.
#
Re: Город по умолчанию
Кстати, можно еще сделать по принципу, о котором упомянул модератор HostCMS - в списке городов расставить правильную сортировку, а затем в шаблоне проверять не
test="@id=номер"
а
test="position()=1"
- тогда первый (в соответствии с порядком сортировки) город будет сразу выбран.

Многоточие в начале списка тоже можно убрать - оно находится в xsl-шаблоне внутри соответствующего тега select перед вызовом темплейта строящего набор тегов option для этого тега select
Заказов не беру. Консультирую редко.
#
Re: Город по умолчанию
Так и делал, но позиционирования не происходит.
   <!-- Шаблон заполняет options для местоположений (областей) -->
   <xsl:template match="location">
      <xsl:choose>
         <xsl:when test="@id=46">
            <option value="{@id}" selected="selected" style="font-weight: bold;">
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </option>
         </xsl:when>
         <xsl:otherwise>
            <option value="{@id}">
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </option>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>


Пробывал еще через JavaScript выбрать нужный элемент, но не знаю как его выполнить по событию загрузки списка.
#
Re: Город по умолчанию
VAshot, есть еще нюанс в ТДС "Интернет-магазин - корзина"

Найдите в коде ТДС следующее место:
/* Отображаем форму ввода адреса */
        // Не выбираем show_location, show_city и show_city_area, т.к. подгружаются через AJAX
        $shop->ShowAddress(to_str($GLOBALS['LA']['xsl_delivery_address']), $shop_id,
            array('show_location' => false, 'show_city' => false, 'show_city_area' => false),
            $external_propertys);
и поменяйте false на true.
Дело в том, что когда в этих параметрах передано false, то подгрузка областей/городов и пр. осуществляется через ajax-запрос, и xsl-шаблон в этом никакого участия не принимает.
Заказов не беру. Консультирую редко.
Авторизация