NC URL в OpenCart 2

NC URL в OpenCart 2

В тази статия ще разгледаме какво се случва, когато CNC е включен. Тя ще позволи на разработчиците да разберат по-добре как работи OpenCart с URL и да работи в промените, подобряване на CNC работа, за да се създадат необходимите допълнения.

Аз използвам ocStore - руската версия на OpenCart с някои подобрения, като например модулът NC - SeoPro. Този модул замества стандартната функционалност на формирането на ЦПУ в OpenCart на двигателя, най-вече премахва дубликати и други страници. След това ще опиша работата на NC въз основа на този модул, въпреки че на принципа на общата. Ако използвате редовно версия OpenCart. вместо ocStore - Съветвам ви да си изтеглите безплатно SeoPro модул.


Файлът система \ framework.php създава обект от клас Front:
Той запазва собствеността addPreAction си гама от официални действия, които трябва да се изпълни автоматично след зареждане всички библиотеки. Този масив се съхранява във файловата система \ конфигурационния \ catalog.php или система \ конфигурационния \ admin.php за администратор. Във версията за фронтенд тя съдържа масив
когато последният елемент е "стартиране /'.$ seo_type съдържащ избран вариант организация NC (името на контролера).

Освен това, във файловата система \ framework.php има метод на разговор изпращане () Front Controllera:
който предава за извършване на действие (контролери), първият елемент от които е ControllerStartupRouter. който се предава от конфигурацията масив команда $ конфигурирана на> получите ( "action_router"). Вторият аргумент премина към действието на извеждане страница за грешка, ако, например, страницата, която търсите не е намерена.
изпращането на метод () Front Controllera случва заместник повикване действията на услуги, които са били прехвърлени в аванс и трябва да се нарича най-новата стандартна URL разбор контролера, включващ определяне на маршрута.

Но има условие - ако един от действието се завръща в резултат на изпълнението му и резултатът е един клас обект действие - този резултат ще презапише ефектът от които е прехвърлена на изпращането на метод () като първи аргумент (Action $ действие):
задействане на управлението за обработка URL NC, просто връща резултата. Ето защо, по-нататъшното изпълнение не получава аргумент $ действие (метод за извършване на стартиране рутер индекс / контролер предаване) и контролер / метода на върнати след анализирането на контролера CNC или друг ControllerStartupSeoPro показан за ЦПУ.


Помислете за стандартен начин за създаване на CNC когато опция «SeoPro», който сте избрали.

Наречен ControllerStartupSeoPro контролер от каталог файл \ контролер \ стартиране на \ seo_pro.php
Чрез създаването на обекта, проектантът през линия
до $ cache_data имот притежава набор от всички стойности от url_alias таблицата база данни. Псевдоними са съкратени фрази тази рамка ще търсят контролер / метода да бъдат изпълнени.
Се извършва индекс () метод. където в един ред
Проверява дали самото параметри «_route_». Ако не е - тя се извършва метод бъдат потвърдени (). или генериране на главната страница на страница или на грешка. Ако има - кодът се изпълнява на. А именно:
- _route_ стойност на URL адреса се съхранява в променливата $ route_ и в същото време в маршрута $ с премахването на възможността за Заявка за обекта на.
линии
параметри на _route_ разделени от сепаратора към масив от стойности на плана:
и се съхранява в масив $ части.

Освен взети последния елемент на масива получава GET-параметри и използване взривят () функция отново скрипт се опитва да го разделя на масива от сепаратор (точкови) стойности. Резултатът се определя на променливата $ last_part:
След това тя съдържа масиви от низове, се добавят към това, което е в променливите елементи $ за отстраняване на последния елемент на масива тя. В нашия пример, колона компонент / следи последните трансформации не се променят първоначалните масив $ части.

По-късно в цикъла, нов масив $ редове. къде са ключовете елементи на параметрите на GET и ценности - псевдоними, които отговарят на елементите на url_alias маса. които са били съхранявани в конструктор имот $ cache_data на. например:

Освен това, наличието на низа се проверява
компонент / монитор /
в променлива маршрута $
в url_alias маса. В нашия случай, няма да бъдат намерени, в противен случай стойността на променливата $ редове ще бъде пренаписана.

Във всеки случай, наличието на данни в таблицата с псевдоним, който може да бъде проверена в следния вид:
данните се превръща. На първо място, в цикъла под формата
и след това се проверява дали category_id параметър масив. какво означава определени заглавия на страниците. Ако е така, той определя свойствата $ това-> поискване-> получат [ 'път']. В нашия пример това ще бъде:
Тази опция ще се използва в контролера, който ще се нарича (каталог \ контролер \ продукт \ category.php).

Допълнителни тестове, последвано от образуване на блок параметър $ това-> поискване-> се [ 'маршрут'], който се състои от контролер, индексът на метод (), която трябва да бъде изпълнена. В този пример продукт / категория.

Ако стойността е там, то се предава на обекта за действие, за да съхранявате и си спомни за в бъдеще:

Е, след това, което се случва е, което аз написах в началото - в резултат на разговора ще замени метода на индекса на стартиране / рутер контролер (). който е трябвало да се даде възможност на разбор на URL без да се налага CNC опция маршрут.

Имате нужда от уеб сайт? Бихте ли искали да предложим сътрудничество? Връзка - контакт.