devellopah +5


devellopah

  • devellopah devellopah 26 января 2019 05:38 #

    Столкнулся с новой проблемой. Добавил обработчик для хука backend_assetsвзял прямо со страницы документации хука, разве что названия файлов поменял на нужные.

    public function backendAssets()
    {
        $this->addCss('css/confirm.css');
        $this->addJs('js/confirm.js');
    }

    Создал папки css и js в корневой папке плагина, поместил файлы в соответствующие папки.

    Обновил /lib/config/plugin.php

    ...
    'handlers' => array(
        'backend_contact_info' => 'backendContactInfo',
        'backend_assets' => 'backendAssets',
    ),
    ...

    К сожалению, файлы стилей и скриптов плагина не были добавлены в секцию head как обещал хук backend_assets

    В логах ошибок нет, в консоли  браузера всё чисто. Прямо какая-то мистика. Подскажите, что делать, я уже пал духом.


    p.s. гляньте пожалуйста в репу, я её обновил.

    в ответ на Почему мой плагин для приложения "Контакты" не работает?

  • devellopah devellopah 25 января 2019 23:51 #

    Выглядит так, словно вывод дочерних категорий ограничен только первой из них. Надо смотреть ваш category.html

    в ответ на В родительской категории не отображаются подкатегории

  • devellopah devellopah 25 января 2019 20:09 #

    Не знаю, что произошло, но сейчас я вижу результат. Я просто поднял локальный сервер, как обычно, зашёл на страницу контакта и увидел результат. Вчера, как не пытался, ничего не получалось. Интересно, что я вчера даже перезагружал локальный сервер, но, всё равно, результат был отрицательным. Блин, я не знаю, что произошло, и да, я был трезв вчера. Какая-то магия, хотя вряд ли.

    в ответ на Почему мой плагин для приложения "Контакты" не работает?

  • devellopah devellopah 22 января 2019 01:15 #

    По идее можно создать ключ-значение при создании записи, справа есть Мета -> Дополнительные поля

    кидай туда что-то типа

    thumbnail=путь до картинки

    затем в home.html, где через foreach обходишь записи из блога(где-то внизу файла), можешь достать url картинки через $post.thumbnail

    в ответ на картинки в блог как сделать

  • devellopah devellopah 19 января 2019 22:01 #

    "убогую" проблему может и решает, однако речь была о функции $wa->globals(), которая, как я уже понял, на самом деле создаёт глобальную переменную, но которую не достать во вложенных шаблонах, поскольку они импортируются в index файл, уже скомпилированными.

    в ответ на Метод $wa->globals() создаёт не глобальную, а локальную переменную.

  • devellopah devellopah 19 января 2019 20:39 #

    короче говоря, узнал про такую штуку как helpers в движке. Типа создаёшь класс со своими статическими функциями. По-моему, это лучшее решение.

    в ответ на Как перенаправить гостя сайта со страницы корзины на страницу входа?

  • devellopah devellopah 19 января 2019 20:37 #

    такое себе решение...неоднозначное. 

    в ответ на Как перенаправить гостя сайта со страницы корзины на страницу входа?

  • devellopah devellopah 19 января 2019 18:33 #

    Что насчёт этого?

    Почему нельзя сначала импортировать всё что нужно в главный файл, а затем всё это добро скомпилировать в html? В этом случае, можно будет использовать созданные с помощью вышеуказанного метода глобальные переменные во вложенных шаблонах.

    в ответ на Метод $wa->globals() создаёт не глобальную, а локальную переменную.

  • devellopah devellopah 19 января 2019 02:27 #

    Леонид на самом деле помог, просто не объяснил толком, что создать и куда положить.

    Я набрёл на эту статью. Согласно тому, что там написано, нужно код Леонида положить в файл с именем shopCustom.class.php

    Затем этот файл положить в папку вашего сайта на сервере(вы можете подключиться по ftp с помощью filezilla) по адресу wa-apps/shop/lib/classes/

    После того, как вы это сделаете вы сможете использовать в шаблоне

    shopCustom::getContactCategoryIds($wa->user('id')))

    который вернёт вам список id категории, в которых находится пользователь.

    При установке обновлений ничего не слетит, в статье пишут об этом, так что можете вздохнуть спокойно)

    Файлы пользовательских классов не затрагиваются при установке обновлений через «Инсталлер».

    И последний штрих...

    Для корректной работы хелпера может потребоваться очистка кеша в «Инсталлере».

    p.s. здесь работы - кот наплакал, но почему-то экспертам webasyst так и не удалось толком(от начала до конца) объяснить, что нужно делать.

    в ответ на Как выводить для каждой группы покупателей определенный текст

  • devellopah devellopah 19 января 2019 00:41 #

    да, я понимаю, просто интересно есть ли возможность решить этот вопрос на стороне шаблона, то есть с помощью smarty(php maybe)?

    в ответ на Как перенаправить гостя сайта со страницы корзины на страницу входа?

  • devellopah devellopah 19 января 2019 00:37 #

    спасибо, конечно, но можно обойтись и без плагинов. Просто поставить условие в cart.html, что если посетитель не в системе, отображаем форму логина, в противном случае, отображаем исходное содержимое шаблона. По сути, условие такой же как и выше в моём вопросе, просто в ветке else я не перенаправляю на страницу входа, а загружаю login.html прямо в cart.html.  Посмотрите, здесь. Вы не сможете добавить в корзину товар, а при переходе на /cart или /checkout увидите форму логина.

    в ответ на Как перенаправить гостя сайта со страницы корзины на страницу входа?

  • devellopah devellopah 18 января 2019 20:59 #

    Зато нельзя использовать global-переменную из category.html в cart.html, checkout.html, product.html...

    в ответ на Метод $wa->globals() создаёт не глобальную, а локальную переменную.

  • devellopah devellopah 18 января 2019 20:43 #

    Если список групп можно достать через

    {$group = $wa->user()->getGroups()}

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

    {$cats = $wa->user()->getCategories()}

    Почему это до сих пор не реализовано? Ребята, прошло уже 4 года как задали этот вопрос!

    p.s. неужели мне самому придётся писать плагин...

    в ответ на Как выводить для каждой группы покупателей определенный текст

  • devellopah devellopah 18 января 2019 18:25 #

    Если мне нужно, что-то вроде такого, то дополнительные параметры не помогут

    {if $wa->isAuthEnabled()}
        {if $wa->user()->isAuth()}
            {$wa->globals("isAuthorized", true)}
        {else}
            {$wa->globals("isAuthorized", false)}
            {$wa->globals("hideCart", true)}
        {/if}
    {/if}

    Для этого придётся создавать блок, типа {$wa->block("shop.global_vars")} и вставлять в нужных шаблонах.

    в ответ на Метод $wa->globals() создаёт не глобальную, а локальную переменную.

  • devellopah devellopah 18 января 2019 18:11 #


    Шаблон index.html подключается после обработки category.html

    Это шутка такая? Тогда в чём прикол создавать $wa->globals() Для того, что метод мог создать глобальную переменную, которую нельзя будет использовать во вложенных шаблонах, потому что они компилируются до импорта в index файл?

    А на каком этапе компилируется index файл? Почему нельзя сначала импортировать всё что нужно в главный файл, а затем всё это добро скомпилировать в html? В этом случае, можно будет использовать созданные с помощью вышеуказанного метода глобальные переменные во вложенных шаблонах.

    в ответ на Метод $wa->globals() создаёт не глобальную, а локальную переменную.

  • devellopah devellopah 18 января 2019 05:31 #

    Мне тоже нужна ручная активация аккаунтов вместо автоматической.

    Для начала, нужно убрать $confirmation_url из шаблона подтверждения регистрации.

    Нужно расширить функционал приложения "Контакты", а именно: добавить "активировать/создать аккаунт" в список "действия с выбранными". При выборе этого действия, для выбранных контактов должна быть создана ссылка подтверждения(для каждого своя, естественно) и отправлена на почту каждого из выбранных контактов. Контакт нажимает на ссылку в письме и, вуаля, теперь он клиент!

    в ответ на Статус покупателя (аккаунта) + активация администратором

  • devellopah devellopah 18 января 2019 04:14 #

    Знаю, что можно сделать в javascript, но мне нужно максимально удачное решение, javascript можно отключить(или он может быть отключенным в браузере посетителя). Поэтому лучше решать эту задачу на уровне шаблона с помощью smarty.

    Жестоко вы с неавторизованными. :)))

    Запрос клиента такой, оформить заказ могут только авторизованные пользователи.

    в ответ на Как перенаправить гостя сайта со страницы корзины на страницу входа?

  • devellopah devellopah 18 января 2019 04:09 #

    Можете объяснить чуть подробнее, что именно в параметрах браузера определяет переключать ли запрос изображений на retina или нет?

    Это не обязательно должно быть устройства apple.

    Я упомянул об этом в пояснении к вопросу, это уточнение было лишним.

    в ответ на Почему shop-script пытается достать 2x эскизы при просмотре с ноутбука?

  • devellopah devellopah 18 июля 2018 14:38 #

    тема "Дефолт 3", управление слайдерами находится в home.slider.html

    Я поменял строчку 

    {foreach $promocards as $_slide}

    на

    {foreach $wa->shop->promos('link', 1200) as $_slide}

    и всё норм.

    Правда, так и не понял, почему выходили шириной 900px. В любом случае, спасибо)

    в ответ на Почему когда загружаю картинку шириной 1200px в промокарточку движок выдаёт картинку шириной 900px?

  • devellopah devellopah 29 мая 2018 23:31 #

    а почему показывает "в наличии", если "товар не доступен для покупки"?

    в ответ на Товар с выбранным набором характеристик недоступен для покупки

  • devellopah devellopah 26 мая 2018 02:02 #

    Всё-таки, затащить "list-thumbs.html" в блок приложения "Сайт" можно. На решение наткнулся чисто случайно.

    Магазин - Товары - выбираем любой список - "Код для встраивания" - "Страницу или другое приложение Webasyst"


    {if $wa->shop}
    {$products = $wa->shop->productSet("название списка")}
    {include file="`$wa->shop->themePath('id активной темы приложения Магазин')`list-thumbs.html" products=$products}
    {/if}

    в ответ на Как правильно затащить шаблон "list-thumbs.html" в страницу магазина?

  • devellopah devellopah 23 мая 2018 13:43 #

    заказчик обновил все плагины, в то числе и ваш. Теперь при переходе на /checkoutone ничего не отображается

    в ответ на Подскажите почему слетает скидка при смене выбора доставки на странице оформления?

  • devellopah devellopah 20 мая 2018 18:24 #

    я уверен, что в самом скором времени, так и поступят(продлят лицензию)

    в ответ на Подскажите почему слетает скидка при смене выбора доставки на странице оформления?

  • devellopah devellopah 20 мая 2018 14:38 #

    Привет! Вижу обновления в installer, однако пока не могу обновиться, у заказчика такая ситуация:

    Подожду пока продлят лицензию, потом обновлюсь. Если проблема останется, напишу вам на почту.

    Спасибо, что ответили.

    в ответ на Подскажите почему слетает скидка при смене выбора доставки на странице оформления?

  • devellopah devellopah 5 мая 2018 15:21 #

    ну это не решение, ибо блок

    {$wa->block("list_thumbs")}

    теперь нельзя повторно использовать. По сути, правильнее назвать его

    {$wa->block("novinki_list_thumbs")}

    Для каждого списка придётся создавать отдельный блок. Конечно, всё же немного лучше, чем копипастинг, но не далеко ушло. Я же надеялся на какое-то более общее решение. Но всё равно спасибо).

    в ответ на Как правильно затащить шаблон "list-thumbs.html" в страницу магазина?

  • devellopah devellopah 4 мая 2018 08:05 #

    ну я сделал так:

    это блок(просто скопировал ul из list-thumbs.html) {$wa->block("list_thumbs")}

    <ul class="thumbs product-list row">
    {if !empty($theme_settings.list_features)}
        {$features = $wa->shop->features($products)}
    {/if}
    {foreach $products as $p}
        {$available = $wa->shop->settings('ignore_stock_count') || $p.count === null || $p.count > 0}
        <li itemscope itemtype ="http://schema.org/Product" class="col-sm-6 col-lg-4 col-xxl-3">
            <div class="item js-origin">
                {$badge_html = $wa->shop->badgeHtml($p.badge)}
                {if $badge_html}
                    {$badge_html}
                {/if}
                <a href="{$p.frontend_url}" title="{$p.name}" class="item__top">
                    <div class="image">
                        {$wa->shop->productImgHtml($p, '200', ['itemprop' => 'image', 'alt' => $p.name, 'default' => "`$wa_theme_url`img/dummy200.png"])}  
                    </div>
                    
                    <h5>
                        <span itemprop="name">{$p.name}</span>
                    </h5>
                </a>
                {if !empty($p.features)}
                <table class="features">
                    {foreach $p.features as $f_code => $f_value}
                    <tr{if $features[$f_code].type == 'divider'} class="divider"{/if}>
                    <td class="name">
                        {$features[$f_code].name|escape}
                    </td>
                    <td class="value" itemprop="{$f_code|escape}">
                        {if is_array($f_value)}
                            {if $features[$f_code].type == 'color'}
                                {implode('<br /> ', $f_value)}
                            {else}
                                {implode(', ', $f_value)}
                            {/if}
                        {else}
                            {$f_value}
                        {/if}
                    </td>
                    </tr>
                    {/foreach}
                </table>
                {/if}
                <div itemprop="offers" class="offers" itemscope itemtype="http://schema.org/Offer">
                    {if $available}
                        <form class="purchase addtocart" {if $p.sku_count > 1}data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1"{/if} method="post" action="{$wa->getUrl('shop/frontendCart/add')}">
                            <div class="pricing">
                                {if $p.compare_price > 0}<span class="compare-at-price nowrap"> {shop_currency_html($p.compare_price)}</span> {/if}
                                <span class="price nowrap">{shop_currency_html($p.price)}</span>
                                <meta itemprop="price" content="{shop_currency($p.price, null, null, 0)}">
                                <meta itemprop="priceCurrency" content="{$wa->shop->currency()}">
                            </div>
                            <input type="hidden" name="product_id" value="{$p.id}">
                            <input type="submit" value="Купить" class="btn btn-small btn-primary-outlined">
                            <i class="adding2cart"></i>
                            {if !empty($theme_settings.compare_products)}
                                <a data-product="{$p.id}" class="compare compare-item" href="#" title="[`Compare`]">
                                    <img class="compare-item__icon compare-from-list{if $wa->shop->inComparison($p.id)} active{/if}" src="/wa-data/public/site/themes/muslim_shop_2018/img/compare-from-list.png" alt="img">
                                    <img class="compare-item__hidden compare-from-list{if $wa->shop->inComparison($p.id)} active{/if}" src="/wa-data/public/site/themes/muslim_shop_2018/img/compare-from-list-hover.png" alt="img">
                                    <span class="ml-2">Добавить к сравнению</span>
                                </a>{/if}
                            <span class="added2cart" style="display: none;">{sprintf('[`%s is now <a href="%s"><strong>in your shopping cart</strong></a>`]', $p.name, $wa->getUrl('shop/frontend/cart'))}</span>
                        </form>
                        <link itemprop="availability" href="http://schema.org/InStock" />
                    {else}
                        <span class="price nowrap">{shop_currency_html($p.price)}</span>
                        <meta itemprop="price" content="{shop_currency($p.price, null, null, 0)}">
                        <meta itemprop="priceCurrency" content="{$wa->shop->currency()}">
                        <div class="out-of-stock"><strong>{if $wa->shop->settings('ignore_stock_count')}[`Pre-order only`]{else}[`Out of stock`]{/if}</strong></div>
                        <link itemprop="availability" href="http://schema.org/OutOfStock" />
                    {/if}
                </div>
                {if $p.rating > 0}
                    <span class="rating nowrap">{$wa->shop->ratingHtml($p.rating, 16)}</span>
                {/if}
            </div>
        </li>
    {/foreach}
    </ul>

    страница Новинки

    {$products = $wa->shop->productSet( 'novinki' )}
    {$wa->block("list_thumbs")}

    Ошибок, как уже упоминал нет, но список пустой на странице.

    Так ли вы делаете?

    в ответ на Как правильно затащить шаблон "list-thumbs.html" в страницу магазина?

  • devellopah devellopah 3 мая 2018 19:26 #

    Вариант с блоком не прокатывает, поэтому я и написал, что красиво, увы, не выйдет.

    в ответ на Как правильно затащить шаблон "list-thumbs.html" в страницу магазина?

  • devellopah devellopah 3 мая 2018 14:35 #

    не будет, увы. Придётся тупо копипастить килограммы строк, дичь какая-то.


    в ответ на Как правильно затащить шаблон "list-thumbs.html" в страницу магазина?

  • devellopah devellopah 30 апреля 2018 01:57 #

    спасибо, что вы развеяли мои слабые сомнения

    в ответ на Как грамотно убрать заголовок из формы отзыва о товаре?

  • devellopah devellopah 29 апреля 2018 06:33 #

    костыль-то работает, вопрос не в этом. Не будет ли проблем с этим полем, если там всегда будет одно и то же значение?

    в ответ на Как грамотно убрать заголовок из формы отзыва о товаре?