Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - admin

Страницы: 1 2 [3] 4 5 ... 164
31
Спасибо, исправил!!! У меня еще проблема есть!!! В карточке товара при нажатии на изображение, открывается в всплывающем окне fancybox и нет стрелки для перехода к следующему изображению и приходится каждое изображение открывать отдельно, что очень неудобно. Подскажите пожалуйста, как исправить это неудобство.

для того, чтобы фотографии объединились в галерею при работе с fancybox, используйте параметр rel и задайте ему одинаковые значения для всех ссылок на большие картинки, которые должны быть в одной галерее (то есть листаться вперед/назад при всплывающем окне)

Смотрите примеры в инете, например тут http://ruseller.com/lessons.php?rub=32&id=238

И еще, скажите пожалуйста в макросе %system includeQuickEditJs()%,   %system includeEditInPlaceJs()% где прописываются все эти файлы, никак не могу найти?
в этих маркосах и прописываются, сами макросы лежат соответственно в файле /classes/modules/system.php

32
А мне alt нужен для js, т.к. фильтр работает по совпадению названий, поэтому его и брала ><
вы можете использовать вместо alt какоето название, сгенерированное на основе id, например alt{@lent_id} (опять же чтобы upage не использовать лишний раз)

Ууу... сейчас буду пробовать этот способ.
Только вопрос, можно вместо даты публикации ориентироваться на дату завершения скидки?
А то например, не все новости должны попадать в прощедшие события...
вы можете сравнивать с любым полем типа дата, тут основной момент был в том, что идет сравнения текущей даты и даты из какого-то поля (просто дату из поля вытягивайте через extProps при вызове макроса со списком новостей)

33

Хм... второй вариант мне более понятен =)
- Либо делайте проверку на то, есть ли значение по адресу
/result/parents/page[position() = 2]/@id


А как должен выглядит синтаксис проверки?

выглядеть как-то так
<xsl:if test="/result/parents/page[position() = 2]/@id">...</xsl:if>

но у вас же не на всех страницах подойдет такое выражение, для каких-то страниц вам потребуются выражения типа /result/parents/page[position() = 1]/@id или /result/parents/page[position() = 3]/@id

Так что, первый вариант правильнее (если я правильно понимаю вашу задачу выводить меню относительно родительской страницы отсчитывая от текущей страницы)

34
А можно ссылку на usel или сам xml, который возвращается при запросе  <xsl:apply-templates select="document(concat('usel://block-content/142,143,147/', page/@id))/udata" mode="block-content_block"/>?

35
<xsl:apply-templates select="document(concat('udata://content/menu/notemplate/0/', /result/parents/page[position() = 2]/@id))" mode="menu-items" />

при этом id страницы внутри которой мы будем искать страницы для меню мы получаем через запрос
/result/parents/page[position() = 2]/@id

и если на этой странице http://otto.aveas.ru/clinic/scientific-advisory-branch/polyclinic/ у нас есть значение по такому адресу, то на странице http://otto.aveas.ru/about/official-info/ такого значения, и в макрос передается 0, а это озачает что мы хотим получить меню от корня сайта (что вы и получаете)

- Либо делайте проверку на то, есть ли значение по адресу
/result/parents/page[position() = 2]/@id

- Либо вызывайте меню родительского раздела передавая атрибут родителя текущей страницы
 
<xsl:apply-templates select="document(concat('udata://content/menu/notemplate/0/', /result/page/@parentId))" mode="menu-items" />

36
я понимаю что надоел вам. но все таки помогите скажите папку где она?

Дело не в том, что вы надоели или нет, а в том, что по предоставленной вами информации сложно дать конкретный совет.

Резюмирую и частично повторяя слова aghigay:
- Скорее всего у вас на этой странице выводятся список разделов, а затем выводится список с товарами и у первого списка элементов больше чем вмещается на одну страницу (про пагинацию можно почитать тут )

Чтобы найти шаблон, в котором это выводится надо понимать где искать, иметь доступ к файлам, поэтому вам порекомендовали искать аккуратно или изучить вопрос плотнее, чтобы ничего не сломать.
Но ситуация усложняется тем, что у вас достаточно старая версия UMI и судя по всему вы используете tpl шаблонизатор... все это добавляет сложностей в эту ситуацию. По крайней мере советовать тут очень сложно.

Единственное чтобы я порекомендовал, как частичное решение вашего вопроса:
увеличить кол-во элементов на странице, в настройках модуля каталог (приводил ссылку выше)

37
Судя по всему, это у вас блоки разной высоты. Задайте одинаковую высоту и не будет прыжков.

Поддерживаю коллегу.

краткая карточка "ПЛАТФОРМА ДЛЯ АТТРАКЦИОНОВ ВИРУАЛЬНОЙ РЕАЛЬНОСТИ (С РУЧКАМИ)" на странцие http://vrlf.ru/shop/attractions/?p=1 расползает в высоту из-за длинного названия (попробуйте изенить название товара на "Платформа (с ручками)" и нижняя карточка "МОЩНЫЙ ПК + OCULUS RIFT CV1", которая "спотыкалась" об вытянувшийся блок, встанет на место.

Решения обычно лежат в плоскости:
1. отвести ограниченный по высоте блок под название (или любые другие элементы краткой карточки, которые могут растягивать карточку)
2. подключить один из js скриптов, который выравнивает высоту карточек в одной строчке по самой вытянутой (не всегда красиво смотрится)
3. После 3 товара (если  вас всегда 3 товара в строчке) делать css clear:both. Удобнее делать через сс псевдо свойство  ::after{clear both; ....} к третьему элементу

38
Цитировать
Но тем же методом, который я использовала для lastlents, у меня внутри новости не получается вывести название ленты, в которой она находится, а получилось вывести название и alt-name, корневой ленты новостей...

Так как в шаблоне, который выводит новость, вы получаете alt-name запросом
<!-- проверяла какой alt-name вывожу -->
<xsl:value-of select="document(concat('upage://',$document-page-id))/udata/page/@alt-name" />
вы всегда получаете alt-name текущей страницы, так как в переменной $document-page-id содержится id текущей страницы

Вам подойдет такой вызов
<!-- проверяла какой alt-name вывожу -->
<xsl:value-of select="document(concat('upage://',@lent_id))/udata/page/@alt-name" />

А вообще, не понятно, почему для фильтрации через js вы выбрали именно alt-name атрибут и для него запускаете так много upage запросов. Можно ли использовать для этих целей id ленты новостей?

То есть, и в списке рубрик и в новостях выводить id ленты новостей
Например, в самой новости вместо alt-name делать такой запрос
<!-- проверяла какой alt-name вывожу -->
<xsl:value-of select="@lent_id" />


По поводу второго вопроса:
Есть несколько способов.
1. Если в выборке новостей (результат макроса /news/lastlist/) у вас есть все новости, проверяйте, что у них в атрибуте @publish_time и если это значение больше текущего времени в UNIX_TIMESTAMP формате то читаем их будущими новостями и наоборот.
Для этого вам потребуется текущее время в формате UNIX_TIMESTAMP . Его можно получить так:
<xsl:variable name="curr_date" select="document('udata://system/convertDate/now/U'))/udata" />

2. Делаем запрос в списку новостей, указывая временной промежуток используя 5-ый параметр в макросе /news/lastlist/ . Например, так вызываем только будущие новости
udata://news/lastlist/(new)/notemplate/10/0/(+ +1m)

3. Или пишем кастом)

39
Вы не смогли достучаться до /result/page/@id='5106' , потому что вы работали в шаблоне
<xsl:template match="udata[@method = 'getObjectsList'][total]">
   ... //вот здесь, чтобы в самом начале страницы выводился баннер
</xsl:template>
Этот шаблон обрабатывал xml, который вернул вызов макроса udata://catalog/getObjectsList
И в этом xml отсутствуют теги
<result module="catalog" method="category" pageId="5106">
   <parents>...</parents>
   <page id='5106' parentId='36' type-id='77'>
       ...
   </page>
</result>

Поэтому, работая в шаблонах, которые обрабатывают xml появившиеся в результате вызовов каких-то макросов ("udata://...") для доступа к данным из изначального xml (с информацией о текущей страницы <result>...</result>) используют глобальные переменные.
Например $document-page-id (определяется в файле ~/xslt/default.xsl). В этом же файле можно определить глобальную переменную со всеми родителями
<xsl:variable name="parents" select="result/parents" />
В итоге, ваш шаблон будет выглядеть так (без вызова variable $document-page-parentId, так как при этом вы делаете лишний upage запрос :
<xsl:if test="$document-page-id = '5106' or $parents/page/@id = '5106'">
Здесь баннер // если раздел каталога равен "Диктофоны" или родитель равен раздел "Диктофоны"
</xsl:if>

40
Эта строчка подключает обработчик, который позволяет обработать связи заказа с другими объектами в базе данных.

Например, при создании заказа у него есть список товаров в корзине. По сути каждый товар, добавленный в корзину, это созданный элемент справочника "Наименования в заказе". Если заказ удален, то товары данного заказа, тоже смело можно удалять, чтобы они не засоряли базу.

Вот при таких очистках что-то и чихает. В самой функции происходит 3 действия:
- удаление товаров в данном заказе
- продлить срок жизни покупателя
- продлить срок жизни покупателя в один клик

Видимо, в последней части что-то и сбоит, так как у вас были какие-то работы с заказом в один клик (если я ничего не путаю)

41
какие именно данные приходят только зареганному пользователю и запрашивает ли система эти данные у покупателя при оформлении под гостем?

А также совпадает ли название полей с этими данными в шаблонах данных "Пользователь" и "Незарегистрированный покупатель" (ищите его внутри пункта "Справочники", вкладки "Типы данных")

42
в письме у вас есть доступ к объекту заказа (через uobject), в заказе у вас есть доступ к customer_id/ Через uobject получаем его данные и в нем получаем нужные поля работая с результатом uobjext как с xml.

P.S. Если это не понятно, пишите, проясню или посмотрите сюда (если еще вам не кидали эту ссылку)

43
ну а если вы решитесь разобраться самостоятельно, то:
- для начала выясните, каким образом добавляются товары или как можно изменить их кол-во
Вы писали про ajax и скорее всего вы используете js прописанный в файле /templates/[название шаблона]/js/basket.js

- а этом механизме есть функций add и modify, и в них надо вносить правки. Например, в функции add добавить параметр option[amount] = ...;


44
там где работает, просто ломается js' ка  поэтому js сортировки и не работает
Попробуйте уберать класс sort с блока с сортировкой.

45
ну, в demodizzy есть js код, который делает сортировку. И срабатывает он при наличии определенных css классов и определенной структуры.

И тут надо понять для начала, вы хотите чтобы сортировка была с перезагрузкой или нет?
В первом случае, надо отрубать этот js код. Во втором, разбираться как его заставить работать полноценно.

P.S. js код в файле, указанном в предыдущем сообщении, начинается со строк:
jQuery('a', '.catalog .change .sort').click(function() {
var reactive = jQuery(this).hasClass('reactive');
...

Страницы: 1 2 [3] 4 5 ... 164