maybe someone can read this if have some little time
there is nothing to do for those who know pike alot :)
 
this is navigation trought pages as much records emited from sql as the pike draws little buttons to navigate trought pages so I want to put this in Roxen module to use it in any virtual server without pike script to prevent users to access pike scripts and crash my server :)
 
for example it should look like this (I have tryed to make this module for Roxen but I cant do it something I do wrong, maybe somebody can help me. how exactly I need to write module for roxen to get result of this)
 
<pagelist page="1" count="100" link="index.rxml?bla1=1&bla2=2" bgcolor="black" fgcolor="white" onbgcolor="white" onfgcolor="black"/>
I have added to code file://taken from tag attribute// where should apear value from tag atributes
like page="1" count="100" bgcolor="black" and so on
 
also must restrict to use symbols from tag attribute values: ' " > < ` ? ! = - ; :
(like bgcolor=";;,.":!#:!" strip off these bad symbols)
<?pike
int c;
int imag;
int inPage;
int pages;
int Page;
int pages10;
Page=(int)form.page; // not form but value from tag page="1" //
inPage=(int)1;
imag=(int)var.pcount; // not var but value from tag count="100" //
pages=(int)(imag/inPage);
pages10=(int)(Page-1)/10;
 
if((imag%inPage)!=0)
pages++;
if(pages10-1>=0)
{
write (rxml("<gtext magic notrans bgcolor='//taken from tag attribute//' magic magic-fgcolor='//taken from tag attribute//' magic-bgcolor='//taken from tag attribute//' font='pike builtin' border='0' href=\"//taken from tag attribute//&page="+(string)(pages10*10-9)+"\"> prev </gtext> "));
}
if(Page-1>=1)
{
write (rxml(" <gtext magic notrans bgcolor='//taken from tag attribute//' magic magic-fgcolor='//taken from tag attribute//' magic-bgcolor='//taken from tag attribute//' font='pike builtin' border='0' href=\"//taken from tag attribute//&page="+(string)(Page-1)+"\"> &lt;&lt; </gtext> &nbsp;&nbsp;"));
}
for(c=(pages10*10+1);(c<=(pages10+1)*10)&&(c<=pages);c++)
{
write (rxml("<if match=\""+(string)(c)+" == &var.page;\"><gtext notrans fgcolor='//taken from tag attribute//' bgcolor='//taken from tag attribute//' font='pike builtin' border='0' href=\"//taken from tag attribute//&page="+(string)(c)+"\">"+(string)(c)+" </gtext></if><else><gtext notrans bgcolor='//taken from tag attribute//' magic magic-fgcolor='//taken from tag attribute//' magic-bgcolor='//taken from tag attribute//' font='pike builtin' border='0' href=\"//taken from tag attribute//&page="+(string)(c)+"\">"+(string)(c)+"  </gtext></else>&nbsp;&nbsp;&nbsp; "));
}
if((Page+1)*1<=pages)
{
write (rxml("<gtext magic notrans bgcolor='//taken from tag attribute//' magic magic-fgcolor='//taken from tag attribute//' magic-bgcolor='//taken from tag attribute//' font='pike builtin' border='0' href=\"//taken from tag attribute//&page="+(string)(Page+1)+"\"> &gt;&gt; </gtext>"));
}
if((pages10+1)*10<=pages)
{
 
write (rxml("<gtext magic notrans bgcolor='//taken from tag attribute//' magic magic-fgcolor='//taken from tag attribute//' magic-bgcolor='//taken from tag attribute//' font='pike builtin' border='0' href=\"//taken from tag attribute//&page="+(string)(pages10*10+11)+"\"> next </gtext>"));
}
?>
 
so is it possible to add this to module
so I can add this module to some virtual server and use it in html page
to get this out on page
 
of course at first ther is need to count
records from sql and calclulate them
this is too need to be a differend module
like
<get_rcount from='sample,ads where sample.adsid=ads.id and ads.kat1="&form.kat1:mysql;" and ads.kat2="&form.kat2:mysql;" '>
 
<?pike
int cols=0;
string st;
float size=(float)rxml("<emit source=sql query='select count(*) as \"adm\" // value taken from tag get_rcount // '>&sql.adm;</emit>");
if ((int)var.page >ceil((size / 18)))
var.page=(int)ceil((size / 18));
if ( (int)var.page < 1)
var.page = 1;
var.skiprows=((int)var.page -1)*18;
var.pcount=(string)(int)ceil((float)(size / 18));
var.adsize=((string)(int)size);
?>
later this is used by this next tag pagelist
 
and then results used and added to
this tag
<pagelist page="&form.page;" count="&var.record_count;" link="index.rxml?bla1=1&bla2=2" bgcolor="black" fgcolor="white" onbgcolor="white" onfgcolor="black"/>
 
and
in page it should look like this
 
<set variable="var.sqlz" value="&var.sql;"/>
<if variable="form.page">
<set variable="var.page" value="&form.page;"/>
</if>
<else>
<set variable="var.page" value="1"/>
</else>
<set variable="var.skiprows" value=""/>
<set variable="var.last" value=""/>
<get_rcount from='sample,ads where sample.adsid=ads.id and ads.kat1="&form.kat1:mysql;" and ads.kat2="&form.kat2:mysql;" '>
 
<emit source="sql" query='select * from 'sample,ads where sample.adsid=ads.id and ads.kat1="&form.kat1:mysql;" and ads.kat2="&form.kat2:mysql;" limit &var.skiprows;,18'>
blabla data maka hdjad
</emit>
 
<pagelist page="&form.page;" count="&var.record_count;" link="index.rxml?bla1=1&bla2=2" bgcolor="black" fgcolor="white" onbgcolor="white" onfgcolor="black"/>