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

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

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


Темы - sam

Страницы: [1] 2 3
1
Здравствуйте! Периодически наблюдаются проблемы в работе сайта - сайт зависает (ответ из БД приходит с большой задержкой). Обратились к хостеру, с целью выяснения причины этой проблемы. Как хостер сказал, от серверов скриптов и БД идут множественные соединения, ожидающие исполнения. Говорят, что это не нормально и говорит о недостаточной оптимизированности сайта и его запросов. Другими словами, сайт инициирует большое количество подключений при одном запросе.

Что можете сказать по этому поводу? Сталкивались с такой проблемой? Где найти решение этой проблемы?

2
Шаблоны PHP / uLogin
« : 20 Июня 2017, 10:16:24 »
Здравствуйте! Кто-нибудь может поделиться файлами /php/users/authorization.phtml и /xslt/modules/users/authorization.xsl ?

3
JS и AJAX / Войти через Loginza
« : 18 Июня 2017, 20:52:20 »
Здравствуйте! Просьба, подскажите:
1. Почему когда нажимаю на кнопку "Войти через Loginza" не всплывает окно по верх страницы, а происходит переход на http://loginza.ru/api/widget?token_url=https%3A%2F%2Fmysite.ru:80%3A80%2Fusers%2Floginza%2F%3Ffrom_page%3Dhttps%253A%252F%252Fmysite.ru%253A80%252F ? Раньше ведь всплывало окно при нажатии?!
2. И что за :80 после mysite.ru - откуда берётся и подставляется этот :80? При закрытии окна после перехода, вызывается ошибка из-за этого :80 в ссылке. Как это можно убрать?

4
Здравствуйте!
Несколько дней назад наш хостер перевёл наш сайт вроде на "более производительный сервер". В кавычках потому, что, после этого сайт стал тормозить. На данный момент мы на UMI.CMS 2.9.0 и используем PHP версии 5.3 с настройками модулей (подключенные: curl, dom, eaccelerator, gd, iconv, json, mbstring, mysql, session, simplexml, sockets, timezonedb, tokenizer, xml, xmlreader, xsl, zlib). До момента переноса нашего сайта на новый сервер хостером, всё работала на ура. Обращались к хостеру, что-то вроде делали или не делали, но пока ещё всё так же печально.

Уточнили у хостера, может нам перейти на PHP 7.0, на что они ответили: "проконсультируйтесь с разработчиком, так как, возможно, что скрипты сайта не совместимы с данной версией РНР".

Просьба, подскажите разработчики, если наш сайт на UMI.CMS 2.9.0, то перейти на PHP 7.0 мы можем? Если да, то какие конкретные модули PHP (см. ранее "подключенные" выше) нам надо будет подключать, чтобы сайт стал работать лучше, а не окончательно встал?

5
Шаблоны XSLT / Быстрый просмотр товара
« : 10 Февраля 2017, 18:24:01 »
Здравствуйте! Хочу сделать быстрый просмотр товаров в разделах и на главной странице. Суть - ссылка "Быстрый просмотр", при нажатии на неё popup, а внутри карточка товара (шаблон из ~/catalog/object-view.xsl), и всё это без ajax. Есть понимание, что надо создать div, скрыть его через css, и через javascript сделать так, чтобы при нажатии этот скрытый div с карточкой товара открылся. Как на практике это реализовать, не знаю?! Может кто поможет?

6
Здравствуйте! Поиск на сайте ведётся по каталогу. Может подскажет кто, как можно сделать так, чтобы он был с подсказкой? Например, набирает пользователь название производителя, выпадает список со ссылками/с товарами этого производителя. Это один из примеров - критерий, по которым будет поиск, потом можно выбирать.

7
Здравствуйте! Как-то делали страницы с новинками, и лучшими предложениями (~/xsltTpls/modules/catalog/category-view.xsl):
<xsl:template match="/result[@method = 'content' and @pageId=3395]">
<xsl:apply-templates select="document(concat('usel://special-offers/', $document-page-id, '?limit=1000000'))" mode="special-offers" />
</xsl:template>
<xsl:template match="/result[@method = 'content' and @pageId=3389]">
<xsl:apply-templates select="document(concat('usel://new-items/', $document-page-id, '?limit=1000000'))" mode="special-offers" />
</xsl:template>
Когда было не так много товаров, страницы грузились быстро, а теперь, из-за большого кол-во товаров, страница, та или иная, грузится слишком долго...

Вопрос: а как можно сделать так, чтобы страницы показывали по 30 позиций, а под ними кнопка "показать ещё", а по нажатию на неё, чтобы появились +30 позиций (уже 60 позиций), и так далее..., и всё действие на одной странице?! Лимит, думаю можно так - '?limit=30', а вот дальше как добавить по +30 позиций по нажатию на кнопку/ссылку?!

8
Custom макросы / Предзаказ
« : 02 Ноября 2016, 18:40:06 »
Здравствуйте! Хотим сделать кнопку "предзаказ" в место "добавить в корзину" для товаров в пути (наличие - ожидается...). Можно ли сделать сокращенное оформление, т.е., чтобы товар добавился в корзину, а потом, чтобы клиент заполнил только свои контакты, без адреса, без условий доставки и оплаты - вывод сразу к "success"?! Если это сложно сделать, то второй вариант - кнопка "предзаказ", а по нажатии открывается форма с контактами, которую надо заполнить, а после отправить предзаказ (это по аналогии заказ в 1 клик). Что в первом варианте, так и во втором, предполагается, что должен быть оформлен очередной заказ в системе. Буду признателен за советы по реализации аналогичной функции.

9
Здравствуйте!

С помощью admin мы как-то делали следующее:
<xsl:text>Доставка: </xsl:text>
<xsl:choose>
<xsl:when test="document(concat('udata://emarket/price/', page/@id,'//0'))/udata/price/actual &gt;= 50000">
<xsl:text>бесплатно</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>190 руб.</xsl:text>
</xsl:otherwise>
</xsl:choose>
Для знатоков суть ясен - стоимость доставки 190 руб., а при стоимости товара от 50.000 руб., бесплатно.

На данный момент возникла потребность в том, чтобы сделать беспл.доставку для определенной категории товаров. Например, у нас есть категория "Диктофоны" (+3 подкатегории в ней) - надо, чтобы целиком для этой категории отображалась беспл.доставка (для всех позиций именно этой категории). У категории "Диктофоны" id = 5106, а id подкатегорий - 5107, 5108 и 5109 (+объекты в них со своими id).

Согласно примеру/коду выше, подскажите, как можно сделать проверку - "если Диктофоны и все его объекты, то бесплатная доставка"? Получается, что к этому коду надо ставить ещё одну проверку: 1. Все объекты - Доставка - 190 руб.; 2. Товары дороже 50.000 руб. - бесплатно; 3. Диктофоны - бесплатно. Знаю, что после ".../udata/price/actual &gt;= 50000" надо ставить || и прописать путь к разделу/категории "Диктофоны", а как этот путь указать, не знаю?! Буду признателен знатокам за подсказку!

10
Здравствуйте! Заметили одну вещь - покупатель добавляет товар в корзину, а потом по какой-то причине решает оформить заказ "в один клик". После того, как заказ оформляется, к нам приходит заказ с ранее добавленным в корзину кол-вом, +1 шт из заказа "в один клик", т.е. кол-во <1 шт. При связи с клиентом выясняется, что он хочет 1 шт.

Есть ли решение этой проблемы? Т.е., если ранее товар был добавлен в корзину покупателем, а позднее он же покупает этот же товар через "заказ в один клик", то очистить корзину, чтобы при заказе "в один клик" получить кол-во 1 шт.

11
Нужна помощь в реализации одной задумки. Суть в том, что делаю проверку - по умолчанию на иконке корзины в верхней части сайта стоит "0", а после того, как нажимаем кнопку "добавить в корзину" значение меняется на "1", вернее должно, но не меняется, так как страница не обновляется (ajax).

Код проверка ниже:
<xsl:choose>
<xsl:when test="document(concat('udata://emarket/cart/', @id, '//0'))/udata/summary/amount &gt;= 1">
<xsl:text> 1 </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> 0 </xsl:text>
</xsl:otherwise>
</xsl:choose>
Проверка работает, если обновить страницу после добавления товара в корзину. А вот без обновления страницы значение не меняется. Я не хочу скрипт корзины трогать. Может кто подскажет как быть?

12
Здравствуйте!
На сайте есть скрипт Я.Метрики с асинхронным кодом в файле .../xsltTpls/layouts/default.xsl:
				<!-- Yandex.Metrika counter -->
<script type="text/javascript">
var yaParams = {IP-address: "<?php echo $_SERVER['REMOTE_ADDR']; ?>"};
</script>
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter******** = new Ya.Metrika({ id:********, webvisor:true, clickmap:true, trackLinks:true, accurateTrackBounce:true, params:window.yaParams||{ } });
}
catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () {
n.parentNode.insertBefore(s, n);
};
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/********" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
В этом коде прошу обратить внимание на следующий скрипт, и параметр:
<script type="text/javascript">
var yaParams = {IP-address: "<?php echo $_SERVER['REMOTE_ADDR']; ?>"};
</script>

params:window.yaParams||{ }
Так как Я.Метрика перестал выводить IP-адреса посетителей, приходится изощряться таким образом, чтобы при выявлении злостных вредителей сайта, добавить их IP в черный список.

Но скрипт + параметр (см. второй код) не выполняют свою функцию, т.е. IP-адреса так и не видны.

Может кто подскажет, как для тестирования выводить IP-адрес в .../xsltTpls/layouts/default.xsl через скрипт/php? А также, как правильно все сделать, чтобы IP-адреса посетителей выводились в Я.Метрике?

13
Макросы UMI.CMS / Фильтр товаров
« : 24 Декабря 2015, 21:55:22 »
Здравствуйте! Наверняка все знают, какой стандартный фильтр товаров в UMI.CMS. Кто-нибудь, может когда-то решал задачу с обновлением этого фильтра, например, делая его как у больших магазинов - более понятным для покупателя (речь о не простом поиске, а именно о фильтре товаров в разделах и подразделах).

Например, у нас электроника, и тот самый фильтр, который надо, чтобы пользователь заполнял вручную (нет возможности выбирать параметры из выпадающего списка), и если он не знает, что у нас оперативная память указана в Мб, и он еще не знает, что 4096 Мб = 4 Гб... Ну вот и представьте себе сложность поиска для него. Просто у нас так, поля, которые надо заполнять, а ведь надо еще знать, что ввести в эти поля.

У нас товаров очень много, и все поля в характеристиках заполнены вручную. Нет никакого понимания, как можно эти параметры перенести в справочник, а затем, чтобы они оказались в объектах на своих же местах, только уже выбранные из справочника. Преимущество для потенциального покупателя было бы, он бы видел в выпадающем списке уже существующий параметр, и выбирал бы, вместо того, чтобы набирать все вручную, не зная чего?!

Вопрос: кто-нибудь занимался усовершенствованием фильтра товаров, доводя его до ума. Можете поделиться опытом?

14
Шаблоны XSLT / Проверка по дням недели
« : 17 Декабря 2015, 17:50:50 »
Здравствуйте! Просьба подсказать - как в XSLT сделать проверку по дням недели? Например, в условиях доставки с понедельника по четверг вывести инфо. "доставка - завтра и позже", а вот с пятницы по воскресенье "доставка - вторник и позже".

Если (пятница-воскресенье):
"доставка - вторник и позже"
Иначе:
"доставка - завтра и позже"

15
JS и AJAX / Защита от спам-заказов!
« : 31 Августа 2015, 16:31:14 »
Проблема: в "order_comments" спамер вводит данные адреса доставки (идентификаторы - city, street ...) и отправляет заказы (периодичность спам-заказов - 10/30 мин.). Реальные покупатели никогда не дублируют адрес доставки в поле "Комментарий к адресу" - такого еще не было.

Шаблон данных --> Справочники --> Адрес доставки (редактирование) --> Комментарий к адресу (order_comments).

Задумался о том, чтобы поставить проверку - если "order_comments" содержит значения "city" и "street", то показать спамеру ложное сообщение о том, что "Заказ успешно оформлен", а на самом деле прервать дальнейшее оформление заказа.
Если это реальный покупатель, и вводит в комментарии к адресу что-то иное (свое дополнение и т.д.), то продолжать оформление заказа в обычном режиме без всякого препятствия для него.

Логически, понимаю, что спамеру тоже ничего не мешает вводить что-то иное в комментариях к адресу, но думаю, что у него программа написана именно так, что order_comments содержит значения адреса доставки.

Моё видение примерное, но явно надо доработать/исправить:

function check() {
   if (order_comments.val == city || street) {
      alert ("Заказ успешно оформлен");
      return false;
   } else {
      return true;
   }
}

<input javascript="check()" />

Какую бы нехитрую комбинацию/решение проблемы вы могли бы предложить, или как правильно можно доработать мой вариант?

Страницы: [1] 2 3