Ignore:
Timestamp:
08/21/08 21:06:15 (4 years ago)
Author:
hverton
Message:

Merged trunk revisions 1588:1665 into the PLi-Fusion branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PLi-Fusion/administration/news.php

    r1227 r1666  
    5151} 
    5252 
    53 // save the selection for the lastest news homepage panel 
    54 if (isset($_POST['save_latest'])) { 
    55  
    56     // validate the input 
    57     if (!is_array($_POST['headlines'])) fallback(BASEDIR."index.php"); 
    58     $headlines = $_POST['headlines']; 
    59     if (count($headlines) != $settings['news_headline']) fallback(BASEDIR."index.php"); 
    60      
    61     if (!is_array($_POST['newsitems'])) fallback(BASEDIR."index.php"); 
    62     $newsitems = $_POST['newsitems']; 
    63  
    64     // reset all headline news items before setting new ones 
    65     $result = dbquery("UPDATE ".$db_prefix."news SET news_headline = '0'"); 
    66     // save the new headlines 
    67     foreach($headlines as $key => $item) { 
    68         if ($item != 0) $result = dbquery("UPDATE ".$db_prefix."news SET news_headline = '".($settings['news_headline'] + 1 - $key)."' WHERE news_id = '".$item."'"); 
    69     } 
    70      
    71     // reset all lastest news items before setting new ones 
    72     $result = dbquery("UPDATE ".$db_prefix."news SET news_latest_news = '0'"); 
    73     // save the new latest news items 
    74     foreach($newsitems as $key => $item) { 
    75         if ($item != 0) $result = dbquery("UPDATE ".$db_prefix."news SET news_latest_news = '".($settings['news_items'] + 1 - $key)."' WHERE news_id = '".$item."'"); 
    76     } 
    77      
    78     // update the news_latest configuration flag 
    79     $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isset($_POST['news_latest']) ? "1" : "0")."' WHERE cfg_name = 'news_latest'"); 
    80      
     53// compose the query where clause based on the localisation method choosen 
     54switch ($settings['news_localisation']) { 
     55    case "none": 
     56        $where = ""; 
     57        $news_locale = ""; 
     58        break; 
     59    case "single": 
     60        $where = ""; 
     61        $news_locale = ""; 
     62        break; 
     63    case "multiple": 
     64        if (isset($_POST['news_locale'])) $news_locale = stripinput($_POST['news_locale']); 
     65        if (isset($news_locale)) { 
     66            $result = dbquery("SELECT * FROM ".$db_prefix."locale WHERE locale_code = '".stripinput($news_locale)."' AND locale_active = '1' LIMIT 1"); 
     67            if (!dbrows($result)) unset($news_locale); 
     68        } 
     69        if (!isset($news_locale)) $news_locale = $settings['locale_code']; 
     70        $variables['news_locale'] = $news_locale; 
     71        $where = "news_locale = '".$news_locale."' "; 
     72        break; 
    8173} 
    8274 
    8375// fill the newsitems array for the newsitem selection dropdown 
    84 $result = dbquery("SELECT * FROM ".$db_prefix."news ORDER BY news_datestamp DESC"); 
     76$result = dbquery("SELECT * FROM ".$db_prefix."news ".($where==""?"":("WHERE ".$where))." ORDER BY news_datestamp DESC"); 
    8577$variables['newsitems'] = array(); 
    8678while ($data = dbarray($result)) { 
     
    8981} 
    9082 
    91 // controle variable to indicate which panel to show 
    92 $variables['latest_news_selection'] = isset($_POST['latest']) || isset($_POST['save_latest']); 
    93  
    94 if ($variables['latest_news_selection']) { 
    95  
    96     // build the list of available news cards 
    97     $newslist = array(); 
    98     // and an empty first entry 
    99     $newslist[] = array('news_id' => 0, 'news_subject' => "", 'news_cat_name' => "", 'news_new_cat' => 1, 'selected' => 0); 
    100     $result = dbquery("SELECT n.news_id, n.news_subject, c.news_cat_name FROM ".$db_prefix."news n, ".$db_prefix."news_cats c WHERE n.news_cat = c.news_cat_id ORDER BY c.news_cat_name, n.news_datestamp DESC"); 
    101     $current_cat = ""; 
    102     while ($data = dbarray($result)) { 
    103         if ($data['news_cat_name'] != $current_cat) { 
    104             $data['news_new_cat'] = 1; 
    105             $current_cat = $data['news_cat_name']; 
    106         } else { 
    107             $data['news_new_cat'] = 0; 
    108         } 
    109         $data['selected'] = 0; 
    110         $newslist[] = $data; 
    111     } 
    112  
    113     // define the headlines array 
    114     $headlines = array(); 
    115     for ($i = 1; $i <= $settings['news_headline']; $i++) { 
    116         $result = dbquery("SELECT news_id FROM ".$db_prefix."news WHERE news_headline='".($settings['news_headline'] + 1 - $i)."'"); 
    117         if ($data = dbarray($result)) { 
    118             $news_id = $data['news_id']; 
    119         } else { 
    120             $news_id = 0; 
    121         } 
    122         $headlines[$i] = array(); 
    123         foreach($newslist as $item) { 
    124             if ($item['news_id'] == $news_id) $item['selected'] = 1; 
    125             $headlines[$i][] = $item; 
    126         } 
    127     } 
    128     $variables['headlines'] = $headlines; 
    129  
    130     // define the latest news items array 
    131     $newsitems = array(); 
    132     for ($i = 1; $i <= $settings['news_items']; $i++) { 
    133         $result = dbquery("SELECT news_id FROM ".$db_prefix."news WHERE news_latest_news='".($settings['news_items'] + 1 - $i)."'"); 
    134         if ($data = dbarray($result)) { 
    135             $news_id = $data['news_id']; 
    136         } else { 
    137             $news_id = 0; 
    138         } 
    139         $newsitems[$i] = array(); 
    140         foreach($newslist as $item) { 
    141             if ($item['news_id'] == $news_id) $item['selected'] = 1; 
    142             $newsitems[$i][] = $item; 
    143         } 
    144     } 
    145     $variables['newsitems'] = $newsitems; 
    146  
    147     // get the latest_news_only setting 
    148     $variables['news_latest'] = $settings['news_latest']; 
    149  
    150     // set the panel title 
    151     $title = $locale['540']; 
    152      
    153 } else if (isset($_POST['save'])) { 
     83if (isset($_POST['save'])) { 
    15484 
    15585    // save the news item 
     
    183113        redirect(FUSION_SELF.$aidlink."&status=su"); 
    184114    } else { 
    185         $result = dbquery("INSERT INTO ".$db_prefix."news (news_subject, news_cat, news_news, news_extended, news_breaks, news_name, news_datestamp, news_start, news_end, news_visibility, news_reads, news_allow_comments, news_allow_ratings) VALUES ('$news_subject', '$news_cat', '$body', '$body2', '$news_breaks', '".$userdata['user_id']."', '$news_post_date', '$news_start_date', '$news_end_date', '$news_visibility', '0', '$news_comments', '$news_ratings')"); 
     115        $result = dbquery("INSERT INTO ".$db_prefix."news (news_subject, news_cat, news_news, news_extended, news_breaks, news_name, news_locale, news_datestamp, news_start, news_end, news_visibility, news_reads, news_allow_comments, news_allow_ratings) VALUES ('$news_subject', '$news_cat', '$body', '$body2', '$news_breaks', '".$userdata['user_id']."', '$news_locale', '$news_post_date', '$news_start_date', '$news_end_date', '$news_visibility', '0', '$news_comments', '$news_ratings')"); 
    186116        redirect(FUSION_SELF.$aidlink."&status=sn"); 
    187117    } 
     
    227157            "minutes" => isNum($_POST['news_end']['minutes']) ? $_POST['news_end']['minutes'] : "0", 
    228158        ); 
    229         $news_date = array( 
    230             "mday" => isNum($_POST['news_date']['mday']) ? $_POST['news_date']['mday'] : "--", 
    231             "mon" => isNum($_POST['news_date']['mon']) ? $_POST['news_date']['mon'] : "--", 
    232             "year" => isNum($_POST['news_date']['year']) ? $_POST['news_date']['year'] : "----", 
    233             "hours" => isNum($_POST['news_date']['hours']) ? $_POST['news_date']['hours'] : "0", 
    234             "minutes" => isNum($_POST['news_date']['minutes']) ? $_POST['news_date']['minutes'] : "0", 
    235         ); 
     159        if (isset($_POST['news_date'])) { 
     160            $news_date = array( 
     161                "mday" => isNum($_POST['news_date']['mday']) ? $_POST['news_date']['mday'] : "--", 
     162                "mon" => isNum($_POST['news_date']['mon']) ? $_POST['news_date']['mon'] : "--", 
     163                "year" => isNum($_POST['news_date']['year']) ? $_POST['news_date']['year'] : "----", 
     164                "hours" => isNum($_POST['news_date']['hours']) ? $_POST['news_date']['hours'] : "0", 
     165                "minutes" => isNum($_POST['news_date']['minutes']) ? $_POST['news_date']['minutes'] : "0", 
     166            ); 
     167        } 
    236168        $news_comments = isset($_POST['news_comments']) ? 1 : 0; 
    237169        $news_ratings = isset($_POST['news_ratings']) ? 1 : 0; 
     
    271203    } else { 
    272204        if (isset($_POST['preview'])) { 
    273             $action = FUSION_SELF.$aidlink."&amp;news_id=$news_id"; 
     205            if (isset($news_id) && $news_id) { 
     206                $action = FUSION_SELF.$aidlink."&amp;news_id=$news_id"; 
     207                $title = $locale['400']; 
     208            } else { 
     209                $action = FUSION_SELF.$aidlink; 
     210                $title = $locale['404']; 
     211            } 
    274212        } else { 
    275213            $news_subject = ""; 
     
    282220            $news_visibility = 0; 
    283221            $action = FUSION_SELF.$aidlink; 
    284         } 
    285         $title = $locale['404']; 
     222            $title = $locale['404']; 
     223        } 
    286224    } 
    287225     
     
    319257} 
    320258 
     259// get the installed locales 
     260$variables['locales'] = array(); 
     261$result = dbquery("SELECT * FROM ".$db_prefix."locale WHERE locale_active = '1'"); 
     262while ($data = dbarray($result)) { 
     263    $variables['locales'][$data['locale_code']] = $data['locale_name']; 
     264} 
     265 
     266 
    321267// store the info to generate the panel 
    322268$template_panels[] = array('type' => 'body', 'name' => 'admin.news', 'title' => $title, 'template' => 'admin.news.tpl', 'locale' => "admin.news-articles"); 
Note: See TracChangeset for help on using the changeset viewer.