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

CTAH

Well-Known Member
Съветът, след инсталирането на 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".
 
От: Конфигуриране, оптимизиране, функции, статии за 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; }
 
}
 
}

И готово !!!
 
От: Конфигуриране, оптимизиране, функции, статии за OpenCart

За "Home"-линка и логото може да се изплзва и този vQmod
opencart.com/index.php?route=extension/extension/info&extension_id=10763
за да не се пипат системните файлове.
 
От: Конфигуриране, оптимизиране, функции, статии за 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" в папката "администратор" и "главната" на магазина директория.
 
От: Конфигуриране, оптимизиране, функции, статии за 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';
 
От: Конфигуриране, оптимизиране, функции, статии за OpenCart

Сега остава да обясниш на читателите и за най-наболелия проблем откъм забавяне - заявките на backend-а за броене на категории, подкатегории и продукти при всяко презареждане :)
 
От: Конфигуриране, оптимизиране, функции, статии за 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  - промените домейна
 
От: Конфигуриране, оптимизиране, функции, статии за 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 - няма разлика.
 
От: Конфигуриране, оптимизиране, функции, статии за OpenCart

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

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

Напишете в .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 и други, които сте пропуснали, например някой лпатежни системи също създават лоф файлове.

Ако се подходи по втория начин чрез 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:
 
От: Конфигуриране, оптимизиране, функции, статии за OpenCart

Код:
 <FilesMatch "\.(tpl|ini|log|txt)">
    Order deny,allow
    Deny from all
    </FilesMatch>
Така със txt не ограничаваме ли и достъпа до robots.txt ? В смисъл, няма ли да е проблем за обхождането на сайта?
ПП сега видях колегата какво е написал, благодаря за което:)
 
  • Like
Реакции: CTAH
От: Конфигуриране, оптимизиране, функции, статии за 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>
 
От: Конфигуриране, оптимизиране, функции, статии за 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>

Успех !


*слоган= девиз,мото,лозунг
 
От: Конфигуриране, оптимизиране, функции, статии за 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;

}
 
От: Конфигуриране, оптимизиране, функции, статии за 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
 
От: Конфигуриране, оптимизиране, функции, статии за 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){
 

Горе