News.php padarymas index'u index.php
Parašė ozzWANTED 2008 kovo 25 23:03:39
Ganai seniai rašiau paskutinį savo straipsnelį, na o dabar bus pirmasis mano straipsnelis parašytas jau nebe HTML, o BB kodu.

Taigi, visų pirma daug kas paklaus - koks tikslas yra news.php daryti index'iu failu.
Atsakyčiau paprastai - tai turėtų būti visiškai neaktualu daugumai vartotojų, tačiau manau tikrai pravartus dalykas tiems, kas skundžiasi ilgu įėjimu į tinklapį suvedu tik portalo domeną, bei tiems kas užsiima backlinkų apsikeitimais/prekyba. Taip pat tai aktualu turėtų būti visiems tiems, kas besidomi Php-Fusion SEO(Search Engline Optimization), kadangi tai turėtų pagerinti paieškos vorų portalo index'avimą.

[u]Padaryti failą news.php index'u yra 2 būdai:[/u]
[b]1.[/b] Į pagalbą pasitelkti .htaccess, ir direktorijos indeksu padaryti ne index.php/index.html, o news.php/news.html.
[b]2.[/b] Padaryti news.php failo kopiją, ir jį paversti index.php failu.

[b]1.[/b]Pirmiausia, .htaccess variantas:
Čia viskas gana paprasta, jeigu serveris palaiko "mod_rewrite" funkciją, galima tiesiog į .htaccess failą šakninėje direktorijoje įrašyti tai:
[code]DirectoryIndex news.html news.php index.php index.html[/code]

Teoriškai pagal išdėstymo eilę serveris turėtų ieškoti tų 4 failų.

[b]2.[/b] Na o dabar kur kas sunkesnis būdas - news.php vertimas index.php:
1.Pirmiausia padarykite failo news.php kopiją ir pervadinkite jį į index.php.
2.Tuomet atsidarę failą index.php jo pradžią pakeiskite taip:
Iš tokio kodo failo pradžioje:
[code]require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";[/code]

Padarome tokį
[code]require_once "maincore.php";
require_once "subheader.php";
[color=red][b]$home_page = true;[/b][/color]
require_once "side_left.php";[/code]


Dabar atsidarome failą "side_left.php ir keičiame šį kodą taip:
Failo pradžioje po šio kodo:
[code]if (!defined("IN_FUSION")) { header("Location: index.php"); exit; }[/code]

Įrašome šią eilutę(kad neliktų neapibrėžtų kintamųjų):
[code]if(!isset($home_page)) { $home_page = false; }[/code]

Na o dabar keičiame šią eilutę:
[code]if ($p_data['panel_display'] == 1 || eregi($settings['opening_page']."$", FUSION_REQUEST.(FUSION_QUERY ? "?".FUSION_QUERY : ""))) {[/code]

Į štai šį kodą:
[code]if ($p_data['panel_display'] == 1 || eregi($settings['opening_page']."$", FUSION_REQUEST.(FUSION_QUERY ? "?".FUSION_QUERY : "")) || $home_page) {[/code]


Na o dabar nebūtini, tačiau vis dėl to rekomenduotinas kodo nedubliavimo žingsniai:
1.Atsidarome failą "index.php" ir ištriname iš jo visą "readmore" dalį:
1.1.Triname eilutę:
[code]if (!isset($readmore)) {[/code]
1.2.Ištriname visą readmore dalį:
[code]} else {
include INCLUDES."comments_include.php";
include INCLUDES."ratings_include.php";
$result = dbquery(
"SELECT tn.*, user_id, user_name FROM ".$db_prefix."news tn
LEFT JOIN ".$db_prefix."users tu ON tn.news_name=tu.user_id
WHERE news_id='$readmore'"
);
if (dbrows($result)!=0) {
$data = dbarray($result);
if (checkgroup($data['news_visibility'])) {
$news_cat_image = "";
if (!isset($_POST['post_comment']) && !isset($_POST['post_rating'])) {
$result2 = dbquery("UPDATE ".$db_prefix."news SET news_reads=news_reads+1 WHERE news_id='$readmore'");
$data['news_reads']++;
}
$news_subject = $data['news_subject'];
if ($data['news_cat'] != 0) {
$result2 = dbquery("SELECT * FROM ".$db_prefix."news_cats WHERE news_cat_id='".$data['news_cat']."'");
if (dbrows($result2)) {
$data2 = dbarray($result2);
$news_cat_image = "<a href='news_cats.php?cat_id=".$data2['news_cat_id']."'><img src='".IMAGES_NC.$data2['news_cat_image']."' alt='".$data2['news_cat_name']."' align='left' style='border:0px;margin-top:3px;margin-right:5px'></a>";
}
}
$news_news = stripslashes($data['news_extended'] ? $data['news_extended'] : $data['news_news']);
if ($data['news_breaks'] == "y") { $news_news = nl2br($news_news); }
if ($news_cat_image != "") $news_news = $news_cat_image.$news_news;
$news_info = array(
"news_id" => $data['news_id'],
"user_id" => $data['user_id'],
"user_name" => $data['user_name'],
"news_date" => $data['news_datestamp'],
"news_ext" => "n",
"news_reads" => $data['news_reads'],
"news_comments" => dbcount("(comment_id)", "comments", "comment_type='N' AND comment_item_id='".$data['news_id']."'"),
"news_allow_comments" => $data['news_allow_comments']
);
render_news($news_subject, $news_news, $news_info);
if ($data['news_allow_comments']) showcomments("N","news","news_id",$readmore,FUSION_SELF."?readmore=$readmore");
if ($data['news_allow_ratings']) showratings("N",$readmore,FUSION_SELF."?readmore=$readmore");
} else {
redirect(FUSION_SELF);
}
} else {
redirect(FUSION_SELF);
}
}[/code]

2.Iš index.php puslapiavimą perklialiame į news.php:
Dalį:
[code]if ($rows > $items_per_page) echo "<div align='center' style='margin-top:5px;'>\n".makePageNav($rowstart,$items_per_page,$rows,3)."\n</div>\n";[/code]

Keičiame į:
[code]if ($rows > $items_per_page) echo "<div align='center' style='margin-top:5px;'>\n".makePageNav($rowstart,$items_per_page,$rows,3,"news.php?"))."\n</div>\n";[/code]

3.Jeigu norite, galime iš failo index.php apskritai ištrinti galimybę turėti puslapius vedant informaciją per URL, tačiau tokiu atveju jau geriau turėti modifikuotą failą :).

Taip tiek informacijos. Jeigu kam ši informacija padės, bus malonu žinoti kad straipsnis buvo kažkam naudingas.

[b]2008 ©PhpFusion-Lt.com, @ozzWANTED[/b]