Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Agatha65

Пользователи
  • Публикаций

    786
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Agatha65

  1. On 2/19/2023 at 10:40 PM, modn11 said:

    Здравствуйте коллеги, как мне отредактировать шаблон счета, когда я хочу его распечатать, появляются 2 страницы, а мне нужна только 1, какие файлы отвечают за этот функционал.  Спасибо за помощь

    https://github.com/opencart/opencart/blob/3.0.3.8/upload/admin/view/template/sale/order_invoice.twig

     

    admin/view/template/sale/order_invoice.twig

    В этом файле на 16 строке надо убрать

    style="page-break-after: always;"

  2. On 2/26/2023 at 10:35 PM, NamemaN said:

    Питання для знатаків.

    Потрібно зпарсити фотто товару з сайту https://www.kaercher.com/ua-uk/home-garden/minimiiki/k-7-premium-power-home-13171710.html

    Перерав багато різних параметрів парсингу і ніяк не вийшло :oops:. Буду вдячний за допомогу.

    К сожалению, здесь изображения товаров загружаются после загрузки страницы и не могут быть спарсени.
    После анализа страницы и ссылок на фото видна закономерность, которая позволяет генерировать ссылки на фото в Excel.

     

    В ссылке на товар указан его номер (не артикул) - 13171710

    https://www.kaercher.com/ua-uk/home-garden/minimiiki/k-7-premium-power-home-13171710.html

    главное фото

    https://s1.kaercher-media.com/products/13171710/main/1/d0.jpg

    дополнительные фото

    https://s1.kaercher-media.com/products/13171710/detail/1/d0.jpg
    https://s1.kaercher-media.com/products/13171710/detail/2/d0.jpg
    https://s1.kaercher-media.com/products/13171710/detail/3/d0.jpg

    исходя из номера в ссылке на товар, в excel необходимо добавить колонку для главное фото(main) и большое количество колонок для дополнительных(detail), изменив только одну цифру в ссылке. d0 это размер, есть еще d1, d2...

    • +1 1
  3. On 2/16/2023 at 11:56 AM, Jays0n said:

    неужели никто не сделал импорт экспорт типа как у prom.ua, где просто екселевский файл и все атрибуты и опции по колонкам, выгрузил, поменял/добавил, загрузил...

    Это может делать только Автоматическая обработка прайс-листов. Вам придется научиться им пользоваться.

    Посмотрите в инструментах, сколько там вариантов

    Экспорт (атрибуты по колонкам)

    Вывести атрибуты товаров для корректировки

    ....
    https://opencartsuppliers.com/ru/tools

  4. Не переживайте. И многие мои клиенты получали такие письма. Оказалось от нового модуля в панели управления хостингом cPGuard, который проверяет версию платформы и отправляет сообщения. Индийские авторы этого модуля, очевидно, считают, что все платформы уязвимы, как и WordPress, и нуждаются в постоянном обновлении.

  5. 02.02.2023 в 07:13, Rassol2 сказал:

    Но если у кого то есть пожелания пишите.
    Еше луче если напишите почему именно тот или иной фонд, а не просто вот этот.

    Олег Петренко набирает для дронов.

    https://www.youtube.com/@OlegPetrenko

    https://t.me/petrenko_IHS

  6. 31.01.2023 в 20:08, Askeran17 сказал:

    Сам думаю что проблема из-за PHP 8 который у меня установлен, однако на меньшую версию не могу пойти, так как хостинг полностью убрал все версии ниже PHP8.

     

     Как можно решить эту проблему?

     

    Версия Опенкарта 3.0.3.8

    На GitHub ест версия для php 8, я не пробовала еще
    https://github.com/opencart/opencart/tree/3.0.x.x_Maintenance/

  7. 30.01.2023 в 14:59, sergioM сказал:

    да я понимаю, что не может найти цену, перепробовал все куски кода

    Попробуйте задать текст для начала парсинга как в документации

    https://opencartsuppliers.com/ru/product-price-parsing

    если не поможет, пришлите ссылку в личку.

  8. 26.01.2023 в 11:17, kostya242 сказал:

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

    Да

    https://opencartsuppliers.com/ru/product-sku

  9. @anton78, скачайте оригиналные  изображения на свой компьютер и используйте эти бесплатные инструменты оптимизации:
    Изменение размера (до 15 за раз)

    https://www.iloveimg.com/resize-image
    Оптимизация (максимальный размер 1mb, без ограничений по количеству)

    https://kraken.io/web-interface

    • +1 1
  10. 11 hours ago, Bankaishow said:

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

    удалил все ети модули опенграф и всезде кроме телеги красивые  превью ссылки 

    Здравствуйте, я автор модуля, дайте доступы в личку и посмотрю.

  11. On 11/15/2021 at 12:51 PM, specialforce22 said:

    Как думаете есть шанс такое спарсить - нет отдельных страниц товара, а доп-фото в поупап окне - https://opt.mattioli-bags.com/briefcases/ (http://mattioli-bags.com/) - у них есть розничный ИМ, но, к сожалению, не идентичный товар, надо с оптовой части тянуть.

    Есть шанс спарсить

    На страница категории собираем все ELEMENT_ID=ХХХХХ

    <a class="ajax js-product" data-url="/detail.php" data-id="ELEMENT_ID=83067" data-block=".cat_popup" href="#" data-elem-id="83067">

    ссилка на товар

    https://opt.mattioli-bags.com/detail.php?ELEMENT_ID=81278

    и парсим :)

    • +1 2
  12. Для видео читайте про facade

    https://web.dev/third-party-facades/

    сам код

    https://github.com/paulirish/lite-youtube-embed

    как я делаю

    в админ для товар в location добавляем только video ID а модификатор деобавляет осталное на страница товара.

    Spoiler
    
    <?xml version="1.0" encoding="UTF-8"?>
        <modification>
            <name>Use location for product video - Lite YouTube</name>
            <code>upctovideo</code>
            <author>agatha65.com</author>
    		<link>https://agatha65.com</link>
    		<!-- https://github.com/paulirish/lite-youtube-embed -->
    		
    		<file path="catalog/controller/product/product.php">
    		    <operation>
                    <search><![CDATA[
    				if ($product_info['minimum']) {
                    ]]></search>
                    <add position="before"><![CDATA[
    				if ($product_info['location']) {
    				  $data['video'] = $product_info['location'];
    			    } else {
    				  $data['video'] = '';
    			    }
                    ]]></add>
                </operation>
            </file>
    		<file path="catalog/view/theme/*/template/common/header.tpl">
    		    <operation>
                    <search><![CDATA[
    				</head>
                    ]]></search>
                    <add position="before"><![CDATA[
    <style>
    lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer;max-width:720px}
    lite-youtube::before{content:'';display:block;position:absolute;top:0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);background-position:top;background-repeat:repeat-x;height:60px;padding-bottom:50px;width:100%;transition:all .2s cubic-bezier(0,0,0.2,1)}
    lite-youtube::after{content:"";display:block;padding-bottom:calc(100% / (16 / 9))}
    lite-youtube > iframe{width:100%;height:100%;position:absolute;top:0;left:0;border:0}
    lite-youtube > .lty-playbtn{width:68px;height:48px;position:absolute;cursor:pointer;transform:translate3d(-50%,-50%,0);top:50%;left:50%;z-index:1;background-color:transparent;
    background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 68 48"><path fill="red" fill-opacity="0.8" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z"></path><path d="M 45,24 27,14 27,34" fill="white"></path></svg>');
    filter:grayscale(100%);transition:filter .1s cubic-bezier(0,0,0.2,1);border:none}
    lite-youtube:hover > .lty-playbtn,lite-youtube .lty-playbtn:focus{filter:none}
    lite-youtube.lyt-activated{cursor:unset}
    lite-youtube.lyt-activated::before,lite-youtube.lyt-activated > .lty-playbtn{opacity:0;pointer-events:none}
    .lyt-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
    </style>
                    ]]></add>
                </operation>
    		</file>
    		<file path="catalog/view/theme/*/template/product/product.tpl">
    		    <operation>
                    <search><![CDATA[<?php echo $description; ?>]]></search>
                    <add position="replace"><![CDATA[
    				<?php if ($video) { 
    				$videos = (explode(",",$video));
    				if ( count($videos) == 1 ) { ?>
    					<div class="row">
    						<div class="col-sm-6"><?php echo $description; ?></div>
    						<div class="col-sm-6">
    							<lite-youtube videoid="<?php echo $videos[0]; ?>"></lite-youtube>
    							<script>class LiteYTEmbed extends HTMLElement{connectedCallback(){this.videoId=this.getAttribute("videoid");let e=this.querySelector(".lty-playbtn");if(this.playLabel=e&&e.textContent.trim()||this.getAttribute("playlabel")||"Play",this.posterUrl=`https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg`,LiteYTEmbed.addPrefetch("preload",this.posterUrl,"image"),this.style.backgroundImage=`url("${this.posterUrl}")`,e||((e=document.createElement("button")).type="button",e.classList.add("lty-playbtn"),this.append(e)),!e.textContent){const t=document.createElement("span");t.className="lyt-visually-hidden",t.textContent=this.playLabel,e.append(t)}this.addEventListener("pointerover",LiteYTEmbed.warmConnections,{once:!0}),this.addEventListener("click",e=>this.addIframe())}static addPrefetch(e,t,i){const n=document.createElement("link");n.rel=e,n.href=t,i&&(n.as=i),document.head.append(n)}static warmConnections(){LiteYTEmbed.preconnected||(LiteYTEmbed.addPrefetch("preconnect","https://www.youtube-nocookie.com"),LiteYTEmbed.addPrefetch("preconnect","https://www.google.com"),LiteYTEmbed.addPrefetch("preconnect","https://googleads.g.doubleclick.net"),LiteYTEmbed.addPrefetch("preconnect","https://static.doubleclick.net"),LiteYTEmbed.preconnected=!0)}addIframe(){const e=new URLSearchParams(this.getAttribute("params")||[]);e.append("autoplay","1");const t=document.createElement("iframe");t.width=560,t.height=315,t.title=this.playLabel,t.allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",t.allowFullscreen=!0,t.src=`https://www.youtube-nocookie.com/embed/${encodeURIComponent(this.videoId)}?${e.toString()}`,this.append(t),this.classList.add("lyt-activated"),this.querySelector("iframe").focus()}}customElements.define("lite-youtube",LiteYTEmbed);</script>
    						</div>
    					</div>
    				<?php } else { ?>
    					<div class="row">
    						<div><?php echo $description; ?></div>
    						<?php foreach ($videos as $video=> $video_id) { ?>
    						<div class="col-sm-6">
    							<lite-youtube videoid="<?php echo $video_id; ?>"></lite-youtube>
    						</div>
    						<?php } ?>
    						<script>class LiteYTEmbed extends HTMLElement{connectedCallback(){this.videoId=this.getAttribute("videoid");let e=this.querySelector(".lty-playbtn");if(this.playLabel=e&&e.textContent.trim()||this.getAttribute("playlabel")||"Play",this.posterUrl=`https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg`,LiteYTEmbed.addPrefetch("preload",this.posterUrl,"image"),this.style.backgroundImage=`url("${this.posterUrl}")`,e||((e=document.createElement("button")).type="button",e.classList.add("lty-playbtn"),this.append(e)),!e.textContent){const t=document.createElement("span");t.className="lyt-visually-hidden",t.textContent=this.playLabel,e.append(t)}this.addEventListener("pointerover",LiteYTEmbed.warmConnections,{once:!0}),this.addEventListener("click",e=>this.addIframe())}static addPrefetch(e,t,i){const n=document.createElement("link");n.rel=e,n.href=t,i&&(n.as=i),document.head.append(n)}static warmConnections(){LiteYTEmbed.preconnected||(LiteYTEmbed.addPrefetch("preconnect","https://www.youtube-nocookie.com"),LiteYTEmbed.addPrefetch("preconnect","https://www.google.com"),LiteYTEmbed.addPrefetch("preconnect","https://googleads.g.doubleclick.net"),LiteYTEmbed.addPrefetch("preconnect","https://static.doubleclick.net"),LiteYTEmbed.preconnected=!0)}addIframe(){const e=new URLSearchParams(this.getAttribute("params")||[]);e.append("autoplay","1");const t=document.createElement("iframe");t.width=560,t.height=315,t.title=this.playLabel,t.allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",t.allowFullscreen=!0,t.src=`https://www.youtube-nocookie.com/embed/${encodeURIComponent(this.videoId)}?${e.toString()}`,this.append(t),this.classList.add("lyt-activated"),this.querySelector("iframe").focus()}}customElements.define("lite-youtube",LiteYTEmbed);</script>
    					</div>
    				<?php } ?>
    				<?php } else { ?>
    				<?php echo $description; ?>
    				<?php } ?>
                    ]]></add>
                </operation>
            </file>
        </modification>

     

     

    • +1 2
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.