[IŠSPRĘSTA] Products modulis

Lietuviškas CMS Made Simple forumas

Moderator: Augustas

Post Reply
McF
Forum Members
Forum Members
Posts: 108
Joined: Thu Dec 27, 2007 5:27 pm

[IŠSPRĘSTA] Products modulis

Post by McF »

Sveiki,

CMSMS: 1.10.3
Products: 2.15.1


Man netinka standartinis Products modulio puslapiavimas

Code: Select all

<< < Puslapis 5 Of 6 > >>
Man reikia, kad puslapius išvardintų visus:

Code: Select all

1 2 3 4 5 6
Aš įjungiau CMSMS pretty URLs:

Code: Select all

$config['url_rewriting'] = 'internal';
Matau, kad į Produktų detalių puslapius rodomi kaip Pretty URLs, pvz:

Code: Select all

http://psl.lt/index.php/Products/60/60/PWE-340
Tačiau puslapių nuorodos visiškai ne Pretty URLs:

Code: Select all

http://psl.lt/index.php?mact=Products,cntnt01,default,0&cntnt01category=Produktai&cntnt01pagelimit=12&cntnt01page=6&cntnt01returnid=60&cntnt01returnid=60
Klausimas: kaip padaryti nuorodą į konkretų puslapį?
O gal pakeitus į pilną (su Apache mod_rewrite) Pretty URLs Products puslapiavimas automatiškai susitvarkys?

McF
Last edited by McF on Tue Feb 07, 2012 6:54 pm, edited 1 time in total.
vilkis

Re: Products modulis

Post by vilkis »

McF wrote: O gal pakeitus į pilną (su Apache mod_rewrite) Pretty URLs Products puslapiavimas automatiškai susitvarkys?
McF
Nesusitvarkys.

gali pasiskaityti :

http://forum.cmsmadesimple.org/viewtopi ... lapiavimas

Naujienoms kazkada dariau toki puslapiavima, kaip tu nori.

vilkis
McF
Forum Members
Forum Members
Posts: 108
Joined: Thu Dec 27, 2007 5:27 pm

Re: Products modulis

Post by McF »

ūūūū... kaip sudėtingai...

įdomu, ar man pavyktų toks dirty sprendimas.
kadangi žinau puslapiavimo url, tai aš pats keičiu cntnt01page kintamojo reikšmę...

Code: Select all

http://psl.lt/index.php?mact=Products,cntnt01,default,0&cntnt01category=Produktai&cntnt01pagelimit=12&cntnt01sortby=created&cntnt01page=3&cntnt01returnid=60&cntnt01returnid=60
pavyks?
vilkis

Re: Products modulis

Post by vilkis »

Radau, kaip buvau padares naujienose. Manau galima pritaikyti ir Products sablonui:

Code: Select all

{*PUSLAPIAVIMAS*}
{if $pagenumber < $pagecount}
{capture assign=pageurl} 
{$nextpage|regex_replace:'/href=\"(.*)\"/':'$1'|replace:'<a ':''|replace:'>></a>':''}
{/capture}
{else}
{capture assign=pageurl} 
{$prevpage|regex_replace:'/href=\"(.*)\"/':'$1'|replace:'<a ':''|replace:'><</a>':''}
{/capture}
{/if}



{if $pagenumber eq 1}
{capture assign=prevpagestr}
pagenumber=1
{/capture}
{else}
{capture assign=prevpagestr}
pagenumber={$pagenumber-1}
{/capture}
{/if}
{if $pagenumber eq $pagecount}
{capture assign=nextpagestr}
pagenumber={$pagecount}
{/capture}
{else}
{capture assign=nextpagestr}
pagenumber={$pagenumber+1}
{/capture}
{/if}
<a class="aimg" href="{$pageurl|regex_replace:'/pagenumber=(\d)/':$prevpagestr}"><img alt="" src="img/arrow-left.gif"></a>

{if $pagecount < 6}
{section name=foo start=0 loop=$pagecount step=1}
{capture assign=pagestr}
pagenumber={$smarty.section.foo.iteration}
{/capture}
  <a {if  $smarty.section.foo.iteration eq $pagenumber}
class="selected" 

{/if} href="{$pageurl|regex_replace:'/pagenumber=(\d)/':$pagestr}">{$smarty.section.foo.iteration}</a>
{/section}
{else}
{if $pagenumber < 3}
{capture assign=startpage}1{/capture}
{elseif ($pagecount-$pagenumber) < 2}
{capture assign=startpage}{$pagecount-4}{/capture}
{else}
{capture assign=startpage}{$pagenumber-2}{/capture}
{/if}
{$pagecount}
{section name=foo start=$startpage loop=20 max=5}
{$smarty.section.foo.index}
{capture assign=pagestr}
pagenumber={$smarty.section.foo.index}
{/capture}
  <a {if  $smarty.section.foo.index eq $pagenumber}
class="selected" 

{/if} href="{$pageurl|regex_replace:'/pagenumber=(\d)/':$pagestr}">{$smarty.section.foo.index}</a>
{/section}
{/if}
<a class="aimg" href="{$pageurl|regex_replace:'/pagenumber=(\d)/':$nextpagestr}"><img alt="" src="img/arrow-right.gif"></a>
<div class="clear"></div>
  </div>
{/if}
vilkis
McF
Forum Members
Forum Members
Posts: 108
Joined: Thu Dec 27, 2007 5:27 pm

Re: Products modulis

Post by McF »

kaip tik ko reikėjo... vilkis - didelis ačiū...

iki galo neįsigilinau į tavo kodą - gilinausi tiek kiek reikėjo.
bet jaučiu nesi ištestavęs su daugiau nei 9 puslapių kiekiu.
nes kai prasideda dviženkliai skaičiai, tai RegExp'as /pagenumber=(\d)/ ima tik vieną skaitmenį, todėl (jeigu paspaudžiamas pvz 12 puslapis) sugeneruojami triženkliai puslapių numeriai (12, 22, 32, ... 102, 112), kitu paspaudimu jau keturženkliai.
Reikia pakeisti į /pagenumber=(\d*)/ ir viskas susitvarko.

Dar vienas bajeris: su {capture} atsargiai, jeigu naujoje eilutėje, tai susigeneruoja nauja eilutė, todėl HTMLas jau nebesivaliduoja, nes linkas per kelias eilutes gaunasi - čia irgi teko pavargti, kol klaidas išgaudžiau...

Štai Products puslapiavimo kodas:

Code: Select all

{* PUSLAPIAVIMAS *}
{if isset($pagecount) && $pagecount gt 1}

{if $curpage < $pagecount}
{capture assign=pageurl}{$nextlink|regex_replace:'/href=\"(.*)\"/':'$1'|replace:'<a ':''|replace:'>></a>':''}{/capture}
{else}
{capture assign=pageurl}{$prevlink|regex_replace:'/href=\"(.*)\"/':'$1'|replace:'<a ':''|replace:'><</a>':''}{/capture}
{/if}

{assign var=pagecount1 value=$pagecount+1}
{section name=foo start=1 loop=$pagecount1 step=1}
{capture assign=pagestr}cntnt01page={$smarty.section.foo.index}{/capture}
{capture assign=pageurl1}{$pageurl|regex_replace:'/cntnt01page=(\d*)/':$pagestr}{/capture}
{if  $smarty.section.foo.index eq $curpage}
<a class="selected" href="{$pageurl1}">{$smarty.section.foo.index}</a>
{else}
<a href="{$pageurl1}">{$smarty.section.foo.index}</a>
{/if}
{/section}

{/if}
vilkis

Re: [IŠSPRĘSTA] Products modulis

Post by vilkis »

Šaunu. Geri tavo pataisymai. Tikrai netestavau savo kodo su dviženkliais skaičiais. Aš tai naudočiau

Code: Select all

/pagenumber=(\d+)/ 
, bet jei gerai veikia

Code: Select all

/pagenumber=(\d*)/
tai tik rodo, kad man dar reikia pasimokyti regular expressions.

Tiesa, mano kodas buvo, kad rodytų linkus į pirmą, paskutinį ir keturis artimiausius esamam puslapiui puslapius. Tu padarei, kad rodytų į visus - žiūrėk, kad nebūtų dizaino problemų, jei puslapių bus labai daug ;)

Puiku, kad pasidalinai savo kodu.

vilkis
McF
Forum Members
Forum Members
Posts: 108
Joined: Thu Dec 27, 2007 5:27 pm

Re: [IŠSPRĘSTA] Products modulis

Post by McF »

vilkis wrote:Aš tai naudočiau

Code: Select all

/pagenumber=(\d+)/ 
Taip būtų teisingiau, nors realiai nebūna, kad linkas būtų be skaičių.
vilkis wrote: Tiesa, mano kodas buvo, kad rodytų linkus į pirmą, paskutinį ir keturis artimiausius esamam puslapiui puslapius.
Aš mačiau, kad kodo daugiau nei man reikėtų, todėl į jį visą ir nesigilinau, dabar aišku ką jis daro.
vilkis wrote:Tu padarei, kad rodytų į visus - žiūrėk, kad nebūtų dizaino problemų, jei puslapių bus labai daug
Dabar eilė užima 2/3 pločio... kol kas yra kur plėstis, nors realiai reiktų pakalbėti su užsakovu ar yra logikos tiek puslapių, gal juos geriau padalinti...
vilkis wrote:Puiku, kad pasidalinai savo kodu.
Kai kada pagalvoji, kad forumuose tik klausinėji ir nieko pats kitiems į jų klausimus neatrašinėji, tai nutariau nors kiek pataisyti situaciją, be to gali būti, kad ir mano kodas kažkur klaidingas, tai forumo dalyviai gali padėti rasti tas klaidas.
Post Reply

Return to “Lithuanian - Lietuviškai”