Конфигуриране, оптимизиране, функции, статии за OpenCart

Дискусията в 'Онлайн Магазини' стартирана от CTAH, Окт 29, 2013.

  1. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    Съветът, след инсталирането на Opencart на уеб хостингa (методът е правен на версията на OpenCart 1.5.3.1 и OpenCart 1.5.4.1 )

    1) Отидете в администраторския панел, след това "Системни" - "Настройки" - Управление на магазини" - Натиснете бутона "Редактирай". Отиди в раздела "Сървър" и да намерят "Ключ за кодиране:" (стойността на която е даден 0e485dc46ab8fd0ca460340a0f7a3359). Заменете го със собствените си, или (UTF-8 формат).

    По пътя, в този раздел включваме SEO. Използвай оптимизирани адреси (SEO URL's): Щракнете върху бутона, Запази . В главната директория на сайта (магазина) се намира файла ". Htaccess.txt". Преименуване го на ". Htaccess" (задължително!). Много хора забравят да направят това и като следствие SEO URL адреси на страници не се генерират. Сега нашите с продукти, ще изглеждат, като : http://site.com/категория/име_на_продукта.html вместо: http://site.com/index.php?route=product/product&path=20&product_id=40.


    Преди съставянето на URL адреси (категории и продукти) препоръчваме да прочетете няколко малки статиики от типа "Правилни URL адреси - какво трябва да знаем"или "Онпейдж оптимизация" и тнт.Заради некоректни имена на URL-често срещаните проблеми и грешки. По-добре е да ги избегнете още в самото начало (наименуването на категории и продукти).


    2) За да се повиши сигурността на вашия онлайн магазин на OpenCart след инсталацията, не забравяйте да изтриете папката Install и промените правата на файловете: "config.php" и "/ Admin / config.php" на 444. Не е излишно и да защитим папка "Admin" с файлове ". Htpasswd" и ". Htaccess". Това означава, че Достъпът до него се получава само след въвеждане на потребителско име и парола. Това може да стане чрез уеб хостинг контролен панел Cpanel, или да се намери информация за защита на папки с ". Htpasswd" и ". Htaccess" в интернет / а там има много/

    Ако имате статичен IP-адрес, и вие сте сигурни, че той няма да се промени, той може да бъде поставен в директория "Admin" Htaccess файл със следните редове.:
    Код:
    Order Deny,Allow
     
    Deny from all
     
    Allow from Вашия_IP_адрес
    или да добавите тези редове, ако файлът ". Htaccess" вече съществува в "Admin".
     
    cross, 2fast4you, cloxy и 3 други харесват това.
  2. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Направете нормален линка, когато кликнете върху логото на сайта! (методът е правен на версията на OpenCart 1.5.3.1 и OpenCart 1.5.4.1 )

    Ако кликнете върху логото в горната част на сайта, с надпис "OpenCart" или върху връзката "Home" се отваря главната страница, но URL в адрес бара е нещо такова: http://site.com/index.php?route=common/home. Отстранете излишoто от URL, така че връзката при клик да приеме формата : http://site.com

    За да направите това, редактирайте файла "url.php" (system/library/url.php)

    Намерете редовете (25 до 27):

    Код:
    if ($args) {
    			$url .= str_replace('&', '&', '&' . ltrim($args, '&')); 
    		}
    След тях се добавят следните:

    Код:
     else {
     
    if($route == 'common/home') {
     
    if($connection == 'NONSSL') { return HTTP_SERVER; }
     
    else { return HTTPS_SERVER; }
     
    }
     
    } 
    И готово !!!
     
  3. agatha65

    agatha65 Active Member

    Рег.:
    Окт 17, 2013
    Съобщения:
    364
    Харесвания:
    104
    Точки:
    43
    Професия:
    web developer
    Място:
    Montreal, Canada
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    За "Home"-линка и логото може да се изплзва и този vQmod
    opencart.com/index.php?route=extension/extension/info&extension_id=10763
    за да не се пипат системните файлове.
     
  4. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Да се ​​отървем от дублиране на началната страница (методът е правен на версията на OpenCart 1.5.3.1 и OpenCart 1.5.4.1 )

    По принцип, главната страница на сайта е достъпно на следните адреси: http://www.site.com/, http://site.com/, http://site.com/index.php, http://www.site.com/index.php. Това е много лошо, защото за търсачките го считат за различни страници (различни URL)! Ако не се вземат мерки, тогава търсачките ще индексират четери единтични страници. И това е признак за лошо сайт! За да се избегнат подобни проблеми в файла "Htaccess.", разположен в главната директория на сайта. Дописваме след RewriteEngine в следните редове:

    Код:
     # Редирект c www на без www
     
    RewriteCond %{HTTP_HOST} ^www.site.ru
     
    RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
     
    # Редирект на главната (с /index.php на /)
     
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
     
    RewriteRule ^index\.html$ / [R=301,L]
     
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
     
    RewriteRule ^index\.php$ / [R=301,L] 
    Всички дублирани ще бъдат пренасочени към началната страница пренасочи с код 301 ("постоянно преместване") с главната страница - http://site.com/.
    Също така е препоръчително да насочим съответното главно огледало в файла robots.txt. В долната част на файла дописваме следния ред:

    Код:
     Host: site.com 
    Разбира се навсякъде, вместо site.com - използват свой ​​собствен домейн.

    Внимание! Случва се че след употреба на пренасочване от WWW с не-WWW или обратното, става невъзможно да се логнете като администратор. За да решим този проблем (като се използва FTP достъп до сайта) и погледнете за необходимостта да редактирате пътя във файла "config.php" в папката "администратор" и "главната" на магазина директория.
     
  5. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Как да премахнем или редактираме натписа "Работи на OpenCart" в долната част на страницата! (методът е правен на версията на OpenCart 1.5.3.1 и OpenCart 1.5.4.1 )

    В долната част на нашия сайт (онлайн магазин), виждаме, надпис и линк към сайта http://www.opencart.com

    Код:
     Your Store ©2012. Powered by OpenCart.
    Премахваме връзката и променяме надписа с свой. За да премахнете тези редове напълно - намерете файла "footer.tpl" (пътя: \catalog\view\theme\default\template\common). Ако използвате тема различна от default разбирасе тогава пътя ще е \catalog\view\theme\вашата тема\template\common

    Изтрийте реда в края на файла:
    Код:
     <div id="powered"><?php echo $powered; ?></div> 
    Или по-добре е на това място в "футера" да поставим код за прояч на посещеията, напрмер. Тогава реда ще изглежда тъка:

    Код:
     <div id="powered"><span>код_на_брояча_1</span> <span>код_на_брояча_2</span></div> 
    С CSS стилове могат да бъдат редактирани отстояние и подравняване на блока с броячи. За да направите това, отидете в папката \catalog\view\theme\default\stylesheet. Отворете файла "stylesheet.css". И в неговия край (ред 1627 приблизително) намираме идентификатора "powered"

    Код:
     #powered {
    margin-top: 5px;
    text-align: right;
    clear: both;
    }
    И коригираме, тъй като ни е угодно, за да постигнем красиво разположение на броячката в дъното на страницата.
    Ако просто искате да премахнете връзката към сайта www.opencart.com и да я замените с нещо свое то може да го направите в файла "footer.php" (път: \catalog\language\bulgarian\common). В долната част променяме информацията на реда:

    Код:
     $_['text_powered'] = 'Работи на <a href="http://opencart.com">OpenCart</a>
    %s &copy; %s'; 
     
  6. s1yf0x

    s1yf0x Well-Known Member

    Рег.:
    Юни 12, 2012
    Съобщения:
    2,387
    Харесвания:
    884
    Точки:
    113
    Пол:
    Мъж
    Професия:
    System administration
    Място:
    Sliven/Sofia
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Сега остава да обясниш на читателите и за най-наболелия проблем откъм забавяне - заявките на backend-а за броене на категории, подкатегории и продукти при всяко презареждане :)
     
  7. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Всяко нещо по реда си има време...
    Мисля днес или утре за роботите дапиша
     
  8. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    robots.txt за OpenCart

    Да недопусните индексиране на дублиращи се страници в OpenCart предлавам този robots.txt
    Ако нещо съм забравил, пропуснал да укава. Моля по-знаещите хора да допълнят и поправят!

    Код:
    
    User-agent: *
    
    Disallow: /admin
    Disallow: /cache
    Disallow: /niks
    Disallow: /catalog
    Disallow: /download
    Disallow: /export
    Disallow: /system
    Disallow: /index.php?route=account
    Disallow: /index.php?route=account/account
    Disallow: /index.php?route=checkout/cart
    Disallow: /index.php?route=checkout/shipping
    Disallow: /index.php?route=common/home
    Disallow: /index.php?route=product/product/captcha
    Disallow: /index.php?route=product/product*&manufacturer_id=
    Disallow: /index.php?route=product/search
    Disallow: /index.php?route=information/contact/captcha
    Disallow: /index.php?route=information/information&information_id=
    Disallow: /index.php?route=account/login
    Disallow: /*route=account/
    Disallow: /*route=account/login
    Disallow: /*route=checkout/
    Disallow: /*route=checkout/cart
    Disallow: /*route=affiliate/
    Disallow: /*route=product/search
    Disallow: /*?sort=
    Disallow: /*?sort
    Disallow: /*&sort=
    Disallow: /*?order=
    Disallow: /*?order
    Disallow: /*&order=
    Disallow: /*?limit=
    Disallow: /*&limit=
    Disallow: /*?filter_name=
    Disallow: /*&filter_name=
    Disallow: /*?filter_sub_category=
    Disallow: /*&filter_sub_category=
    Disallow: /*?filter_description=
    Disallow: /*&filter_description=
    Disallow: /*?tracking=
    Disallow: /*&tracking=
    Disallow: /*?manufacturer
    Disallow: /*?keyword
    Host: site.com  - промените домейна
    
    
     
  9. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Запушване на сериозна пробойна в OpenCart ( на практиак за всички версии до 1.5.4.1 включително)

    http://вашия_сайт/system/logs/error.txt

    И целият регистър на грешките е достъпен за всички
    Така не е добре, защото има SQL грешки, чрез които е възможно да получите името и адрес на MySQL сървъра, а също така разберете потребителско име и кешитаната парола на потребителя ( това е в случай на MySQL грешка при авторизация) която по принцип може да бъде разбита.

    За това по-често чистете лога на грешките или забранете достъпа до него в .htaccess , иначе през error.txt може да се узнае много за сайта.

    Пример от лога на един сайт и намерената сериозна грешка в него при това за не повече от минута.

    Код:
     SELECT command denied to user 'u138235'@'10.10.0....'..... 
    Напишете в .htaccess

    Код:
     <FilesMatch "error.(txt)$">
    Order Allow,Deny
    Deny from all
    </FilesMatch> 
    или

    Код:
     <FilesMatch "\.(tpl|ini|log|txt)">
        Order deny,allow
        Deny from all
        </FilesMatch>
    По този начин ще блокирате и достъпа до файла vqmod.log и други, които сте пропуснали, например някой лпатежни системи също създават лоф файлове.

    PS: поставяме кода края или в началото на .htaccess - няма разлика.
     
  10. Blinky

    Blinky Owner

    Рег.:
    Апр 12, 2006
    Съобщения:
    23,176
    Харесвания:
    1,911
    Точки:
    113
    Пол:
    Мъж
    Професия:
    Dev
    Място:
    Sofia
    Wow, супер си брат. :) Много добро, наистина. Признал съм те. ;)
     
  11. DonMakaveli

    DonMakaveli Well-Known Member

    Рег.:
    Апр 18, 2009
    Съобщения:
    1,087
    Харесвания:
    65
    Точки:
    48
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    СТАН е Великан
     
  12. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    eчла пък толкова ....

    само 130 кила съм

     
  13. stan_bg

    stan_bg Active Member

    Рег.:
    Ян 15, 2013
    Съобщения:
    272
    Харесвания:
    63
    Точки:
    28
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Браво за темата и отделеното време от СТАН. Темата ще бъде полезна за много начинаещи, които тепърва ще се занимават с тази система.

    Имам една миниатюрна забележка относно поста за Запушване на сериозна пробойна в OpenCart:

    Ако се подходи по втория начин чрез regex шаблона поместен в директивата FilesMatch ще се забрани достъпа до всички текстови файлове, включително и до robots.txt, което е нежелателно, ако го има. Наскоро в ГитХъб направиха следната реализация, която ще се използва и за следващите версии :

    Код:
    <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
       Order deny,allow
       Deny from all
      </FilesMatch>
    Чрез изпозлването на отрицателен look-behind(поглед назад) и case-insensitive в regex шаблона се оказва да бъде забранен достъпа на изброените файлови разширения tpl, ini, log и txt с изключение обаче на текстов файл robots.txt

    Това е, продължавай и занапред с полезните съвети. :wink:
     
    Blinky и coolice харесват това.
  14. kokovi4

    kokovi4 Active Member

    Рег.:
    Март 7, 2013
    Съобщения:
    188
    Харесвания:
    38
    Точки:
    28
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Така със txt не ограничаваме ли и достъпа до robots.txt ? В смисъл, няма ли да е проблем за обхождането на сайта?
    ПП сега видях колегата какво е написал, благодаря за което:)
     
    CTAH харесва това.
  15. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    You must spread some Reputation around before giving it to stan_bg again.
     
    glndrk харесва това.
  16. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Конфигуриране и съвети по модул "Приветствие" (методът е правен на версията на OpenCart 1.5.3.1 и OpenCart 1.5.4.1 )


    Модулът "Приветствие" необходим за да опишем магазина (какво продаваме,слуги, който предлагаме и т.н.). Препоръчвам да включите модула "Приветствие", който тъка или иначе е в магазина. Той дава на потребителя основна информация и представя онлайн магазина, неговите продукти, характеристики особености и работа. Уникално и добре написано описание (1000 - 1500 знака) ще позволи на търсачките да класира вашия сайт по-добре.

    Така че, първо да инсталирате модула.

    В админ панела търсите: Разширения/Допълнителни модули/изберете "Приветствие" (обикновено е най-долу), кликнете на [ Инсталирай ] след това [ Редактирай ] . След това Добави модул. Напишете вашето съобщение и включете модула. Актуализиране на главната страница, модулът е включен, но има един лош момент, а именно надпис "Добре дошли в My Store" и не може да го променим от администраторския панел. "My Store" - е името на сайта (магазина). Следователно името може да бъде нещо, като "Мобилни телефони", "Климатици и сплит системи", "Преносими компютри Uryupinsk - продажби, цени" и т.н. Съгласете се, че заглавието поздрав като "Добре дошли на преносими компютри Uryupinsk - продажби, цени" не съвсем добре.

    За да се промени това положение, да направи промени във файла "welcome.php" (пътя:\catalog\language\bulgarian\module) Там има само 3 реда!

    Код:
     <?php $_['heading_title'] = 'Добре дошли в %s'; ?> 

    Премахваме излишно, а именно фразата "Добре дошли". Получава се това, което трябва - добро заглавие:
    Код:
     <?php $_['heading_title'] = ' %s'; ?> 
    Сега малко оптимизиране на заглавието. Ако видите изходния код на началната страница, името на сайта в поздрава ( "My Store") то е с следната структура:

    Код:
    <div ="<a class="attribute-value">welcome</a>">My Store</div>
    За оптимизация на сайта и по-добро класиране в серпа името на магазина трябва да е в тага <h1>

    Код:
     <h1> My Store </ h1> 
    За да направите това, отворете файла welcome.tpl (пътя:\catalog\view\theme\default\template\module):

    Код:
     <div class="welcome"><?php echo $heading_title; ?></div> <?php echo $message; ?> 
    Сменяме го на:
    Код:
    <h1><?php echo $heading_title; ?></h1> <?php echo $message; ?>
    Стилът на заглавието (големината на шрифта, цвета, разстоянието и т.н.), промяна във файл stylesheet.css (редове 16-24):

    Код:
    h1, .welcome {
     
    					color: #636E75;
     
    					font-family: Verdana;
     
    					margin-top: 0px;
     
    					margin-bottom: 20px;
     
    					font-size: 32px;
     
    					font-weight: normal;
     
    					text-shadow: 0 0 1px rgba(0, 0, 0, .01);
     
    				  }
    Както можем да видим за заглавието h1 и класа welcome стойностите на стилоа са едни и същи.

    При разглеждане на изходния код на главната страница срещаме още един таг <h1> с името на магазина

    Код:
    <h1 style="display: none;"> My Store </ h1> <span class="end-tag">
    Той е разположен в горната част на въртележката на производителите, но заради атрибута "display: none;" не е видим за потребителите, но перфектно се вижда от търсене роботи. Два h1 тага на една страницата - не е добре. Затова, забърсваме невидимия. За да направите това във файла "home.tpl (пътя: \catalog\view\theme\default\template\common) премахваме реда:

    Код:
    <h1 style="display: none;"><?php echo $heading_title; ?></h1>
     
  17. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Как да поставите надпис (слоган* или телефон) в дясно на логото в хедъра? (методът е правен на версията на OpenCart 1.5.3.1 и OpenCart 1.5.4.1 )

    Отваряте header.tpl с любимия си текстов редактор (път: catalog/view/theme/вашата тема/template/common/header.tpl) и намирате следните редове:

    Код:
     <div id="header">
      <?php if ($logo) { ?>
      <div id="logo"><a href="<?php echo $home; ?>"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /></a> 
    И след него дописваме :
    Код:
     <span class="slogan"> Вашия текст </span>
    Разбирасе текста може да бъде окрасен с стандартните стилове и да стане нещо такова:
    Код:
    <span class="slogan" style = "font-weight:bold;color:red;font-size:20px;text-decoration:underline;"> Вашя текст </span> 
    Успех !


    *слоган= девиз,мото,лозунг
     
  18. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Контакти в хедара

    Създаване на форма в администраторския панел (номер, име и икона);
    Премахване на данните от горепосочените форми.
    На точното място за нас (в шапка OpenCart).

    Ще редактирате следните файлове (направете копия, бекъп)

    \admin\controller\setting\setting.php
    \admin\view\template\setting\setting.tpl
    \admin\language\bulgarian\setting\setting.php
    \admin\language\bulgarian\russian.php
    \catalog\controller\common\header.php
    \catalog\view\theme\default\template\common\header.tpl

    OpenCart 1.5.4.1

    1.0. Нека да започнем с
    \admin\controller\setting\setting.php

    1.1. търси:
    $this->data['entry_address'] = $this->language->get('entry_address');
    вмъкнете след:
    / /Контакти - свързване на модула с езика
    $this->data['entry_contact_namber'] = $this->language->get('entry_contact_namber');
    $this->data['entry_contact_icon'] = $this->language->get('entry_contact_icon');
    $this->data['entry_contact_name'] = $this->language->get('entry_contact_name');
    $this->data['entry_contact_margin_left'] = $this->language->get('entry_contact_margin_left');
    $this->data['entry_contact_img_from'] = $this->language->get('entry_contact_img_from');

    1.2. намираме:
    $this->data['button_cancel'] = $this->language->get('button_cancel');

    вмъкнете след:
    $this->data['tab_contacts'] = $this->language->get('tab_contacts');

    1.3. в същия файл търсите:
    $files = glob(DIR_SYSTEM . 'smsgate/*.php');

    вмъкнете след:
    / / Ще покаже грешка, ако пътят до иконата не е зададен правилно.
    if (isset($this->error['img_from_error'])) {
    $this->data['error_config_contact_img_from'] = $this->error['img_from_error'];
    } else {
    $this->data['error_config_contact_img_from'] = '';
    }

    / / Ще покаже грешка, ако отстъпа /маргина/ е указан неправилно
    if (isset($this->error['margin_left_error'])) {
    $this->data['error_config_contact_margin_left'] = $this->error['margin_left_error'];
    } else {
    $this->data['error_config_contact_margin_left'] = '';
    }

    1.4. след това намери в съшия файл:
    if (isset($this->request->post['config_address'])) {
    $this->data['config_address'] = $this->request->post['config_address'];
    } else {
    $this->data['config_address'] = $this->config->get('config_address');
    }

    вмъкнете след:
    / /Взима и Добавя данните за формата " пътя до папка с иконата"
    if (isset($this->request->post['config_contact_img_from'])) {
    $this->data['config_contact_img_from'] = $this->request->post['config_contact_img_from'];
    } else {
    $this->data['config_contact_img_from'] = $this->config->get('config_contact_img_from');
    }

    / /Взима и Добавя данните за формата "отстъп от ляво"
    if (isset($this->request->post['config_contact_margin_left'])) {
    $this->data['config_contact_margin_left'] = $this->request->post['config_contact_margin_left'];
    } else {
    $this->data['config_contact_margin_left'] = $this->config->get('config_contact_margin_left');
    }

    ///contact 1 ------------------------------------------------------------------------
    if (isset($this->request->post['config_contact_namber1'])) {
    $this->data['config_contact_namber1'] = $this->request->post['config_contact_namber1'];
    } else {
    $this->data['config_contact_namber1'] = $this->config->get('config_contact_namber1');
    }
    if (isset($this->request->post['config_contact_icon1'])) {
    $this->data['config_contact_icon1'] = $this->request->post['config_contact_icon1'];
    } else {
    $this->data['config_contact_icon1'] = $this->config->get('config_contact_icon1');
    }
    if (isset($this->request->post['config_contact_name1'])) {
    $this->data['config_contact_name1'] = $this->request->post['config_contact_name1'];
    } else {
    $this->data['config_contact_name1'] = $this->config->get('config_contact_name1');
    }
    if (isset($this->request->post['config_contact_phontime1'])) {
    $this->data['config_contact_phontime1'] = $this->request->post['config_contact_phontime1'];
    } else {
    $this->data['config_contact_phontime1'] = $this->config->get('config_contact_phontime1');
    }
    if (isset($this->request->post['config_contact_department1'])) {
    $this->data['config_contact_department1'] = $this->request->post['config_contact_department1'];
    } else {
    $this->data['config_contact_department1'] = $this->config->get('config_contact_department1');
    }

    ///contact 2 ------------------------------------------------------------------------
    if (isset($this->request->post['config_contact_namber2'])) {
    $this->data['config_contact_namber2'] = $this->request->post['config_contact_namber2'];
    } else {
    $this->data['config_contact_namber2'] = $this->config->get('config_contact_namber2');
    }
    if (isset($this->request->post['config_contact_icon2'])) {
    $this->data['config_contact_icon2'] = $this->request->post['config_contact_icon2'];
    } else {
    $this->data['config_contact_icon2'] = $this->config->get('config_contact_icon2');
    }
    if (isset($this->request->post['config_contact_name2'])) {
    $this->data['config_contact_name2'] = $this->request->post['config_contact_name2'];
    } else {
    $this->data['config_contact_name2'] = $this->config->get('config_contact_name2');
    }
    if (isset($this->request->post['config_contact_phontime2'])) {
    $this->data['config_contact_phontime2'] = $this->request->post['config_contact_phontime2'];
    } else {
    $this->data['config_contact_phontime2'] = $this->config->get('config_contact_phontime2');
    }
    if (isset($this->request->post['config_contact_department2'])) {
    $this->data['config_contact_department2'] = $this->request->post['config_contact_department2'];
    } else {
    $this->data['config_contact_department2'] = $this->config->get('config_contact_department2');
    }

    ///contact 3 ------------------------------------------------------------------------
    if (isset($this->request->post['config_contact_namber3'])) {
    $this->data['config_contact_namber3'] = $this->request->post['config_contact_namber3'];
    } else {
    $this->data['config_contact_namber3'] = $this->config->get('config_contact_namber3');
    }
    if (isset($this->request->post['config_contact_icon3'])) {
    $this->data['config_contact_icon3'] = $this->request->post['config_contact_icon3'];
    } else {
    $this->data['config_contact_icon3'] = $this->config->get('config_contact_icon3');
    }
    if (isset($this->request->post['config_contact_name3'])) {
    $this->data['config_contact_name3'] = $this->request->post['config_contact_name3'];
    } else {
    $this->data['config_contact_name3'] = $this->config->get('config_contact_name3');
    }
    if (isset($this->request->post['config_contact_phontime3'])) {
    $this->data['config_contact_phontime3'] = $this->request->post['config_contact_phontime3'];
    } else {
    $this->data['config_contact_phontime3'] = $this->config->get('config_contact_phontime3');
    }
    if (isset($this->request->post['config_contact_department3'])) {
    $this->data['config_contact_department3'] = $this->request->post['config_contact_department3'];
    } else {
    $this->data['config_contact_department3'] = $this->config->get('config_contact_department3');
    }

    ///contact 4 ------------------------------------------------------------------------
    if (isset($this->request->post['config_contact_namber4'])) {
    $this->data['config_contact_namber4'] = $this->request->post['config_contact_namber4'];
    } else {
    $this->data['config_contact_namber4'] = $this->config->get('config_contact_namber4');
    }
    if (isset($this->request->post['config_contact_icon4'])) {
    $this->data['config_contact_icon4'] = $this->request->post['config_contact_icon4'];
    } else {
    $this->data['config_contact_icon4'] = $this->config->get('config_contact_icon4');
    }
    if (isset($this->request->post['config_contact_name4'])) {
    $this->data['config_contact_name4'] = $this->request->post['config_contact_name4'];
    } else {
    $this->data['config_contact_name4'] = $this->config->get('config_contact_name4');
    }
    if (isset($this->request->post['config_contact_phontime4'])) {
    $this->data['config_contact_phontime4'] = $this->request->post['config_contact_phontime4'];
    } else {
    $this->data['config_contact_phontime4'] = $this->config->get('config_contact_phontime4');
    }
    if (isset($this->request->post['config_contact_department4'])) {
    $this->data['config_contact_department4'] = $this->request->post['config_contact_department4'];
    } else {
    $this->data['config_contact_department4'] = $this->config->get('config_contact_department4');
    }

    ///contact 5 ------------------------------------------------------------------------
    if (isset($this->request->post['config_contact_namber5'])) {
    $this->data['config_contact_namber5'] = $this->request->post['config_contact_namber5'];
    } else {
    $this->data['config_contact_namber5'] = $this->config->get('config_contact_namber5');
    }
    if (isset($this->request->post['config_contact_icon5'])) {
    $this->data['config_contact_icon5'] = $this->request->post['config_contact_icon5'];
    } else {
    $this->data['config_contact_icon5'] = $this->config->get('config_contact_icon5');
    }
    if (isset($this->request->post['config_contact_name5'])) {
    $this->data['config_contact_name5'] = $this->request->post['config_contact_name5'];
    } else {
    $this->data['config_contact_name5'] = $this->config->get('config_contact_name5');
    }
    if (isset($this->request->post['config_contact_phontime5'])) {
    $this->data['config_contact_phontime5'] = $this->request->post['config_contact_phontime5'];
    } else {
    $this->data['config_contact_phontime5'] = $this->config->get('config_contact_phontime5');
    }
    if (isset($this->request->post['config_contact_department5'])) {
    $this->data['config_contact_department5'] = $this->request->post['config_contact_department5'];
    } else {
    $this->data['config_contact_department5'] = $this->config->get('config_contact_department5');
    }
    ///contact end ------------------------------------------------------------------------


    1.5. намерите:
    if ((utf8_strlen($this->request->post['config_email']) > 96) || !preg_match('/^[^\@]+@.*\.[a-z]{2,6}$/i', $this->request->post['config_email'])) {
    $this->error['email'] = $this->language->get('error_email');
    }

    вмъкнете след:
    if ((utf8_strlen($this->request->post['config_contact_img_from']) < 3) || !preg_match('/^[\/][a-z]\S+[\/]\S+/i',$this->request->post['config_contact_img_from'])) {
    $this->error['img_from_error'] = $this->language->get('error_config_contact_img_from');
    }

    if ((utf8_strlen($this->request->post['config_contact_margin_left']) < 0) || !preg_match('/^[0-9]/i',$this->request->post['config_contact_margin_left'])) {
    $this->error['margin_left_error'] = $this->language->get('error_config_contact_margin_left');
    }

    Приключихме с този файл.



    2.0. Отворете
    \admin\view\template\setting\setting.tpl

    намираме:
    <a href="#tab-general"> <? PHP ехо $ tab_general;?> </а>

    вмъкнете след:
    <a href="#tab-store"> <PHP ехо $ tab_store;?> </а>

    2.1. в същия файл търсите:
    <tr>
    <td><?php echo $entry_fax; ?></td>
    <td><input type="text" name="config_fax" value="<?php echo $config_fax; ?>" /></td>
    </tr>
    </table>
    </div>

    вмъкнете след:

    <div id="tab_contacts">
    <?php echo $entry_contact_img_from; ?> <input type="text" style="width: 250px;" name="config_contact_img_from" value="<?php echo $config_contact_img_from; ?>" />
    <?php if ($error_config_contact_img_from) { ?>
    <?php echo $error_config_contact_img_from; ?>
    <?php } ?>
    <?php echo $entry_contact_margin_left; ?> <input type="text" name="config_contact_margin_left" value="<?php echo $config_contact_margin_left; ?>" />px
    <?php if ($error_config_contact_margin_left) { ?>
    <?php echo $error_config_contact_margin_left; ?>
    <?php } ?>
    <table class="contact_list">
    <thead>
    <tr>
    <td class="namber"> № </td>
    <td class="center"><?php echo $entry_contact_namber; ?></td>
    <td class="center"><?php echo $entry_contact_icon; ?></td>
    <td class="center"><?php echo $entry_contact_name; ?></td>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td class="right">1</a>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_namber1" value="<?php echo $config_contact_namber1; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_icon1" value="<?php echo $config_contact_icon1; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_name1" value="<?php echo $config_contact_name1; ?>" /></td>
    </tr>
    <tr>
    <td class="right">2</a>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_namber2" value="<?php echo $config_contact_namber2; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_icon2" value="<?php echo $config_contact_icon2; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_name2" value="<?php echo $config_contact_name2; ?>" /></td>
    </td>
    </tr>
    <tr>
    <td class="right">3</a>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_namber3" value="<?php echo $config_contact_namber3; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_icon3" value="<?php echo $config_contact_icon3; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_name3" value="<?php echo $config_contact_name3; ?>" /></td>
    </td>
    </tr>
    <tr>
    <td class="right">4</a>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_namber4" value="<?php echo $config_contact_namber4; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_icon4" value="<?php echo $config_contact_icon4; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_name4" value="<?php echo $config_contact_name4; ?>" /></td>
    </td>
    </tr>
    <tr>
    <td class="right">5</a>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_namber5" value="<?php echo $config_contact_namber5; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_icon5" value="<?php echo $config_contact_icon5; ?>" /></td>
    <td class="left"><input type="text" style="width: 250px;" name="config_contact_name5" value="<?php echo $config_contact_name5; ?>" /></td>
    </td>
    </tr>
    </tbody>
    </table>
    </div>

    3.0. Работим с файл
    \catalog\controller\common\header.php

    3.1. търсите:
    if ($this->config->get('config_logo') && file_exists(DIR_IMAGE . $this->config->get('config_logo'))) {
    $this->data['logo'] = $server . $this->config->get('config_logo');
    } else {
    $this->data['logo'] = '';
    }

    вмъкнете след:

    // отстъп на иконата в ляво (margin_left) и пътя към папката с икони (img_from)

    // отступ иконки левый (margin_left) и пусть к папку с иконками (img_from)
    $this->data['config_contact_margin_left'] = $this->config->get('config_contact_margin_left');
    $this->data['config_contact_img_from'] = $this->config->get('config_contact_img_from');
    // контакт 1
    $this->data['config_contact_namber1'] = $this->config->get('config_contact_namber1');
    $this->data['config_contact_icon1'] = $this->config->get('config_contact_icon1');
    $this->data['config_contact_name1'] = $this->config->get('config_contact_name1');

    // контакт 2
    $this->data['config_contact_namber2'] = $this->config->get('config_contact_namber2');
    $this->data['config_contact_icon2'] = $this->config->get('config_contact_icon2');
    $this->data['config_contact_name2'] = $this->config->get('config_contact_name2');

    // контакт 3
    $this->data['config_contact_namber3'] = $this->config->get('config_contact_namber3');
    $this->data['config_contact_icon3'] = $this->config->get('config_contact_icon3');
    $this->data['config_contact_name3'] = $this->config->get('config_contact_name3');

    // контакт 4
    $this->data['config_contact_namber4'] = $this->config->get('config_contact_namber4');
    $this->data['config_contact_icon4'] = $this->config->get('config_contact_icon4');
    $this->data['config_contact_name4'] = $this->config->get('config_contact_name4');

    // контакт 5
    $this->data['config_contact_namber5'] = $this->config->get('config_contact_namber5');
    $this->data['config_contact_icon5'] = $this->config->get('config_contact_icon5');
    $this->data['config_contact_name5'] = $this->config->get('config_contact_name5');

    4.0. Отворете файла
    \admin\language\bulgarian\setting\setting.php

    търсите:
    // Entry

    вмъкнете след:
    $ _ ['Entry_contact_namber'] = 'Номер';
    $ _ ['Entry_contact_icon'] = "Икона";
    $ _ ['Entry_contact_name'] = "Име";
    $ _ ['Entry_contact_phontime'] = 'Работно време';
    $ _ ['Entry_contact_department'] = 'Отдел ";
    $ _ ['Entry_contact_img_from'] = 'Път до иконата ";
    $ _ ['Entry_contact_margin_left'] = Отстъп на текста в ляво ";

    4.1. в същия файл намираме:
    // Error

    вмъкнете след:

    $_['error_config_contact_img_from'] = '<span style="color: red">Проверете пътя до папката. Трябва да започва и да завършва с " / " " <b>/</b> ". <b>Без интервали</b>. Например: <b>/</b>image/contact_icon<b>/</b></span>';
    $_['error_config_contact_margin_left'] = '<span style="color: red">Отстъпа в ляво може да бъде само число. Въведете<b> цяло число</b> за отстъп!</span>';


    5.0. Работим с файл:
    \admin\language\bulgarian\bulgarian.php

    намерите:
    $_['tab_store'] = 'Магазин';

    вмъкнете след:
    $_['tab_contacts'] = 'Контакти';

    6.0. Поставяне на контактите на правилното място. файл:
    \catalog\view\theme\default\template\common\header.tpl

    поставите данните на мястото, където искате да се виждат.
    <div id="contact_bg">
    <div id="contact_info_head1">
    <div style="padding-left:<?php echo $config_contact_margin_left; ?>px; height: 16px; line-height: 16px; background: url('<?php echo $config_contact_img_from; ?><?php echo $config_contact_icon1; ?>') no-repeat; background-size: auto; "><?php echo $config_contact_namber1; ?> <?php echo $config_contact_name1; ?>
    </div>
    <div style="padding-left:<?php echo $config_contact_margin_left; ?>px; height: 16px; line-height: 16px; background: url('<?php echo $config_contact_img_from; ?><?php echo $config_contact_icon2; ?>') no-repeat; background-size: auto; "><?php echo $config_contact_namber2; ?> <?php echo $config_contact_name2; ?>
    </div>
    <div style="padding-left:<?php echo $config_contact_margin_left; ?>px; height: 16px; line-height: 16px; background: url('<?php echo $config_contact_img_from; ?><?php echo $config_contact_icon3; ?>') no-repeat; background-size: auto; "><?php echo $config_contact_namber3; ?> <?php echo $config_contact_name3; ?>
    </div>
    <div style="padding-left:<?php echo $config_contact_margin_left; ?>px; height: 16px; line-height: 16px; background: url('<?php echo $config_contact_img_from; ?><?php echo $config_contact_icon4; ?>') no-repeat; background-size: auto; "><?php echo $config_contact_namber4; ?> <?php echo $config_contact_name4; ?>
    </div>
    <div style="padding-left:<?php echo $config_contact_margin_left; ?>px; height: 16px; line-height: 16px; background: url('<?php echo $config_contact_img_from; ?><?php echo $config_contact_icon5; ?>') no-repeat; background-size: auto; "><?php echo $config_contact_namber5; ?> <?php echo $config_contact_name5; ?>
    </div>
    </div>
    </div>


    Забележка!
    В този пример, всички данни се извежда в контейнер:
    <div id="contact_bg">
    <div id="contact_info_head1">
    ...
    </div></div>

    стила тях:
    #header #contact_bg {
    position: absolute;
    background: url("../image/contact_header_bg.gif") center no-repeat;
    width: 277px;
    height: 100px;
    right: 0px;
    left: 300px;
    top: 5px;
    }
    #header #contact_info_head1 {
    position: absolute;
    width:240px;
    left: 10px;
    top: 10px;
    text-align:left;
    font-size: 12px;
    color: #E8E8E8;
    z-index: 8;

    }
     
  19. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

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


    Отворете файла: /catalog/view/javascript/common.js
    Премахвате превъртането на страницата нагоре

    Код:
     $('html, body').animate({ scrollTop: 0 }, 'slow');  
    След това заменете реда:
    Код:
    $('.success').fadeIn('slow');
    С

    Код:
     $('.success').dialog({modal: true,buttons: {Ok: function() {$( this ).dialog( "close" );}}}); 
    Същото нещо трябва да се направи във файла product.tpl във вашата тема, за да работи на страницата на продукта.

    Демото е на версия 1.5.4.1
     
  20. CTAH

    CTAH Well-Known Member

    Рег.:
    Май 22, 2012
    Съобщения:
    2,585
    Харесвания:
    451
    Точки:
    83
    Пол:
    Мъж
    Място:
    Бургас
    От: Конфигуриране, оптимизиране, функции, статии за OpenCart

    Качване на големи снимки

    По подразбиране OpenCart има ограничение за размера на снимката за качване,по-голям от 300 KB и разделителна способност на повече от 1000 на 1000 пиксела. Да го оправим!

    За да премахнете ограниченията върху размера на файла, променете контролера admin/controller/common/filemanager.php

    Намерете реда:
    Код:
     if ($this->request->files['image']['size'] > 300000) {
    	$json['error'] = $this->language->get('error_file_size');
    } 
    И променяте стойноста 300000, това е размера в байтове, но това което на нас ни е нужно е например 3000000 - 3MB

    За да премахнете ограниченията върху размера на изображението 1000 на 1000 пиксела (в последните версии на OpenCart не е нужно, в тях това ограничение отсъства)

    Редактирате реда:
    Код:
     $imageinfo = getimagesize($this->request->files['image']['tmp_name']);
    		if($imageinfo[0]>1000 || $imageinfo[1]>1000){ 
     
    Blinky харесва това.

Сподели страницата

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies.
    Dismiss Notice