Botokill
Guest
templates, help
Народ, есть вот функция для вывода данных из базы, и для вставки их в templates
на что следует обратить внимание я выделил комментариями, что я пытался сделать, а пытался я сделать то чтобы
допустим, берем tepmpate tovars_one_tpl_short.htm и на одной строчке выводим 3 tovars_one_tpl_short.htm, после чего
переходим на новую строчку <tr>, для этого я перед циклом создал $count=3 и после цикла написал проверку
if ($count ==3) то выводим template и вставляем <tr>, итог таков он после каждого tovars_one_tpl_short.htm вставляет <tr>
и выводит на одну строчку 1 tovars_one_tpl_short.htm, вернее каждый tovars_one_tpl_short.htm на своей строчки, а должно получится что бы после трех выводов
tovars_one_tpl_short.htm он остальные переводил на новую строчку, возможно я все по ламерски объяснил, но думаю вы поняли о чем я пытался рассказать 0(
подскажите, пожалуйста, что я здесь сделал не так?
Народ, есть вот функция для вывода данных из базы, и для вставки их в templates
на что следует обратить внимание я выделил комментариями, что я пытался сделать, а пытался я сделать то чтобы
допустим, берем tepmpate tovars_one_tpl_short.htm и на одной строчке выводим 3 tovars_one_tpl_short.htm, после чего
переходим на новую строчку <tr>, для этого я перед циклом создал $count=3 и после цикла написал проверку
if ($count ==3) то выводим template и вставляем <tr>, итог таков он после каждого tovars_one_tpl_short.htm вставляет <tr>
и выводит на одну строчку 1 tovars_one_tpl_short.htm, вернее каждый tovars_one_tpl_short.htm на своей строчки, а должно получится что бы после трех выводов
tovars_one_tpl_short.htm он остальные переводил на новую строчку, возможно я все по ламерски объяснил, но думаю вы поняли о чем я пытался рассказать 0(
подскажите, пожалуйста, что я здесь сделал не так?
PHP:
function tovar_list_tovars($data,$mode)
{
global $PHP_SELF;
$db = connect_db();
if (!$data['auto_limit']) {
$data['auto_limit']=3;
}
if (!$data['page_limit']) {
$data['page_limit']=4;
}
if (!$data['page_offset']) {
$data['page_offset']=0;
}
if ($data['list_mode']=='all')
{
$where = " ";
$order = " order by tovar_name_rus";
}
if ($data['list_mode']=='dig')
{
$where = " where left(tovar_name_eng,1)>='0' and left(tovar_name_eng,1)<='9' or left(tovar_name_rus,1)>='0' and left(tovar_name_rus,1)<='9' ";
$order = " order by tovar_name_rus";
}
if ($data['eng_letter'] && $data['eng_letter']>='A' && $data['eng_letter']<='Z')
{
$where = " where left(tovar_name_eng,1)='{$data['eng_letter']}' ";
$order = " order by tovar_name_eng";
}
if ($data['rus_letter'] && $data['rus_letter']>='А' && $data['rus_letter']<='Я')
{
$where = " where left(tovar_name_rus,1)='{$data['rus_letter']}' ";
$order = " order by tovar_name_rus";
}
if ($data['list_mode']=='genre')
{
$from = " tovar_genre_tovar, ";
$where = " where gnr_id='{$data['gnr_id']}' and tovar_genre_tovar.tovar_id=tovars.tovar_id ";
$order = " order by tovar_name_rus";
}
if ($data['list_mode']=='rus_tovars')
{
$where = " where tovars.sq_id=9 or tovars.sq_id=11 ";
$order = " order by tovar_name_rus";
}
if ($data['list_mode']=='new' || !$where)
{
$where = " where tovar_add_date > date_sub(now(),interval 7 day) ";
$order = " order by tovar_add_date desc,tovar_name_rus ";
}
$maintpl_data['tovars_list']='';
if ($where)
{
$query=mysql_query("select count(*) as num from $from tovars $where",$db);
$tovars_total=mysql_fetch_assoc($query);
$tovars_total=$tovars_total['num'];
$query = mysql_query("SELECT tovars.tovar_id,
tovars.tovar_name_rus,
tovars.tovar_name_eng,
tovars.tovar_rating,
tovars.tovar_add_date,
tovars.tovar_desc,
tovars.tovar_crdesc,
COUNT(tovar_comments.comment_id) AS cmt_num
FROM $from tovars LEFT OUTER JOIN tovar_comments ON tovars.tovar_id = tovar_comments.tovar_id
$where
GROUP BY tovars.tovar_id,
tovars.tovar_name_rus,
tovars.tovar_name_eng,
tovars.tovar_rating,
tovars.tovar_add_date,
tovars.tovar_crdesc,
tovars.tovar_desc $order
limit {$data['page_offset']},{$data['page_limit']}",$db);
//------------------------ !!!
$count=0;
//------------------------ !!!
while (is_array( $tpl_data=mysql_fetch_array($query) ) )
{
$tpl_data['tovar_desc']=substr($tpl_data['tovar_desc'],0,400);
if (strlen($tpl_data['tovar_desc'])==400)
{
for ($i=strlen($tpl_data['tovar_desc'])-1;$tpl_data['tovar_desc'][$i]!=' ' && $i>=0;$i--)
{
$tpl_data['tovar_desc'][$i]=' ';
}
$tpl_data['tovar_desc']=chop($tpl_data['tovar_desc']).'...';
}
$tpl_data['tovar_desc']=chop($tpl_data['tovar_desc']);
$tpl_data=html_prepare_array($tpl_data);
$tpl_data['name']="{$tpl_data['tovar_name_rus']} (".($tpl_data['tovar_name_eng']?$tpl_data['tovar_name_eng']:"---").")";
$img_query = mysql_query("select img_id,image_height,image_width from tovar_images where tovar_id={$tpl_data['tovar_id']} ORDER BY img_id LIMIT 1",$db);
while (is_array( $image=mysql_fetch_array($img_query) ) )
{
$tpl_data['images'].="<a href='$PHP_SELF?name=tovars&tovars_mode=full_view&tovar_id={$tpl_data['tovar_id']}'><img height='100' width='140' border='0' alt='{$tpl_data['name']} (Нажмите, чтобы увидеть подробное описание товара)' title='{$tpl_data['name']} (Нажмите, чтобы увидеть подробное описание товара.)' class='tovars_images' src='$PHP_SELF?name=tovars&tovars_mode=get_image&img_id={$image['img_id']}'></a><br>";
}
if (!$tpl_data['images']) $tpl_data['images']='Нет картинок';
$genre_query = mysql_query("select tovar_genre.gnr_id,gnr_text from tovar_genre_tovar inner join tovar_genre on tovar_genre.gnr_id=tovar_genre_tovar.gnr_id
where tovar_id={$tpl_data['tovar_id']}
ORDER BY gnr_text",$db);
while (is_array( $genre=mysql_fetch_array($genre_query) ) )
{
$tpl_data['gnr_text'].=htmlspecialchars($genre['gnr_text'],ENT_QUOTES).",";
}
if (!$tpl_data['gnr_text']) $tpl_data['gnr_text']='Не определен';
{
$tpl_data['gnr_text']=substr($tpl_data['gnr_text'],0,strlen($tpl_data['gnr_text'])-1 );}
//------------------------------------- !!!
if ($count == 3) {
$maintpl_data['tovars_list'].=to_template("tovars_one_tpl_short.htm",$tpl_data);
$maintpl_data['tr']="<tr>";
$count = 0;
}
//------------------------------------ !!!
}
}
$data['rus_letter']=rawurlencode($data['rus_letter']);
$data['eng_letter']=rawurlencode($data['eng_letter']);
$data['tovar_string']=rawurlencode($data['tovar_string']);
//-- страницы --
$page_data['current_page']="Стр <strong>".(intval($data['page_offset']/$data['page_limit'])+1)."</strong> из <strong>".(intval($tovars_total/$data['page_limit']-0.1)+1)."</strong>";
$page_data['total']="Всего: <strong>$tovars_total<strong>";
//Пред
if ($data['page_offset']-$data['page_limit']>=0) {
$page_data['pages'].=" <a class='pagesLinks' href='$PHP_SELF?page_offset=".($data['page_offset']-$data['page_limit'])."&page_limit={$data['page_limit']}";
$page_data['pages'].=$data['tovar_string']?"&tovar_string={$data['tovar_string']}":'';
$page_data['pages'].=$data['eng_letter']?"&eng_letter={$data['eng_letter']}":'';
$page_data['pages'].=$data['rus_letter']?"&rus_letter={$data['rus_letter']}":'';
$page_data['pages'].=$data['gnr_id']?"&gnr_id={$data['gnr_id']}":'';
$page_data['pages'].=$data['list_mode']?"&list_mode={$data['list_mode']}":'';
$page_data['pages'].=$data['tovars_mode']?"&tovars_mode={$data['tovars_mode']}":'';
$page_data['pages'].="'><strong><<</strong></a> \n";
}else
{
$page_data['pages'].=" <strong><<</strong> \n";
}
$cnt=0;
$offset=0;
if ($data['page_offset']-($data['page_limit']*3)>=0) {
$offset=$data['page_offset']-($data['page_limit']*3);
}
while ($tovars_total>$offset && $cnt<8)
{
$pagecounter=$offset/$data['page_limit']+1;
$cnt++;
if ($offset!=$data['page_offset']) {
$page_data['pages'].="<a class='pagesLinks' href='$PHP_SELF?modules=tovars&page_offset=$offset&page_limit={$data['page_limit']}";
$page_data['pages'].=$data['tovar_string']?"&tovar_string={$data['tovar_string']}":'';
$page_data['pages'].=$data['eng_letter']?"&eng_letter={$data['eng_letter']}":'';
$page_data['pages'].=$data['rus_letter']?"&rus_letter={$data['rus_letter']}":'';
$page_data['pages'].=$data['gnr_id']?"&gnr_id={$data['gnr_id']}":'';
$page_data['pages'].=$data['list_mode']?"&list_mode={$data['list_mode']}":'';
$page_data['pages'].=$data['tovars_mode']?"&tovars_mode={$data['tovars_mode']}":'';
$page_data['pages'].="'> $pagecounter </a> \n";
}else{
$page_data['pages'].="| $pagecounter | \n";
}
$offset+=$data['page_limit'];
}
if ($data['page_offset']+$data['page_limit']< $tovars_total) {
$page_data['pages'].=" <a class='pagesLinks' href='$PHP_SELF?modules=tovars&page_offset=".($data['page_offset']+$data['page_limit'])."&page_limit={$data['page_limit']}";
$page_data['pages'].=$data['tovar_string']?"&tovar_string={$data['tovar_string']}":'';
$page_data['pages'].=$data['eng_letter']?"&eng_letter={$data['eng_letter']}":'';
$page_data['pages'].=$data['rus_letter']?"&rus_letter={$data['rus_letter']}":'';
$page_data['pages'].=$data['gnr_id']?"&gnr_id={$data['gnr_id']}":'';
$page_data['pages'].=$data['list_mode']?"&list_mode={$data['list_mode']}":'';
$page_data['pages'].=$data['tovars_mode']?"&tovars_mode={$data['tovars_mode']}":'';
$page_data['pages'].="'><strong>>></strong></a> \n";
}else
{
$page_data['pages'].=" <strong>>></strong> \n";
}
//------------------------------
$page_data=to_template("tovars_page_list.htm",$page_data);
$maintpl_data['tovars_list']=$maintpl_data['tovars_list'].$page_data;
$ret.=to_template("tovars_main_tpl.htm",$maintpl_data);
return $ret;
//-----------------------------
}