1
Changeset ddaa6a6 – MultiMag

Changeset ddaa6a6


Ignore:
Timestamp:
Jul 1, 2011, 5:13:26 PM (12 years ago)
Author:
Blacklight <blacklight@…>
Branches:
master
Children:
24c551f
Parents:
ec0d8d6
Message:
  • Новый документ: корректировка долга
  • Возможность переопределения страницы поиска
  • Мелкие интерфейсные правки
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • cli/price_an.php

    rec0d8d6 rddaa6a6  
    234234        while($nx=mysql_fetch_row($rs))
    235235        {
    236                 if(($nx[1]==1 || $nx[2]!='') && $mincost>$nx[0])        $mincost=$nx[0];
     236                if(($nx[1]==1 || ($nx[1]==2 &&  $nx[2]!='')) && $mincost>$nx[0])        $mincost=$nx[0];
    237237       
    238238        }
  • web/include/doc.core.php

    rec0d8d6 rddaa6a6  
    501501                case 17:
    502502                        return new doc_Sborka($doc);
     503                case 18:
     504                        return new doc_Kordolga($doc);
    503505                default:
    504506                        return new doc_Nulltype();
     
    535537                        case 6: $dolg-=$nxt[1]; break;
    536538                        case 7: $dolg+=$nxt[1]; break;
     539                        case 18: $dolg+=$nxt[1]; break;
    537540                }
    538541        }
  • web/login.php

    rec0d8d6 rddaa6a6  
    166166        $tmpl->AddText("<h1 id='page-title'>Аутенитфикация</h1>");
    167167        $tmpl->SetTitle("Аутенитфикация");
    168         if($cont)       $tmpl->AddText("<div id='page-info'>Для доступа в этот раздел Вам необходимо пройти авторизацию.</div>");
     168        if($cont)       $tmpl->AddText("<div id='page-info'>Для доступа в этот раздел Вам необходимо пройти аутенитфикацию.</div>");
    169169
    170170        //$_SESSION['c_str']=strtoupper(keygen_unique(0,5,7));
  • web/search.php

    rec0d8d6 rddaa6a6  
    1818//
    1919
    20 function GetCountInfo($count, $tranzit)
    21 {
    22         global $CONFIG;
    23         if(!isset($CONFIG['site']['vitrina_pcnt_limit']))       $CONFIG['site']['vitrina_pcnt_limit']   = array(1,10,100);
    24         if($CONFIG['site']['vitrina_pcnt']==1)
    25         {
    26                 if($count<=0)
    27                 {
    28                         if($tranzit) return 'в пути';
    29                         else    return 'уточняйте';
    30                 }
    31                 else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][0]) return '*';
    32                 else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][1]) return '**';
    33                 else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][2]) return '***';
    34                 else return '****';
    35         }
    36         else if($CONFIG['site']['vitrina_pcnt']==2)
    37         {
    38                 if($count<=0)
    39                 {
    40                         if($tranzit) return 'в пути';
    41                         else    return 'уточняйте';
    42                 }
    43                 else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][0]) return 'мало';
    44                 else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][1]) return 'есть';
    45                 else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][2]) return 'много';
    46                 else return 'оч.много';
    47         }
    48         else    return round($count).($tranzit?('/'.$tranzit):'');
    49 }
    50 
    5120include_once("core.php");
    5221include_once("include/doc.core.php");
    53 $s=rcv('s');
    54 
    55 $tmpl->AddStyle("
    56 .searchblock
    57 {
    58         background-color: #e0f0ff;
    59         width:  95%;
    60         height: 100px;
    61         margin: 10px;
    62         padding:5px;
    63         border: 1px rgb(39,78,144) solid;
    64 }
    65 
    66 .searchblock h1
    67 {
    68         margin: 4px;
    69         margin-left: 10px;
    70         padding: 0px;
    71 }
    72 
    73 .searchblock .sp
    74 {
    75         width: 90%;
    76 }
    77 
    78 ");
    79 
    80 $tmpl->SetTitle("Поиск по сайту: ".$s);
    81 $tmpl->AddText("<div class='searchblock'><h1>Поиск по сайту</h1>
    82 <form action='/search.php' method='get'>
    83 <input type='text' name='s' value='$s' class='sp'> <input type='submit' value='Найти'><br>
    84 <a href='/adv_search.php?s=$s'>Расширенный поиск продукции</a>
    85 </form>
    86 </div>");
    87 
    88 if(strlen($s)>=3)
    89 {
    90         mb_internal_encoding("UTF-8");
    91        
    92         $str=SearchTovar($s);
    93         $tmpl->AddText("<h2>Поиск по предлагаемым товарам</h2>");
    94         if($str) $tmpl->AddText($str."<br><a href='/adv_search.php?s=$s'>Ещё товары по запросу *$s* &gt;&gt;&gt;</a>");
    95         else $tmpl->AddText("Не дал результатов");
    96        
    97         $str=SearchText($s);
    98         $tmpl->AddText("<h2>Поиск по документации и статьям </h2>");
    99         if($str) $tmpl->AddText("<ol>$str</ol>");
    100         else $tmpl->AddText("Не дал результатов");
    101 }
    102 else if($s)     $tmpl->msg("Поисковый запрос слишком короткий!");
    103 
    104 function SearchTovar($s)
    105 {
    106         global $uid, $CONFIG;
    107         if($uid)
    108                 $res=mysql_query("SELECT `id` FROM `doc_cost` WHERE `vid`='-1'");
    109         else
    110                 $res=mysql_query("SELECT `id` FROM `doc_cost` WHERE `vid`='1'");
    111         $c_cena_id=mysql_result($res,0,0);
    112        
    113         $ret='';
    114         $sql="SELECT `doc_base`.`id`, `doc_group`.`printname`, `doc_base`.`name`,`doc_base`.`proizv`, `doc_base`.`cost`, `doc_base`.`cost_date`, `doc_base_dop`.`analog`, `doc_base_dop`.`type`, `doc_base_dop`.`d_int`, `doc_base_dop`.`d_ext`, `doc_base_dop`.`size`, `doc_base_dop`.`mass`, (SELECT SUM(`cnt`) FROM `doc_base_cnt` WHERE `doc_base_cnt`.`id`=`doc_base`.`id` GROUP BY `doc_base_cnt`.`id`), `doc_base_dop`.`tranzit`
    115         FROM `doc_base`
    116         LEFT JOIN `doc_base_dop` ON `doc_base_dop`.`id`=`doc_base`.`id`
    117         LEFT JOIN `doc_group` ON `doc_group`.`id`=`doc_base`.`group`
    118         WHERE (`doc_base_dop`.`analog` LIKE '%$s%' OR `doc_base`.`name` LIKE '%$s%' OR `doc_base`.`desc` LIKE '%$s%' OR `doc_base`.`proizv` LIKE '%$s%' OR `doc_base_dop`.`analog` LIKE '%$s%') AND `doc_base`.`hidden`='0' AND `doc_group`.`hidelevel`='0'
    119         LIMIT 20";
    120         $res=mysql_query($sql);
    121         if(mysql_errno())       throw new MysqlException("Не удалось сделать выборку товаров");
    122         if($row=mysql_num_rows($res))
    123         {
    124                 $ret.="<table width='100%' cellspacing='0' border='0'><tr><th>Наименование<th>Производитель<th>Аналог<th>Наличие
    125                 <th>Цена, руб<th>d, мм<th>D, мм<th>B, мм<th>m, кг<th>";
    126                 $i=0;
    127                 $cl="lin0";
     22
     23class SearchPage
     24{
     25        var $search_str;
     26       
     27        function __construct($search_str)
     28        {
     29                $this->search_str=$search_str;
     30        }
     31
     32        function SearchTovar($s)
     33        {
     34                global $uid, $CONFIG;
     35                if($uid)
     36                        $res=mysql_query("SELECT `id` FROM `doc_cost` WHERE `vid`='-1'");
     37                else
     38                        $res=mysql_query("SELECT `id` FROM `doc_cost` WHERE `vid`='1'");
     39                $c_cena_id=mysql_result($res,0,0);
     40               
     41                $ret='';
     42                $sql="SELECT `doc_base`.`id`, `doc_group`.`printname`, `doc_base`.`name`,`doc_base`.`proizv`, `doc_base`.`cost`, `doc_base`.`cost_date`, `doc_base_dop`.`analog`, `doc_base_dop`.`type`, `doc_base_dop`.`d_int`, `doc_base_dop`.`d_ext`, `doc_base_dop`.`size`, `doc_base_dop`.`mass`, (SELECT SUM(`cnt`) FROM `doc_base_cnt` WHERE `doc_base_cnt`.`id`=`doc_base`.`id` GROUP BY `doc_base_cnt`.`id`), `doc_base_dop`.`tranzit`
     43                FROM `doc_base`
     44                LEFT JOIN `doc_base_dop` ON `doc_base_dop`.`id`=`doc_base`.`id`
     45                LEFT JOIN `doc_group` ON `doc_group`.`id`=`doc_base`.`group`
     46                WHERE (`doc_base_dop`.`analog` LIKE '%$s%' OR `doc_base`.`name` LIKE '%$s%' OR `doc_base`.`desc` LIKE '%$s%' OR `doc_base`.`proizv` LIKE '%$s%' OR `doc_base_dop`.`analog` LIKE '%$s%') AND `doc_base`.`hidden`='0' AND `doc_group`.`hidelevel`='0'
     47                LIMIT 20";
     48                $res=mysql_query($sql);
     49                if(mysql_errno())       throw new MysqlException("Не удалось сделать выборку товаров");
     50                if($row=mysql_num_rows($res))
     51                {
     52                        $ret.="<table width='100%' cellspacing='0' border='0' class='list'><tr><th>Наименование<th>Производитель<th>Аналог<th>Наличие
     53                        <th>Цена, руб<th>d, мм<th>D, мм<th>B, мм<th>m, кг<th>";
     54                        $i=0;
     55                        $cl="lin0";
     56                        while($nxt=mysql_fetch_row($res))
     57                        {
     58                                if($CONFIG['site']['recode_enable'])    $link= "/vitrina/ip/$nxt[0].html";
     59                                else                                    $link= "/vitrina.php?mode=product&amp;p=$nxt[0]";
     60                               
     61                                $i=1-$i;
     62                                $cost = GetCostPos($nxt[0], $c_cena_id);;
     63                                $nal=$this->GetCountInfo($nxt[12], $nxt[13]);
     64                               
     65                                $dcc=strtotime($nxt[5]);
     66                                $cce='';
     67                                if($dcc<(time()-60*60*24*30*6)) $cce="style='color:#888'";
     68                                $ret.="<tr class=lin$i><td><a href='$link'>$nxt[1] $nxt[2]</a>
     69                                <td>$nxt[3]<td>$nxt[6]<td>$nal<td $cce>$cost<td>$nxt[8]<td>$nxt[9]<td>$nxt[10]<td>$nxt[11]<td>
     70                                <a href='/vitrina.php?mode=korz_add&amp;p={$nxt[0]}&amp;cnt=1' onclick=\"ShowPopupWin('/vitrina.php?mode=korz_adj&amp;p={$nxt[0]}&amp;cnt=1','popwin'); return false;\" rel='nofollow'><img src='/img/i_korz.png' alt='В корзину!'></a>";
     71                                $sf++;
     72                                $cc=1-$cc;
     73                                $cl="lin".$cc;
     74                        }
     75                        $ret.="</table><span style='color:#888'>Серая цена</span> требует уточнения<br>";
     76                }
     77                return $ret;
     78        }
     79
     80        function SearchText($s)
     81        {
     82                global $wikiparser;
     83                mb_internal_encoding("UTF-8");
     84                $ret='';
     85                $i=1;
     86                $res=mysql_query("SELECT `name`, `text` FROM `wiki` WHERE `text` LIKE '%$s%' OR `name` LIKE '%$s'");
    12887                while($nxt=mysql_fetch_row($res))
    12988                {
    130                         if($CONFIG['site']['recode_enable'])    $link= "/vitrina/ip/$nxt[0].html";
    131                         else                                    $link= "/vitrina.php?mode=product&amp;p=$nxt[0]";
     89                        $text=$wikiparser->parse(html_entity_decode($nxt[1],ENT_QUOTES,"UTF-8"));
     90                        $head=$wikiparser->title;
     91                        if($head=='')   $head=$nxt[0];
     92                        $text=strip_tags($text);
     93                        $size=130;
     94                        $text=". $text .";
     95                        $pos= mb_stripos($text, $s);
     96                        if($pos===FALSE) $pos=0;
     97                        $start=$pos-$size;
     98                        if($start<0) $start=0;
     99                        $width=$size*2;
     100                        $str=mb_substr ($text, $start, $width);
     101                        $str_array=mb_split(' ',$str);
     102                        $c='';
     103                        $str='... ';
     104                        foreach($str_array as $id => $elem)
     105                        {
     106                                if($id==0) continue;
     107                                $str.=$c.' ';
     108                                $c=$elem;
     109                        }
     110                        $str.=" ...";   
     111                        $str=mb_eregi_replace($s,"<b>$s</b>",$str);     
     112                        $ret.="<li><a href='/wiki/$nxt[0].html'>$head</a><br>$str</li>";               
     113                }
     114                return $ret;
     115        }
     116       
     117        function SearchBlock()
     118        {
     119                $ret="<div class='searchblock'><h1>Поиск по сайту</h1>
     120                <form action='/search.php' method='get'>
     121                <input type='text' name='s' value='{$this->search_str}' class='sp'> <input type='submit' value='Найти'><br>
     122                <a href='/adv_search.php?s={$this->search_str}'>Расширенный поиск продукции</a>
     123                </form>
     124                </div>";
     125                return $ret;
     126        }
     127       
     128        function Exec()
     129        {
     130                global $tmpl;
     131               
     132                $tmpl->AddText($this->SearchBlock());
     133                if(strlen($this->search_str)>=2)
     134                {
     135                        $str=$this->SearchTovar($this->search_str);
     136                        $tmpl->AddText("<h2>Поиск по предлагаемым товарам</h2>");
     137                        if($str) $tmpl->AddText($str."<br><a href='/adv_search.php?s={$this->search_str}'>Ещё товары по запросу *{$this->search_str}* &gt;&gt;&gt;</a>");
     138                        else $tmpl->AddText("Не дал результатов");
    132139                       
    133                         $i=1-$i;
    134                         $cost = GetCostPos($nxt[0], $c_cena_id);;
    135                         $nal=GetCountInfo($nxt[12], $nxt[13]);
    136                        
    137                         $dcc=strtotime($nxt[5]);
    138                         $cce='';
    139                         if($dcc<(time()-60*60*24*30*6)) $cce="style='color:#888'";
    140                         $ret.="<tr class=lin$i><td><a href='$link'>$nxt[1] $nxt[2]</a>
    141                         <td>$nxt[3]<td>$nxt[6]<td>$nal<td $cce>$cost<td>$nxt[8]<td>$nxt[9]<td>$nxt[10]<td>$nxt[11]<td>
    142                         <a href='/vitrina.php?mode=korz_add&amp;p={$nxt[0]}&amp;cnt=1' onclick=\"ShowPopupWin('/vitrina.php?mode=korz_adj&amp;p={$nxt[0]}&amp;cnt=1','popwin'); return false;\" rel='nofollow'><img src='/img/i_korz.png' alt='В корзину!'></a>";
    143                         $sf++;
    144                         $cc=1-$cc;
    145                         $cl="lin".$cc;
    146                 }
    147                 $ret.="</table><span style='color:#888'>Серая цена</span> требует уточнения<br>";
    148         }
    149         return $ret;
    150 }
    151 
    152 function SearchText($s)
    153 {
    154         global $wikiparser;
    155         $ret='';
    156         $i=1;
    157         $res=mysql_query("SELECT `name`, `text` FROM `wiki` WHERE `text` LIKE '%$s%' OR `name` LIKE '%$s'");
    158         while($nxt=mysql_fetch_row($res))
    159         {
    160                 $text=$wikiparser->parse(html_entity_decode($nxt[1],ENT_QUOTES,"UTF-8"));
    161                 $head=$wikiparser->title;
    162                 $text=strip_tags($text);
    163                 $size=130;
    164                 $text=". $text .";
    165                 $pos= mb_stripos($text, $s);
    166                 if($pos===FALSE) $pos=0;
    167                 $start=$pos-$size;
    168                 if($start<0) $start=0;
    169                 $width=$size*2;
    170                 $str=mb_substr ($text, $start, $width);
    171                 $str_array=mb_split(' ',$str);
    172                 $c='';
    173                 $str='... ';
    174                 foreach($str_array as $id => $elem)
    175                 {
    176                         if($id==0) continue;
    177                         $str.=$c.' ';
    178                         $c=$elem;
    179                 }
    180                 $str.=" ...";   
    181                 $str=mb_eregi_replace($s,"<b>$s</b>",$str);     
    182                 $ret.="<li><a href='/wiki/$nxt[0].html'>$head</a><br>$str</li>";               
    183         }
    184         return $ret;
    185 }
    186 
    187 
     140                        $str=$this->SearchText($this->search_str);
     141                        $tmpl->AddText("<h2>Поиск по документации и статьям </h2>");
     142                        if($str) $tmpl->AddText("<ol>$str</ol>");
     143                        else $tmpl->AddText("Не дал результатов");
     144                }
     145                else if($this->search_str)      $tmpl->msg("Поисковый запрос слишком короткий!");
     146        }
     147       
     148        protected function GetCountInfo($count, $tranzit)
     149        {
     150                global $CONFIG;
     151                if(!isset($CONFIG['site']['vitrina_pcnt_limit']))       $CONFIG['site']['vitrina_pcnt_limit']   = array(1,10,100);
     152                if($CONFIG['site']['vitrina_pcnt']==1)
     153                {
     154                        if($count<=0)
     155                        {
     156                                if($tranzit) return 'в пути';
     157                                else    return 'уточняйте';
     158                        }
     159                        else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][0]) return '*';
     160                        else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][1]) return '**';
     161                        else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][2]) return '***';
     162                        else return '****';
     163                }
     164                else if($CONFIG['site']['vitrina_pcnt']==2)
     165                {
     166                        if($count<=0)
     167                        {
     168                                if($tranzit) return 'в пути';
     169                                else    return 'уточняйте';
     170                        }
     171                        else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][0]) return 'мало';
     172                        else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][1]) return 'есть';
     173                        else if($count<=$CONFIG['site']['vitrina_pcnt_limit'][2]) return 'много';
     174                        else return 'оч.много';
     175                }
     176                else    return round($count).($tranzit?('/'.$tranzit):'');
     177        }
     178}
     179
     180
     181try
     182{
     183        $s=rcv('s');
     184        $tmpl->SetTitle("Поиск по сайту: ".$s);
     185       
     186        if(file_exists( $CONFIG['site']['location'].'/skins/'.$CONFIG['site']['skin'].'/search.tpl.php' ) )
     187                include_once($CONFIG['site']['location'].'/skins/'.$CONFIG['site']['skin'].'/search.tpl.php');
     188        if(!isset($search))     $search=new SearchPage($s);
     189       
     190        $search->Exec();
     191}
     192catch(MysqlException $e)
     193{
     194        mysql_query("ROLLBACK");
     195        $tmpl->AddText("<br><br>");
     196        $tmpl->msg($e->getMessage(),"err");
     197}
     198catch(Exception $e)
     199{
     200        mysql_query("ROLLBACK");
     201        $tmpl->AddText("<br><br>");
     202        $tmpl->logger($e->getMessage());
     203}
    188204
    189205
  • web/skins/default/user.css

    rec0d8d6 rddaa6a6  
    7474    border-right: #fff 1px solid;
    7575}
     76
     77.searchblock
     78{
     79        background-color: #e0f0ff;
     80        width:  95%;
     81        height: 100px;
     82        margin: 10px;
     83        padding:5px;
     84        border: 1px rgb(39,78,144) solid;
     85}
     86
     87.searchblock h1
     88{
     89        margin: 4px;
     90        margin-left: 10px;
     91        padding: 0px;
     92}
     93
     94.searchblock .sp
     95{
     96        width: 90%;
     97}
  • web/wiki.php

    rec0d8d6 rddaa6a6  
    3737        <input type=hidden name='p' value='$p'>
    3838        <textarea class='e_msg' name='text' rows='8' cols='30'>$text</textarea><br>
    39         <input type=submit value='Сохранить'>
     39        <button type='submit'>Сохранить</button>
    4040        </form><br><a href='/wikiphoto.php'>Галерея изображений</a>");
    4141}
Note: See TracChangeset for help on using the changeset viewer.