- Што такое дадатковае поле ў DataLife Engine
- Перакрыжаванае спасылкі ў доп. палях
- Мяняем xfsearch ў URL старонак крыжаваных спасылак у доп. палях на назву доп поля. + Старонкі пагинации
- Мяняем метатега TITLE на старонках тэгаў і дадатковых палёў
- Як размясціць тэкст апісання на старонках доп. палёў у DLE
- Модуль для SEO аптымізацыі доп. палёў у DLE
Добрага часу сутак, дарагія чытачы блога Мае прусакі!
xfsearch ў DataLife Engine
Сёння, упершыню, у маім блогу пойдзе гаворка аб сістэме кіравання сайтам DataLife Engine (DLE). Дакладней не пра самае DLE а канкрэтна пра выснову дадатковых палёў і розных спосабу змены xfsearch ў URL на што нешта больш падыходнае. Для тых, хто не знаёмы з гэтым рухавічком, напісанае ніжэй будзе цалкам незразумелым, але для тых, хто ў тэме, дадзены пост, думаю, будзе нават вельмі карысны. Хоць, магчыма, і той, хто прывык працаваць з WordPress знойдзе для сябе што ні будзь цікавае.
Пост атрымаўся даволі грувасткі, таму я зрабіў змест для навігацыі.
1. Што такое дадатковае поле .
2. Што такое перакрыжаванае спасылкі ў доп. палях.
3. Мяняем xfsearch ў URL старонак крыжаваных спасылак у доп. палях на назву доп поля. + Старонкі пагинации.
4. Мяняем метатега TITLE на старонках тэгаў і дадатковых палёў
5. Як размясціць тэкст апісання на старонках доп. палёў у DLE
6. Модуль для SEO аптымізацыі доп. палёў у DLE (падобны на TagFace)
Даўно я не пісаў такіх аб'ёмных артыкулаў, у прынцыпе, я наогул даўно не пісаў, а тут ТАКОЕ. Апошні раз нешта падобнае было гэта пост пра аднаўленні Хрому а да гэтага парады па аднаўленні дадзеных пасля пераўсталёўкі Вінды . Спадзяюся мой мануальчик вам спатрэбіцца.
Што такое дадатковае поле ў DataLife Engine
І так, для пачатку давайце разбярэмся, што сабой уяўляюць дадатковыя поля ў DLE. Дадатковымі палямі можна назваць пашырэнне для больш зручнага дадання матэрыялаў на сайт. Калі зазірнуць на старонку дадання навіны, мы выявім, што там ужо існуе некалькі палёў. Гэта загаловак, дата, катэгорыя, кароткая навіна, поўная навіну і г.д.
Магчымасці дадзенага рухавічка прадугледжваюць даданне ўласных палёў. Возьмем, да прыкладу, які ні будзь киносайт (DLE больш за ўсё падыходзіць для стварэння киносайтов сайтаў). Як я ўжо казаў, у нас ужо ёсць кароткае апісанне (выводзіцца ў стужцы навін) і поўнае апісанне на поўнай старонцы матэрыялу. Але акрамя апісання мы хочам паказаць рэжысёра фільма, акцёрскі склад, год выпуску і зрабіць гэта так каб гэтыя радкі візуальна адрозніваліся ад усяго апісання. Для гэтага і існуюць дадатковыя поля. Мы ствараем дадатковае поле, устаўляемы яго ў шаблон, Фарматуем патрэбным нам выявай (ўжываем стылі) а ў адмінку толькі падстаўляем свае значэння для кожнага матэрыялу. Такім чынам, мы пазбаўляе сябе ад ўводу і фарматавання аднатыпнай інфармацыі.
Перакрыжаванае спасылкі ў доп. палях
(Да зместа?)
Перакрыжаванае спасылкі ў доп палях гэта амаль тое ж самае што, усім вядомыя, тэгі, толькі генеруецца паўаўтаматычна. Як гэта працуе? Калі ў наладах поля пазначыць "Выкарыстоўваць значэнні палёў як крыжаваныя гіперспасылкі» тое значэння доп. палёў будуць выводзіцца ў выглядзе спасылак на паказ іншых публікацый, якія маюць такія ж значэння. Напрыклад, калі ў поле рэжысёр (бярэм да прыкладу ўсё той жа кіна-сайт) вы пакажыце Леанід Гайдай, то на сайце гэтая інфармацыя адлюструецца ў выглядзе спасылкі на стужку навін якія маюць такое ж значэнне, гэта значыць на фільмы дзе вы ў полі «рэжысёр »паказалі слова« Гайдай ».
Мяняем xfsearch ў URL старонак крыжаваных спасылак у доп. палях на назву доп поля. + Старонкі пагинации
(Да зместа?)
Галаву зламаў пакуль вызначыўся як правільна сфармуляваць загаловак :). Але ўсё не так палохала, як можна падумаць прачытаўшы падзагаловак. Сутнасць у наступным: Напрыклад, на нашым киносайте ёсць доп полі «год выхаду» ці «рэжысёр фільма» (або абодва гэтых поля адначасова) і вы для яго выкарыстоўваеце перакрыжаванае спасылкі, то URL старонкі на якой выводзяцца запісы па доп. полі маюць наступны выгляд:
www.site.ru / xfsearch / 2015 ці www.site.ru / xfsearch / Леанід + Гайдай
Вось гэта самае xfsearch псуе знешні выгляд URL, да таго ж і для года выхаду і рэжысёра фільма будзе адзін шлях у URL. Атрымліваецца як нейкая незразумелая катэгорыя - xfsearch. Пагадзіцеся гэта не зусім правільна.
Выхад - замяніць xfsearch на назву доп поля. Напрыклад, калі для вываду года выпуску фільма доп поле ў вас мае назву year а для рэжысёра які зняў гэты фільм rejiser, то замяніўшы xfsearch на назвы гэтых палёў выгляд URL будзе наступны:
www.site.ru / year / 2015 і www.site.ru / rejiser / Леанід + Гайдай
Як гэта рэалізаваць? Калі трошкі (дзіўнае слова, я напрыклад гугл у Яндэксе :)) знойдзецца маса сайтаў (практычна ўсе з ТОП 10 выдачы), якія, спасылаючыся адзін на аднаго, апісваюць адзін і той жа хак. Хак рабочы, але ёсць адно АЛЕ. Калі ў вас, таму доп. полю ёсць шмат артыкулаў (напрыклад, фільмаў 2015 гады) то, хутчэй за ўсё ў вас з'явяцца старонкі пагинации. І на старонках пагинации назву доп поля ў URL зменіцца на стандартнае xfsearch.
www.site.ru / xfsearch / 2014 / page / 2 /
Пагугліце трохі глыбей (трохі гэта слаба сказана) я знайшоў хак, які будзе нармальна працаваць і на старонках пагинации. Вось сам хак:
Адкрываем файл engine.php і знаходзім наступны код:
$ Url_page = $ config [ 'http_home_url']. "Xfsearch /". urlencode (str_replace ( " '", "'", $ xf));Замяняем на:
$ Url_page = $ config [ 'http_home_url']. urlencode ($ _ GET [ 'xn']). "/". urlencode (str_replace ( " '", "'", $ xf));У файле .htaccess шукаем
RewriteRule ^ xfsearch / ([^ /] *) (/?) + $ Index.php? Do = xfsearch & xf = $ 1 [L] RewriteRule ^ xfsearch / ([^ /] *) / page / ([0-9] + ) (/?) + $ index.php? do = xfsearch & xf = $ 1 & cstart = $ 2 [L]Ніжэй вставляем:
RewriteRule ^ (назва доп поля1, нап. Year) / ([^ /] *) (/?) + $ Index.php? Do = xfsearch & xn = $ 1 & xf = $ 2 [L] RewriteRule ^ (назва доп поля1, нап. Year ) / ([^ /] *) / page / ([0-9] +) (/?) + $ index.php? do = xfsearch & xn = $ 1 & xf = $ 2 & cstart = $ 3 [L] RewriteRule ^ (назва доп поля2 , нап. rejiser) / ([^ /] *) (/?) + $ index.php? do = xfsearch & xn = $ 1 & xf = $ 2 [L] RewriteRule ^ (назва доп поля2, нап. rejiser) / ([^ / ] *) / page / ([0-9] +) (/?) + $ index.php? do = xfsearch & xn = $ 1 & xf = $ 2 & cstart = $ 3 [L]спасылка на крыніца хаку.
Добра прадумайце назву для доп.поля, каб яно нармальна выглядала ў URL. Будзьце ўважлівыя! Калі вы пачалі напаўняць сайт і ў працэсе працы вырашылі памяняць назву доп. поля ўсе дадзеныя якія былі ўведзеныя раней будуць страчаны!
Мяняем метатега TITLE на старонках тэгаў і дадатковых палёў
(Да зместа?)
Скажу адразу дадзены хак падыдзе не ўсім. Яго зручна выкарыстоўваць калі ў вас на сейце толькі адно дадатковае поле (напрыклад, усё той жа, рэжысёр) а для тэгаў да фільма вы карыстаецеся адзін параметр (напрыклад, калі ў вас усё-ткі киносайт, вы карыстаецеся год выхаду на экран) - гэты варыянт падыдзе выдатна.
Для таго каб памяняць Title на старонках тэгаў трэба адкрыць файл engine / engine.php, знайсці радкі:
elseif ($ do == 'tags') $ nam_e = stripslashes ($ tag); elseif ($ do == 'xfsearch') $ nam_e = $ xf;І замяніць іх на свой варыянт, прыкладна так:
elseif ($ do == 'tags') $ nam_e = "Фільмы". $ xf "года"; elseif ($ do == 'xfsearch') $ nam_e = "Рэжысёр фільма". $ tag .;Я, напрыклад, выкарыстаў яго толькі для старонак тэгаў.
elseif ($ do == 'tags') $ nam_e = 'Спіс фільмаў з тэгам "'. $ tag. '"';Цяпер у мяне на сайце тайтлов старонкі тэга, напрыклад, «прыгоды» выглядае так:
Спіс фільмаў з тэгам "прыгоды" >> Site.RU - глядзіце онлайн лепшыя фільмы ў інтэрнэце!
замест
прыгоды >> Site.RU - глядзіце онлайн лепшыя фільмы ў інтэрнэце!
Як размясціць тэкст апісання на старонках доп. палёў у DLE
(Да зместа?)
Скажам на старонцы, дзе выводзяцца навіны па xfsearch Леанід Гайдай (мы ўжо ведаем, як замяніць xfsearch на rejiser), мы вырашылі вывесці невялікі тэкст, які апавядае пра жыццё і творчасць гэтага вялікага кіно мастака.
Адкрываем файл «templates.class.php» знаходзіцца ён па адрасе «/ engine / classes»
Знаходзім у ім:
$ This-> copy_template = $ this-> template; $ This-> template_parse_time + = $ this-> get_real_time () - $ time_before;ВЫШЭЙ гэтага вставляем:
if (strpos ($ this-> template, "{request =")! == false or strpos ($ this-> template, "[request =")! == false) {preg_match_all ( "# [\ {\ [ ] request = [ ' "] (. +?) ['"] # is ", $ this-> template, $ matchs, PREG_PATTERN_ORDER); $ Matchs = ((isset ($ matchs [1]) and is_array ($ matchs [1]))? $ Matchs [1]: array ()); $ Matchs = array_unique ($ matchs); foreach ($ matchs as $ match) {$ vmatch = explode ( '=', $ match); $ Amatch = explode ( '->', $ vmatch [0]); $ Value = $ _REQUEST; foreach ($ amatch as $ imatch) $ value = (($ value and isset ($ value [$ imatch]))? $ value [$ imatch]: false); if ((isset ($ vmatch [1]) and (is_array ($ value) and in_array ($ vmatch [1], $ value) or $ vmatch [1] == $ value)) or (! isset ($ vmatch [ 1]) and $ value)) {$ this-> template = preg_replace ( "# \ {request = [ '"] {$ vmatch [0]} [' "] \} # is", (is_array ($ value) ? 'array': $ value), $ this-> template); $ This-> template = preg_replace ( "# \ [request = [ '"] {$ vmatch [0]} [' "] \] (. +?) \ [/ Request \] # is", '\ 1' , $ this-> template); $ This-> template = preg_replace ( "# \ [request = [ '"] {$ vmatch [0]} = {$ vmatch [1]} [' "] \] (. +?) \ [/ Request \] #is ", '\ 1', $ this-> template); } Else {$ this-> template = preg_replace ( "# \ {request = [ '"] {$ vmatch [0]} [' "] \} # is", '', $ this-> template); $ This-> template = preg_replace ( "# \ [request = [ '"] {$ vmatch [0]} [' "] \] (. +?) \ [/ Request \] # is", '', $ this-> template); $ This-> template = preg_replace ( "# \ [request = [ '"] {$ vmatch [0]} = {$ vmatch [1]} [' "] \] (. +?) \ [/ Request \] #is ", '', $ this-> template); }}} If (strpos ($ this-> template, "{request}")! == false) {var_dump ($ _ REQUEST); $ This-> template = str_replace ( '{request}', '', $ this-> template); }Цяпер адкрываем файл шаблону main.tpl
У месцы дзе ў вас павінен быць тэкст, трэба ўставіць:
[Aviable = xfsearch] [request = "xf = Леанід + Гайдай"] Тут тэкст пра вялікага Леанід Гайдай [/ request] [/ aviable]Калі вы жадаеце што б тэкст быў толькі на першай старонцы і ня адлюстроўваўся на старонках пагинации, то вам трэба ўставіць такі код:
[Aviable = xfsearch] [page-count = 1] [request = "Леанід + Гайдай"] Тут тэкст пра вялікага Леанід Гайдай [/ request] [/ page-count] [/ aviable]Улічыце! Напэўна код [aviable = xfsearch] [/ aviable] ў вашым шаблоне ўжо існуе. Вам толькі застаецца яго знайсці і ўставіць ўнутр астатнюю частку кода.
Модуль для SEO аптымізацыі доп. палёў у DLE
(Да зместа?)
І нарэшце, модуль, які выконвае ўсе, што апісана ў папярэдніх двух пунктах і не толькі. Модуль вельмі падобны на модуль TagFace ад Алаича . Можна сказаць больш, ён не проста падобны - ён выконвае ўсе тыя дзеянні з доп. палямі, што і TagFace з тэгамі. Але наўрад ці вы знойдзеце такі модуль ў інтэрнэце. Я сам доўга капаў пакуль знайшоў яго. І я нават заплаціў за яго грошы (невялікія, але ўсё ж). Я прапаную атрымаць дадзены модуль амаль бясплатна.
https://yadi.sk/d/N7M4cLwvhEi7h
Вы можаце сачыць за абнаўленнямі блога ў Twitter , RSS або па пошце !
З павагай, Мышак Пётр!
Падобныя запісу:
Да зместа?Як гэта працуе?
Да зместа?
Php?
Php?
Php?
Php?
Php?
Php?
Да зместа?