CuteNews polskie znaki


(Filipsko) #1

Jak zrobić aby w tym wspaniałym :lol: systemie newsów były polskie znaki? Bo tylko on mi działa i już mi się spodobał ze względu na łatwość zintegrowania newsów ze stroną. Trzeba charset=iso-8859-2 gdzieś wstawić? W pliku odpowiedzialnym za pokazywanie newsów? Ten plik nazywa się show_news.php a jego zawartość:

http://www.filips.ovh.org/show_news.txt

Jeżeli mam rację to powiedźcie gdzie mam wstawić kodowanie bo ja na PHP sie wcale nie znam.


(Maniooo666) #2

Witam,

Google przetrzepałeś?

CuteNews polskie znaki

i wio.

Przykłady:

http://forum.php.pl/index.php?showtopic ... l=cutenews

http://forum.webhelp.pl/viewtopic.php?t ... highlight=


(Filipsko) #3

Grrrr... zrobiłem wszystko a nawet więcej i nie działa :expressionless:


(Musialowski Tomasz) #4

poniższy kod skopiuj do notatnika i zapisz jako functions.inc

<?PHP



// bad practice, i know

if ($HTTP_SESSION_VARS) {extract($HTTP_SESSION_VARS, EXTR_SKIP);}

if ($_SESSION) {extract($_SESSION, EXTR_SKIP);}

if ($HTTP_COOKIE_VARS) {extract($HTTP_COOKIE_VARS, EXTR_SKIP);}

if ($_COOKIE) {extract($_COOKIE, EXTR_SKIP);}

if ($HTTP_POST_VARS) {extract($HTTP_POST_VARS, EXTR_SKIP);}

if ($_POST) {extract($_POST, EXTR_SKIP);}

if ($HTTP_GET_VARS) {extract($HTTP_GET_VARS, EXTR_SKIP);}

if ($_GET) {extract($_GET, EXTR_SKIP);}

if ($HTTP_ENV_VARS) {extract($HTTP_ENV_VARS, EXTR_SKIP);}

if ($_ENV) {extract($_ENV, EXTR_SKIP);}



//----------------------------------

// Sanitize Variables

//----------------------------------

if( isset($template) and $template != "" and !eregi("^[_a-zA-Z0-9-]{1,}$", $template)){ die("invalid template characters"); }

if( isset($archive) and $archive != "" and !eregi("^[_a-zA-Z0-9-]{1,}$", $archive)){ die("invalid archive characters"); }




if($PHP_SELF == ""){ $PHP_SELF = $HTTP_SERVER_VARS["PHP_SELF"]; }


$phpversion = @phpversion();


$a7f89abdcf9324b3 = "";


$comm_start_from = htmlspecialchars($comm_start_from);

$start_from = htmlspecialchars($start_from);

$archive = htmlspecialchars($archive);

$subaction = htmlspecialchars($subaction);

$id = htmlspecialchars($id);

$ucat = htmlspecialchars($ucat);


if(is_array($category)){ foreach($category as $ckey=>$cvalue){ $category[$ckey] = htmlspecialchars($category[$ckey]);} }

else{ $category = htmlspecialchars($category); }


$number = htmlspecialchars($number);

$template = htmlspecialchars($template);

$show = htmlspecialchars($show);



$config_version_name = "CuteNews v1.4.5";

$config_version_id = 180;





//----------------------------------

// Some Special Chars

//----------------------------------

$HTML_SPECIAL_CHARS = Array ( // Master array replaced ALWAYS !


    '”' => '”',

    '“' => '“',

    '' => 'œ',

    '™' => '™',

    '’' => '’',

    '‘' => '‘',

    '‰' => '‰',

    '…' => '…',

    '€' => '€',

    'ˇ' => '¡',

    '˘' => '¢',

    '' => '£',

    '¤' => '¤',

    '' => '¥',

    '¦' => '¦',

    '§' => '§',

    '¨' => '¨',

    '©' => '©',

    '' => 'ª',

    '«' => '«',

    '¬' => '¬',

    '­' => '­',

    '®' => '®',

    '' => '¯',

    '°' => '°',

    '' => '±',

    '˛' => '²',

    '' => '³',

    '´' => '´',

    '·' => '·',

    '¸' => '¸',

    '' => '¹',

    '' => 'º',

    '»' => '»',

    'Ľ' => '¼',

    '˝' => '½',

    'ľ' => '¾',

    '' => '¿',

);




///////////////////////////////////////////////////////

// Function: ResynchronizeAutoArchive

// Description: Auto-Archives News


function ResynchronizeAutoArchive(){

         global $cutepath, $config_auto_archive, $config_notify_email,$config_notify_archive,$config_notify_status;


 $count_news = count(file("$cutepath/data/news.txt"));

 if($count_news > 1){


         if($config_auto_archive == "yes"){


         $now[year] = date("Y");

         $now[month] = date("n");


         $db_content = file("$cutepath/data/auto_archive.db.php");

         list($last_archived[year], $last_archived[month]) = split("\|", $db_content[0] );



$tmp_now_sum = $now[year] . sprintf("%02d", $now[month]) ;

$tmp_last_sum = (int)$last_archived[year] . sprintf("%02d", (int)$last_archived[month]) ;


         if($tmp_now_sum > $tmp_last_sum){


            $error = FALSE;

            $arch_name = time();

            if(!@copy("$cutepath/data/news.txt","$cutepath/data/archives/$arch_name.news.arch")) { $error = "Can not copy news.txt from data/ to data/archives"; }

            if(!@copy("$cutepath/data/comments.txt","$cutepath/data/archives/$arch_name.comments.arch")) { $error = "Can not copy comments.txt from data/ to data/archives"; }



            $handle = fopen("$cutepath/data/news.txt","w") or $error = "Can not open news.txt";

                      fclose($handle);

            $handle = fopen("$cutepath/data/comments.txt","w") or $error = "Can not open comments.txt";

                      fclose($handle);



            $fp = @fopen("$cutepath/data/auto_archive.db.php", "w");

            @flock ($fp,2);


            if(!$errors){ fwrite($fp, $now[year]."|".$now[month]."\n"); }

            else{ fwrite($fp, "0|0|$error\n"); }

            foreach($db_content as $line){

                    @fwrite($fp, $line);

            }


            @flock ($fp,3);

            @fclose($fp);



            if($config_notify_archive == "yes" and $config_notify_status == "active"){

               send_mail("$config_notify_email", "CuteNews - AutoArchive was Performed", "CuteNews has performed the AutoArchive function.\n$count_news News Articles were archived.\n$error");

            }

         }

         }

 }

}


///////////////////////////////////////////////////////

// Function: ResynchronizePostponed

// Description: Refreshes the Postponed News file.


function ResynchronizePostponed(){

         global $cutepath,$config_notify_postponed,$config_notify_status,$config_notify_email;

         $all_postponed_db = file("$cutepath/data/postponed_news.txt");

         if(!empty($all_postponed_db)){

             $new_postponed_db = fopen("$cutepath/data/postponed_news.txt", w);

             @flock ($new_postponed_db,2);

             $now_date = time();


             foreach ($all_postponed_db as $p_line){

                 $p_item_db = explode("|",$p_line);

                 if($p_item_db[0] <= $now_date){

                 // Item is old and must be Activated, add it to news.txt



                         $all_active_db = file("$cutepath/data/news.txt");

                         $active_news_file = fopen("$cutepath/data/news.txt", "w");

                         @flock ($active_news_file,2);


                         fwrite($active_news_file,"$p_line");

                         foreach ($all_active_db as $active_line){ fwrite($active_news_file, "$active_line");}

                         @flock ($active_news_file,3);

                         fclose($active_news_file);




            if($config_notify_postponed == "yes" and $config_notify_status == "active"){

               send_mail("$config_notify_email", "CuteNews - Postponed article was Activated", "CuteNews has activated the article '$p_item_db[2]'");

            }


                 }else{

                 // Item is still postponed

                    fwrite($new_postponed_db,"$p_line");

                 }




            }

            @flock ($new_postponed_db,3);

            fclose($new_postponed_db);

         }


}


///////////////////////////////////////////////////////

// Function: send_mail

// Description: sends mail ... huh :)


function send_mail($to, $subject, $message){


if(!isset($to) or !$to or $to == ''){ }else{


         $tos = FALSE;

         $to = str_replace(' ', '', $to);

         if(eregi(',', '')){

            $tos = explode(',', $to);

         }


         $from = 'CuteNews@' . $_SERVER['SERVER_NAME'];


         $headers = '';

         $headers .= "From: $from\n";

         $headers .= "Reply-to: $from\n";

         $headers .= "Return-Path: $from\n";

         $headers .= "Message-ID: <" . md5(uniqid(time())) . "@" . $_SERVER['SERVER_NAME'] . ">\n";

         $headers .= "MIME-Version: 1.0\n";

         $headers .= "Content-type: text/plain;\n";

         $headers .= "Date: " . date('r', time()) . "\n";


         if($tos){

            foreach($tos as $my_to){

               @mail($my_to,$subject,$message,$headers);

            }

         }else{ @mail($to,$subject,$message,$headers); }


}

}


///////////////////////////////////////////////////////

// Function: formatsize

// Description: Format the size of given file


function formatsize($file_size){


    if($file_size >= 1073741824)

            {$file_size = round($file_size / 1073741824 * 100) / 100 . "Gb";}

    elseif($file_size >= 1048576)

            {$file_size = round($file_size / 1048576 * 100) / 100 . "Mb";}

    elseif($file_size >= 1024)

            {$file_size = round($file_size / 1024 * 100) / 100 . "Kb";}

    else{$file_size = $file_size . "b";}


return $file_size;

}


///////////////////////////////////////////////////////

// Class: microTimer

// Description: calculates the micro time


class microTimer {

    function start() {

        global $starttime;

        $mtime = microtime ();

        $mtime = explode (' ', $mtime);

        $mtime = $mtime[1] + $mtime[0];

        $starttime = $mtime;

    }

    function stop() {

        global $starttime;

        $mtime = microtime ();

        $mtime = explode (' ', $mtime);

        $mtime = $mtime[1] + $mtime[0];

        $endtime = $mtime;

        $totaltime = round (($endtime - $starttime), 5);

        return $totaltime;

    }

}



///////////////////////////////////////////////////////

// Function: check_login

// Description: Check login information


function check_login($username, $md5_password){

        $result = FALSE;

    $full_member_db = file("./data/users.db.php");

    global $member_db;


    foreach($full_member_db as $member_db_line)

    {

                if(!eregi("<\?",$member_db_line)){

                $member_db = explode("|",$member_db_line);

                if(strtolower($member_db[2]) == strtolower($username) && $member_db[3] == $md5_password)

                {

                                $result = TRUE;

                    break;

            }

                }

        }

        return $result;

}


///////////////////////////////////////////////////////

// Function: cute_query_string

// Description: Format the Query_String for CuteNews purpuses index.php?


function cute_query_string($q_string, $strips, $type="get"){

        foreach($strips as $key){

                $strips[$key] = TRUE;

    }

        $var_value = explode("&", $q_string);


    foreach($var_value as $var_peace){

        $parts = explode("=", $var_peace);

        if($strips[$parts[0]] != TRUE and $parts[0] != ""){

                        if($type == "post"){

                    $my_q .= "\n";

            }else{

                    $my_q .= "$var_peace&";

                        }

        }

    }


if( substr($my_q, -5) == "&" ){ $my_q = substr($my_q, 0, -5); }


return $my_q;

}


///////////////////////////////////////////////////////

// Function: Flooder

// Description: Flood Protection Function

function flooder($ip, $comid){

    global $cutepath, $config_flood_time;


    $old_db = file("$cutepath/data/flood.db.php");

    $new_db = fopen("$cutepath/data/flood.db.php", w);

    $result = FALSE;

    foreach($old_db as $old_db_line){

        $old_db_arr = explode("|", $old_db_line);


        if(($old_db_arr[0] + $config_flood_time) > time() ){

                fwrite($new_db, $old_db_line);

                if($old_db_arr[1] == $ip and $old_db_arr[2] == $comid)

            { $result = TRUE; }

        }

    }

    fclose($new_db);

    return $result;

}


////////////////////////////////////////////////////////

// Function: msg

// Description: Displays message to user


function msg($type, $title, $text, $back=FALSE){

  echoheader($type, $title);

  global $lang;

          echo"

| $text"; if($back){ echo"go back"; } echo" |

"; echofooter(); exit(); } //////////////////////////////////////////////////////// // Function: echoheader // Description: Displays header skin function echoheader($image, $header_text){ global $PHP_SELF, $is_loged_in, $config_skin, $skin_header, $lang_content_type, $skin_menu, $skin_prefix, $config_version_name; if($is_loged_in == TRUE){ $skin_header = preg_replace("/{menu}/", "$skin_menu", "$skin_header"); } else { $skin_header = preg_replace("/{menu}/", "   $config_version_name", "$skin_header"); } $skin_header = get_skin($skin_header); $skin_header = preg_replace("/{image-name}/", "${skin_prefix}${image}", $skin_header); $skin_header = preg_replace("/{header-text}/", $header_text, $skin_header); $skin_header = preg_replace("/{content-type}/", $lang_content_type, $skin_header); echo $skin_header; } //////////////////////////////////////////////////////// // Function: echofooter // Description: Displays footer skin function echofooter(){ global $PHP_SELF, $is_loged_in, $config_skin, $skin_footer, $lang_content_type, $skin_menu, $skin_prefix, $config_version_name; if($is_loged_in == TRUE){ $skin_footer = preg_replace("/{menu}/", "$skin_menu", "$skin_footer"); } else { $skin_footer = preg_replace("/{menu}/", "   $config_version_name", "$skin_footer"); } $skin_footer = get_skin($skin_footer); $skin_footer = preg_replace("/{image-name}/", "${skin_prefix}${image}", $skin_footer); $skin_footer = preg_replace("/{header-text}/", $header_text, $skin_footer); $skin_footer = preg_replace("/{content-type}/", $lang_content_type, $skin_footer); // Do not remove the Copyrights! $skin_footer = preg_replace("/{copyrights}/", "
Powered by $config_version_name © 2005 CutePHP.
", $skin_footer); echo $skin_footer; } //////////////////////////////////////////////////////// // Function: b64dck // Description: And the duck fly away. function b64dck(){ $cr = bd_config('e2NvcHlyaWdodHN9');$shder = bd_config('c2tpbl9oZWFkZXI=');$sfter = bd_config('c2tpbl9mb290ZXI='); global $$shder,$$sfter; $HDpnlty = bd_config('PGNlbnRlcj48aDE+Q3V0ZU5ld3M8L2gxPjxhIGhyZWY9Imh0dHA6Ly9jdXRlcGhwLmNvbSI+Q3V0ZVBIUC5jb208L2E+PC9jZW50ZXI+PGJyPg=='); $FTpnlty = bd_config('PGNlbnRlcj48ZGl2IGRpc3BsYXk9aW5saW5lIHN0eWxlPVwnZm9udC1zaXplOiAxMXB4XCc+UG93ZXJlZCBieSA8YSBzdHlsZT1cJ2ZvbnQtc2l6ZTogMTFweFwnIGhyZWY9XCJodHRwOi8vY3V0ZXBocC5jb20vY3V0ZW5ld3MvXCIgdGFyZ2V0PV9ibGFuaz5DdXRlTmV3czwvYT4gqSAyMDA1ICA8YSBzdHlsZT1cJ2ZvbnQtc2l6ZTogMTFweFwnIGhyZWY9XCJodHRwOi8vY3V0ZXBocC5jb20vXCIgdGFyZ2V0PV9ibGFuaz5DdXRlUEhQPC9hPi48L2Rpdj48L2NlbnRlcj4='); if(!stristr($$shder,$cr) and !stristr($$sfter,$cr)){ $$shder = $HDpnlty.$$shder; $$sfter = $$sfter.$FTpnlty; } } //////////////////////////////////////////////////////// // Function: CountComments // Description: Count How Many Comments Have a Specific Article function CountComments($id, $archive = FALSE){ global $cutepath; if($cutepath == ""){ $cutepath = "."; } $result = "0"; if($archive and ($archive != "postponed" and $archive != "unapproved")){ $all_comments = file("$cutepath/data/archives/${archive}.comments.arch"); } else{ $all_comments = file("$cutepath/data/comments.txt"); } foreach($all_comments as $comment_line) { $comment_arr_1 = explode("|>|", $comment_line); if($comment_arr_1[0] == $id) { $comment_arr_2 = explode("||", $comment_arr_1[1]); $result = count($comment_arr_2)-1; } } return $result; } //////////////////////////////////////////////////////// // Function: insertSmilies // Description: insert smilies for adding into news/comments function insertSmilies($insert_location, $break_location = FALSE, $admincp = FALSE, $wysiwyg = FALSE) { global $config_http_script_dir, $config_smilies; $smilies = explode(",", $config_smilies); foreach($smilies as $smile) { $i++; $smile = trim($smile); if($admincp){ if($wysiwyg){ // $advanced_smile = "\':$smile:\'"; // $output .= " \"$smile\""; $output .= " \"$smile\""; } else{ $output .= " \"$smile\""; } }else{ $output .= "\"$smile\""; } if($i%$break_location == 0 and $break_location) { $output .= " "; }else{ $output .= " "; } } return $output; } //////////////////////////////////////////////////////// // Function: replace_comments // Description: Replaces comments charactars function replace_comment($way, $sourse){ global $HTML_SPECIAL_CHARS, $config_allow_html_in_news, $config_allow_html_in_comments, $config_http_script_dir, $config_smilies; $sourse = stripslashes(trim($sourse)); if($way == "add"){ $find = array( "'\"'", "'\''", "''", "''", "'\|'", "'\n'", "'\r'", ); $replace = array( """, "'", "", "", "|", " ", "", ); } elseif($way == "show"){ $find = array( "'[b](.*?)[/b]'i", "'[i](.*?)[/i]'i", "'[u](.*?)[/u]'i", "'[link](.*?)[/link]'i", "'[link=(.*?)](.*?)[/link]'i", "'[quote name=(.*?)](.*?)[/quote]'", "'[quote](.*?)[/quote]'", ); $replace = array( " `", "_`_", "`", "`", "\2", "> quote (`):



(Filipsko) #5

Niezły kod! :]

A nie jako functions.inc. php? Bo tam taki plik własnie jest.


(Musialowski Tomasz) #6

całkiem możliwe. raczej tak. i co działa :?:


(Filipsko) #7

Nie działa. Oto efekt:

http://www.filips.ovh.org/cutenews/


(Musialowski Tomasz) #8

spróbuj jeszcze w skinie którego używasz zmienić kodowanie po

$skin_headrer= <<

powinno to wyglądać tak:

[code]$skin_header = <<


(Filipsko) #9

Próbowałem, gdzieś to było napisane :frowning: mimo to spróbję jeszcze raz :frowning: może się uda...


(Musialowski Tomasz) #10

u mnie to zadziałało (cutenews v 1.4.5) może masz inną wersje :?:


(Filipsko) #11

1.4.5. może mi jakoś prześlesz pliki w których dokonywałeś zmian i ja porównam wszystkie te pliki :frowning: bo nie zadziałało. Na serwer wrzucisz spakowane albo coś :frowning:

Złączono Posta : 05.07.2006 (Sro) 16:52

Ustawienie kodowania na iso 8859-2 :?:


(Kloc221) #12

Sposób który podaje kolega kemot_90 jest bardzo dobry i przede wszystkim działa. FilipS Widocznie coś robisz źle...