[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вид ссылок )
ssvih
Доброго времени суток, пробую переделать CMS CNCat под себя, ну основная работа проделана, есть кое какие неудобства но функционал устраивает полностью.
Не устраивает одно вид ссылок на статью имеет http://001.lc/catalog/ext/7/ вот эта часть "/ext/7/" откуда взялась не понятно совсем, в то время вид ссылок на каталог http://001.lc/catalog/date/housing/ и под каталог http://001.lc/catalog/date/housing/pets/ хотелось бы сделать так чтобы ссылка на статью имела дружественный вид http://001.lc/catalog/date/housing/pets/7/ хотя бы так, то есть статья находится в каталоге дом и квартира, подкаталог домашние животные и номер статьи в каталоге на худой конец порядковый номер статьи!
CMS можно скачать с Оф сайта http://www.cn-software.com/ru/cncat/download/
Версия 3.1 - http://www.cn-software.com/ru/cncat/downlo....1-src-free.zip
Надеюсь на помощь!



Спустя 1 день, 2 часа, 22 минуты, 55 секунд (4.06.2011 - 16:17) ssvih написал(а):
Ребят ну помогите нубам ) Не ужели так сложно? Я решил предположить что вид ссылки такой как он есть зависит от mod_rewrite, в файле .htaccess нашел следующее
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^catalog/(.*) sefriendly.php
</IfModule>

Но снова ступор, не могу разобраться, что делать с sefriendly.php

Спустя 14 минут, 21 секунда (4.06.2011 - 16:31) Игорь_Vasinsky написал(а):
у тя гдето есть функция или класс построения ссылок - вот она то и делает такие линки. Поищи.

Спустя 24 минуты, 27 секунд (4.06.2011 - 16:56) ssvih написал(а):
Да я понимаю что это где-то есть, а где и как это выглядит а тем более работает не знаю, читаю форумы ищу в нете что да как, на данный момент ничего не смог найти, вот пишу здесь тем кто знает, если не трудно посмотреть и подсказать что да как.

Спустя 4 минуты, 34 секунды (4.06.2011 - 17:00) Игорь_Vasinsky написал(а):
ну а как ты хотел, если явно не видно где директория с классами или функциями - стало быть - нужно открыть файл где есть вывод подобной ссылки - посмотреть что где и как инклудится, во так вот и найдётся (в названии может присутствовать _links_)

Спустя 8 минут, 13 секунд (4.06.2011 - 17:09) ssvih написал(а):
Ну вот смотри в .htaccess из того что ниже
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^catalog/(.*) sefriendly.php
</IfModule>

Понятно что перед тем самым зловестным /ext/ идет /catalog а далее идет обращение к sefriendly.php
Его содержимое что описано ниже
<?php

include_once ("./_funct.php");

$cat["seabs"]=substr($_SERVER["PHP_SELF"],0,-14);
while (substr($cat["seabs"],-1)=="/") $cat["seabs"]=substr($cat["seabs"],0,-1);

$url=$_SERVER["REQUEST_URI"];

if (substr($url,0,strlen($cat["seabs"]))==$cat["seabs"]) $url=substr($url,strlen($cat["seabs"]));

$url=explode("/",$url);

$seFriendlyOrder=$url[2];

if (substr($url[count($url)-1],-5)==".html")
{
$seFriendlyPage=intval(substr($url[count($url)-1],0,-5));
unset($url[count($url)-1]);
}
else
$seFriendlyPage = 0;

unset($url[0]);
unset($url[1]);
unset($url[2]);


// External link info
if ($seFriendlyOrder=="ext")
{
$_SERVER["QUERY_STRING"] = $url[3];
include "./ext.php";
}
else
// Category
{
$seFriendlyUrl=implode("/",$url);
if (substr($seFriendlyUrl,-1)=="/") $seFriendlyUrl=substr($seFriendlyUrl,0,-1);

$_GET=Array();
if (empty ($cid))
{
$r=mysql_query("SELECT cid FROM ".$db["prefix"]."cat_linear WHERE url='".mysql_escape_string($seFriendlyUrl)."';") or die(mysql_error());
if ($a=mysql_fetch_assoc($r))
$_GET["c"]=$a["cid"];
}
else
$_GET["c"] = $cid;



$_GET["o"] = getOrderStrId($seFriendlyOrder);
$_GET["start"]=intval($seFriendlyPage);

include "./index.php";
}
?>

Из файла видно что инклюдится _funct.php, ext.php и index.php
Так же трудно не заметить
// External link info
if ($seFriendlyOrder=="ext")

Это все что я смог найти, а что теперь? (((

Спустя 1 минута, 25 секунд (4.06.2011 - 17:10) ssvih написал(а):
Да когда меняю здесь ext сайт перестает показывать статьи, и кидает на главную!
// External link info
if ($seFriendlyOrder=="ext")


Спустя 1 минута, 56 секунд (4.06.2011 - 17:12) Игорь_Vasinsky написал(а):
вот этот код - даёт обратный эффект мод реврайт
а есть где то которая формирует линки в мод реврайт.

Спустя 2 минуты, 19 секунд (4.06.2011 - 17:14) ssvih написал(а):
Содержимое _funct.php
Свернутый текст
<?php

// SSCat root directory
$INCLUDE_ROOT = dirname (__FILE__)."/";

// Initialization
include $INCLUDE_ROOT."admin/_init.php";

header ("Content-Type: text/html; charset=".$LANG["charset"]);


/** Display menu from "bmenu" template */
function displayMenu()
{
GLOBAL $TMPL, $LANG, $cat, $db;
$template=$TMPL["bmenu"];
$template=str_replace("%MODERATORSTEXT",$LANG["moderators"],$template);
$template=str_replace("%ADDLINKTEXT",$LANG["addlink"],$template);
$template=str_replace("%MAINTEXT",$LANG["main"],$template);
print $template;
}

function displayBrokenScript()
{
GLOBAL $TMPL, $LANG, $cat, $db;
$template=$TMPL["brokenscript"];
$template=str_replace("%YESTEXT",$LANG["yes"],$template);
$template=str_replace("%NOTEXT",$LANG["no"],$template);
$template=str_replace("%BROKENSURETEXT",$LANG["brokensure"],$template);
print $template;
}

function displaySearchForm($q="")
{
GLOBAL $TMPL, $LANG, $cat, $db;
$sform=$TMPL["searchform"];
$sform=str_replace("%SEARCHTEXT",$LANG["search"],$sform);
$sform=str_replace("%QUERYTEXT",$q,$sform);
print $sform;
}


/** Display links from mysql result. Used in index.php and search.php */
function displayLinks(&$r, $search="")
{
GLOBAL $LANG, $TMPL, $cat;
$cnt=mysql_num_rows($r);

while ($ar=mysql_fetch_array($r))
{
$best = $ar["moder_vote"]==10;
$admin="";
if (isAdmin())
{
$admin.="<font color=gray size=-3> [<a href=".mp("%ABS/admin/edit.php?lid=".$ar["lid"]."&type=255")." class=slink>".$LANG["edit"]."</a>]";
$admin.="[<a href=".mp("%ABS/admin/moveto.php?lid=".$ar["lid"]."&type=1&to=2 class=slink.").">".$LANG["delete"]."</a>] [";
for ($j=1;$j<11;$j++)
{
if ($j==$ar["moder_vote"]) $admin.="<B>".$j."</B> ";
else $admin.="<a href=".mp("%ABS/admin/vote.php?lid=".$ar["lid"]."&vote=$j&type=255")." class=slink>".$j."</a> ";
}
$admin.="]";
$admin.=" [<a href='".mp("%ABS/admin/docheck.php?t=2&lid=".$ar["lid"])."&back=".urlencode($_SERVER["REQUEST_URI"])."'>".$LANG["check_docheck"]. "</a>]";
$admin.="</font>";

}

$template=($best==1)?$TMPL["bestlinksbit"]:$TMPL["linksbit"];

if ($cat["showextinfolink"]==1)
$template=str_replace("%EXTINFOLINK",$TMPL["extinfolink"],$template);
else
$template=str_replace("%EXTINFOLINK","",$template);

$template=str_replace("%ID",$ar["lid"],$template);
$template=str_replace("%EXTENDEDINFOURL",getExtendedInfoUrl($ar["lid"]),$template);
if (!empty ($search))
{
$template=str_replace("%TITLE", hl($ar["title"], $search),$template);
$template=str_replace("%DESC",hl(rehtml($ar["description"]), $search),$template);
}
else
{
/* $parseUrl = parse_url($ar["url"]);
$favicon = "<img border=0 width=16 height=16 src=\"
http://favicon.yandex.net/favicon/".$parseUrl["host"]."\"> ";
$template=str_replace("%TITLE",$favicon.$ar["title"],$template);
*/

$template=str_replace("%TITLE",rehtml($ar["title"], false),$template);
$template=str_replace("%DESC",rehtml($ar["description"]),$template);
}
$template=str_replace("%URL",$ar["url"],$template);

$template=str_replace("%FULLDESC",rehtml($ar["fulldesc"]),$template);
$template=str_replace("%KEYWORDS",rehtml($ar["keywords"], false),$template);

$template=str_replace("%GIN",$ar["gin"],$template);
$template=str_replace("%GOUT",$ar["gout"],$template);
$template=str_replace("%MODERVOTE",$ar["moder_vote"],$template);
$template=str_replace("%RATINGPR",$ar["pr"]>=0 ? $ar["pr"] : "?",$template);
$template=str_replace("%RATINGCY",$ar["cy"]>=0 ? $ar["cy"] : "?",$template);
$template=str_replace("%BEST","<img src=".mp("%ABS/cat/star.gif")." width=15 height=16 hspace=3>",$template);
$template=str_replace("%BROKENTEXT",$LANG["broken"],$template);
$template=str_replace("%RESFIELD1",$ar["resfield1"],$template);
$template=str_replace("%RESFIELD2",$ar["resfield2"],$template);
$template=str_replace("%RESFIELD3",$ar["resfield3"],$template);
$template=str_replace("%ADMINIFACE",$admin,$template);
print $template;
}
}


/**
* Creates SQL query condition for search string
*
@param q query string
*
@return SQL string
*/

function createSearchCondition($q)
{
$q=trim($q);
$lq=strtolower($q);
$uq=strtoupper($q);

$is=0;
/* ID Search */
if (substr($q,0,3)=="id:")
{
$likes="m.lid=".intval(substr($uq,3));
$is=1;
}
/* URL Search */
if (substr($q,0,4)=="url:")
{
$tq=trim(substr($uq,4));
if (substr($tq,0,7)!="http://") $tq="http://".$tq;

$likes="UPPER(m.url) like '".$tq."%'";
$is=1;
}
/* REGEXP */
if (substr($q,0,6)==""" && substr($q,-6)==""")
{
$uq=trim(substr($uq,6,-6));
$lq=trim(substr($lq,6,-6));
$likes.=" OR UPPER(m.description) regexp '[[:<:]]".$uq."[[:>:]]'";
$likes.=" OR UPPER(m.title) regexp '[[:<:]]".$uq."[[:>:]]'";
$likes.=" OR UPPER(m.url) regexp '[[:<:]]".$uq."[[:>:]]'";
$likes.=" OR UPPER(m.fulldesc) regexp '[[:<:]]".$uq."[[:>:]]'";
$likes.=" OR UPPER(m.keywords) regexp '[[:<:]]".$uq."[[:>:]]'";
$likes=substr($likes,4);
$is=1;
}
/* Simple search */
if ($is==0)
{
$likes="";
$ph=explode(" ",$uq);
for ($i=0;$i<count($ph);$i++)
{
if (!empty ($ph[$i]))
{
$pq="%".$ph[$i]."%";
$likes.=" OR UPPER(m.description) like '$pq'";
$likes.=" OR UPPER(m.title) like '$pq'";
$likes.=" OR UPPER(m.url) like '$pq'";
$likes.=" OR UPPER(m.fulldesc) like '$pq'";
$likes.=" OR UPPER(m.keywords) like '$pq'";
}
}

$likes=substr($likes,4);
}

return $likes;
}

function qp_enc( $input = "", $line_max = 1000, $space_conv = true )
{
$hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
$lines = preg_split("/(?:\r\n|\r|\n)/", $input);
$eol = "?=\r\n\t";
$escape = "=";
$output = "";
$charset = "=?Windows-1251?Q?";

while( list(, $line) = each($lines) ) {
$linlen = strlen($line);
$newline = "";
for($i = 0; $i < $linlen; $i++) {
$c = substr( $line, $i, 1 );
$dec = ord( $c );
if ( ( $i == 0 ) && ( $dec == 46 ) ) {
$c = "=2E";
}
if ( $dec == 32 ) {
if ( $i == ( $linlen - 1 ) ) {
$c = "_";
} else if ( $space_conv ) {
$c = "_";
}
}
elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) {
$h2 = floor($dec/16);
$h1 = floor($dec%16);
$c = $escape.$hex["$h2"].$hex["$h1"];
}
if ( (strlen($newline) + strlen($c)) >= $line_max ) {
$output .= $charset.$newline.$eol;
$newline = "";
if ( $dec == 46 ) {
$c = "=2E";
}
}

$newline .= $c;
} // end of for
$output .= $charset.$newline.$eol;
} // end of while
return trim(str_replace("\r\n","\n",$output));
}



?>

Содержимое ext.php
Свернутый текст
<?php

include_once "./_funct.php";


$r=mysql_query("SELECT name,html FROM ".$db["prefix"]."templates;") or die(mysql_error());
while ($a=mysql_fetch_assoc($r)) $TMPL[$a["name"]]=$a["html"];

foreach ($TMPL as $t=>$v) $TMPL[$t]=mp($v);
$COPY=mp($COPY);

$lid=intval($_SERVER["QUERY_STRING"]);
$r=mysql_query("SELECT * FROM ".$db["prefix"]."main WHERE lid='$lid' and type<=1;") or die(mysql_error());


if ($link = mysql_fetch_array($r))
{
if ($link["type"]==1)
{
$title = rehtml($link["title"], false);
$keywords = rehtml($link["keywords"], false);
include "./_top.php";
?>
<STYLE>

h1{
font: 20px sans-serif;
padding: 5px;
}
</STYLE>
<table
border=0 width=100%>
<tr>
<td
valign=top width=15%></td>
<td
width=70%><center><a href="<?php echo mp("%ABS/jump.php?".$link["lid"]) ?>"><B><?php echo rehtml($link["title"], false)?></B></a></center></td>
<td
ROWSPAN=4 widht=15%><?php echo ($link["reklama"]) ?><!-- правое меню рекламы--></td>
</tr>
<tr><td
valign=top></td><td><a href="<?php echo $link["url"] ?>"></a></td></tr>
<tr><td
valign=top></td><td></td></tr>
<?php

if (!empty ($link["fulldesc"]))
{
?><HTML><tr><td valign=top></td><td><BODY><?php echo ($link["fulldesc"]) ?></td></tr><?php
}

if (!empty ($link["keywords"]))
{
?><tr><td valign=top><?php $LANG["keywords"]?></td><td><?php rehtml($link["keywords"], false) ?></td></tr><?php
}
?>
<tr>
<td
valign=top><b><?php echo $LANG["category"]?>:</b></td>
<td
valign=top>
<?php

$query = "select cl.cid, cl.name, cl.url from ".$db["prefix"]."lincat lc left join ".$db["prefix"]."cat_linear cl on lc.cid=cl.cid WHERE lid='".$lid."' order by priority";
$rcats = mysql_query($query) or die (mysql_error());
while ($category = mysql_fetch_array ($rcats, MYSQL_ASSOC))
{
?><a href="<?php echo getCatUrl($category["cid"], $category["url"])?>"><?php echo $category["name"]?></a><br><?php
}
?>
</td>
</tr>

<tr><td
valign=top><b><?php echo $LANG["author"]?>:</b></td><td><?php echo $link["author"]?></td></tr>
<tr><td
valign=top><b><?php echo $LANG["email"]?>:</b></td><td><?php echo $link["email"]?></td></tr>
<tr><td
valign=top><b><?php echo $LANG["tosite"]?>:</b></td><td><?php echo $link["gout"]?></td></tr>

</table>
<?php

include "./_bottom.php";
}
else
{
$title = $CATNAME;
$keywords = "";
include "./_top.php";
?><?php echo $LANG["link_not_submitted"] ?><?php
include "./_bottom.php";
}
}

else
{
die("URL not found.");
}

?>

Ну и содержимое индекса
Свернутый текст
<?php

// Initialization
if (!is_file("config.php"))
{
?>
<HTML>
<a
href="install/">Please click here to install SSCat.</a> <br><font size=small>Do not forget to create files config.php, _top.php and _bottom.php after installation.</font><br>
Documentation: <a href="man/en/index.htm">English</a>, <a href="man/ru/index.htm">Russian</a>.
<BODY>
<?php
die
;
}
if (!is_file("_top.php"))
{
?>
<HTML>

Please create the file "_top.php".<br>
Documentation: <a href="man/en/index.htm">English</a>, <a href="man/ru/index.htm">Russian</a>.
<BODY>
<?php
die
;
}
if (!is_file("_bottom.php"))
{
?>
<HTML>

Please create the file "_bottom.php".<br>
Documentation: <a href="man/en/index.htm">English</a>, <a href="man/ru/index.htm">Russian</a>.
<BODY>
<?php
die
;
}

include_once "./_funct.php";

// Check if install.php exists
if (is_dir("install"))
{
// Check if install is not completed (previous version installed)
$oldVer = true;
$res = mysql_query ("show columns from ".$db["prefix"]."cat") or die (mysql_error());
while ($row = mysql_fetch_assoc ($res))
{
// field "disableadd" in table "cncat_cat" was added in version 0.1
if ($row["Field"]=="disableadd")
{
$oldVer = false;
break;
}
}


if ($oldVer)
{
// Old version is installed - please install.
?>
<HTML>
<a
href="install/">Please click here to install SSCat.</a> <br><font size=small>Do not forget to create files config.php, _top.php and _bottom.php after installation.</font><br>
Documentation: <a href="man/en/index.htm">English</a>, <a href="man/ru/index.htm">Russian</a>.
<BODY>
<?php
die
;
}
else
{
// 0.1 is installed. Remove the "install" directory.
echo $LANG["remove_install"];
?><br>Documentation: <a href="man/en/index.htm">English</a>, <a href="man/ru/index.htm">Russian</a>.<?php
die
;
}
}





/* Request parameters */
// category ID

$c=intval($_GET["c"]);

// page
$start=intval($_GET["start"]);

// sort order
$o=$_GET["o"];
$defaultorder=intval($cat["defaultorder"]);
if ($defaultorder<0 || $defaultorder>5) $defaultorder=0;
if (($o<0 && $o>5) || !isset($o)) $o=$defaultorder;
$ostr=getOrderStr($o);


/* Rendering page */

// Get info for current and parent categories

$parentLinks="";
$url="";
$title="";
getCategoryInfo($c, $title, $url, $parentLinks);

// Page title
if (!empty($title))
$title .= " / ".$CATNAME;
else
$title = $CATNAME;

include "./_top.php";

// Initialization warnings
displayWarnings();

// Block from template "Menu" (Directory index | Submit a site | Administration)
displayMenu();

// JavaScript for broken links ("brokenscript" template);
displayBrokenScript();

// Block from template "Search form"
displaySearchForm();

// Directory title and path to the current category
displayCategoryPath($c, $parentLinks);

// List of child categories
displayCategories($c);

// New links
displayNewLinks($c);

// Sort order
displaySortOrderCat($c, $o, $url);

// Links in the current category
$total = displayCategoryLinks($c, $o, $start);

// Page navigation
displayPages($c, $o, $url, $total, $start);

// Block from template "Menu" (Directory index | Submit a site | Administration)
displayMenu();

// Page bottom
include "./_bottom.php";




/***********************************************
* Service functions
***********************************************/


function getCategoryInfo($c, &$title, &$url, &$parentLinks)
{
GLOBAL $TMPL, $LANG, $cat, $db;
$cid=$c;
do
{
$r=mysql_query("SELECT c.parent,c.name,c.cid,l.url FROM ".$db["prefix"]."cat c,".$db["prefix"]."cat_linear l WHERE c.cid='$cid' AND c.cid=l.cid;") or die(mysql_error());
if (mysql_num_rows($r)==1)
{
$ct = mysql_fetch_assoc($r);
if ($cid==$c)
{
$title = $ct["name"];
$url = $ct["url"];
$parentLinks = $ct["name"];
}
else
$parentLinks="<a class=bold href=\"".getCatUrl ($ct["cid"], $ct["url"])."\">".$ct["name"]."</a> » ".$parentLinks;
$cid=$ct["parent"];
}
else $cid=0;
} while ($cid!=0);
};

/***********************************************
* Display functions
***********************************************/


function displayWarnings()
{
GLOBAL $warning;
if (!empty($warning))
{
print "<div align=\"center\"><div style='padding:5px;border: solid 1px red;width:500px;background-color:white;'>";
print "<B>Warning:</B> ".$warning;
print "</div></div>";
}
}



function displayCategoryPath($c, $parents)
{
GLOBAL $TMPL, $LANG, $cat, $db;
if ($cat["showpathonmain"]==1 || $c!=0)
{
$template=$TMPL["catname"];
$template=str_replace("%MAINTEXT",$cat["catname"],$template);
$template=str_replace("%OTHERTEXT",$parents,$template);

if (isAdmin() && $c>0)
$edit = "<a href='".mp("%ABS/admin/cat.php?mode=edit&cid=".$c)."&back=".urlencode($_SERVER["REQUEST_URI"])."'><img border=0 width=16 height=16 src=\"".mp("%ABS/cat/cat_edit.gif")."\"></a> ".
"<a href='".mp("%ABS/admin/cat.php?mode=add&cid=".$c)."&back=".urlencode($_SERVER["REQUEST_URI"])."'><img border=0 width=16 height=16 src=\"".mp("%ABS/cat/cat_new.gif")."\"></a>";
else
$edit="";

$template=str_replace("%ADMINIFACE",$edit,$template);
print $template;
}
}


function displayCategories($cid)
{
GLOBAL $cat,$TMPL,$db;

$showsubcats = $cat["showsubcats"]==2 || $cat["showsubcats"]==1 && $cid==0;
$catOrder = $cat["catsort"]==0 ? "c.name" : "c.sortorder, c.name";

$query = "SELECT c.name,c.cid,c.count,l.url FROM ".$db["prefix"]."cat c,".$db["prefix"]."cat_linear l WHERE c.parent='$cid' AND c.cid=l.cid ORDER BY ".$catOrder;
$r=mysql_query($query) or die(mysql_error());
$num=0;
$cnt=mysql_num_rows($r);
if ($cnt==0) return;

$cats = array();
$catIds = array();
while ($c = mysql_fetch_array($r))
{
$cats1[$c[1]] = count ($cats);
$cats[] = $c;
$catIds[] = $c[1];
}

if ($showsubcats)
{
$query = "SELECT c.name,c.cid,c.count,l.url,c.parent FROM ".$db["prefix"]."cat c,".$db["prefix"]."cat_linear l WHERE c.parent in (".join (",",$catIds).") AND c.cid=l.cid ORDER BY ".$catOrder;
$r1 = mysql_query($query) or die(mysql_error());
while ($c1 = mysql_fetch_array($r1))
$cats[$cats1[$c1[4]]]["subcats"][] = $c1;
};

print $TMPL["partstop"];
$rows = $cat["rows"];

// Auto row count - priority to columns
if ($rows==0) $rows = intval (ceil(sqrt($cnt)));
// Auto row count - priority to rows
//if ($rows==0) $rows = intval (floor(sqrt($cnt)));


$width = intval (100/ceil($cnt/$rows));
for ($i=0;$i<$cnt;$i++)
{
$num++;
if ($num==1) print str_replace("%WIDTH",$width."%",$TMPL["partsdelimtop"]);

$template=$TMPL["partsbit"];
$template=str_replace("%CTITLE",$cats[$i][0],$template);
$catUrl = getCatUrl($cats[$i][1], $cats[$i][3]);
$template=str_replace("%URL",$catUrl,$template);
$template=str_replace("%CID",$cats[$i][1],$template);
$template=str_replace("%CCOUNT",$cats[$i][2],$template);

// Sub-categories
$subcats = "";
$subCnt = count ($cats[$i]["subcats"]);
if ($showsubcats && $subCnt>0)
{
$subMore = 0;
$subcats .= $TMPL["subpartstop"];
if ($subCnt>$cat["showsubcatcount"])
{
$subCnt=$cat["showsubcatcount"];
$subMore=1;
}
for ($j=0; $j<$subCnt; $j++)
{
$template1 = $TMPL["subpartsbit"];
$catUrl = getCatUrl($cats[$i]["subcats"][$j][1], $cats[$i]["subcats"][$j][3]);
$template1=str_replace("%URL",$catUrl,$template1);
$template1=str_replace("%CTITLE",$cats[$i]["subcats"][$j][0],$template1);
$template1=str_replace("%CCOUNT",$cats[$i]["subcats"][$j][2],$template1);
if ($j>0) $subcats .= $TMPL["subpartsdelim"];
$subcats .= $template1;
};
if ($subMore)
$subcats .= $TMPL["subpartsmore"];
$subcats .= $TMPL["subpartsbottom"];
};
$template=str_replace("%SUBPARTS",$subcats,$template);


print $template;
if ($num==$rows)
{
print $TMPL["partsdelimbottom"];
$num=0;
}
}

print $TMPL["partsbottom"];
}


function displayNewLinks($c)
{
GLOBAL $TMPL, $LANG, $cat, $db;
if (intval($c)==0 && $cat["shownew"]==1)
{
$newlinkstop=$TMPL["newlinkstop"];
$newlinkstop=str_replace("%NEWLINKSTEXT",$LANG["newlinks"],$newlinkstop);
print $newlinkstop;
$r=mysql_query("SELECT lid,title,description,resfield1,resfield2,resfield3 FROM ".$db["prefix"]."main WHERE type=1 ORDER by insert_date DESC LIMIT ".$cat["shownewcount"].";");
while ($ar=mysql_fetch_array($r))
{
if (substr($ar["description"], 0, 6)!="[html]" && strlen($ar["description"])>75)
$ar["description75"]=substr($ar["description"],0,75)."...";
else
$ar["description75"]=$ar["description"];

$template=$TMPL["newlinkstbit"];
$template=str_replace("%ID",$ar["lid"],$template);
$template=str_replace("%EXTENDEDINFOURL",getExtendedInfoUrl($ar["lid"]),$template);
$template=str_replace("%TITLE",$ar["title"],$template);
$template=str_replace("%GIN",$ar["gin"],$template);
$template=str_replace("%GOUT",$ar["gout"],$template);
$template=str_replace("%MODERVOTE",$ar["moder_vote"],$template);
$template=str_replace("%DESC75",rehtml($ar["description75"]),$template);
$template=str_replace("%DESC",rehtml($ar["description"]),$template);
$template=str_replace("%URL",$ar["url"],$template);
$template=str_replace("%RESFIELD1",$ar["resfield1"],$template);
$template=str_replace("%RESFIELD2",$ar["resfield2"],$template);
$template=str_replace("%RESFIELD3",$ar["resfield3"],$template);
print $template;
}
print $TMPL["newlinkstbottom"];
}
}


function displaySortOrderCat($c, $o, $url)
{
GLOBAL $TMPL, $LANG, $cat, $db;
if ($cat["linksatmain"]==1 || $c!=0)
{

if ($o==0) $sortbypop="<B>".$LANG["popuarity"]."</B>"; else $sortbypop="<a href=\"".getCatUrl($c, $url, 0)."\">".$LANG["popuarity"]."</a>";
if ($o==1) $sortbytitle="<B>".$LANG["title"]."</B>"; else $sortbytitle="<a href=\"".getCatUrl($c, $url, 1)."\">".$LANG["title"]."</a>";
if ($o==2) $sortbymoder="<B>".$LANG["modervote"]."</B>"; else $sortbymoder="<a href=\"".getCatUrl($c, $url, 2)."\">".$LANG["modervote"]."</a>";
if ($o==3) $sortbyin="<B>".$LANG["sortbyin"]."</B>"; else $sortbyin="<a href=\"".getCatUrl($c, $url, 3)."\">".$LANG["sortbyin"]."</a>";
if ($o==4) $sortbypr="<B>".$LANG["sortbypr"]."</B>"; else $sortbypr="<a href=\"".getCatUrl($c, $url, 4)."\">".$LANG["sortbypr"]."</a>";
if ($o==5) $sortbycy="<B>".$LANG["sortbycy"]."</B>"; else $sortbycy="<a href=\"".getCatUrl($c, $url, 5)."\">".$LANG["sortbycy"]."</a>";

$template=$TMPL["sortby"];
$template=str_replace("%SORTBYPOP",$sortbypop,$template);
$template=str_replace("%SORTBYTITLE",$sortbytitle,$template);
$template=str_replace("%SORTBYMODER",$sortbymoder,$template);
$template=str_replace("%SORTBYIN",$sortbyin,$template);
$template=str_replace("%SORTBYPR",$sortbypr,$template);
$template=str_replace("%SORTBYCY",$sortbycy,$template);
$template=str_replace("%SORTBYTEXT",$LANG["sortby"],$template);
print $template;
}
}


function displayCategoryLinks($c, $o, $start)
{
GLOBAL $TMPL, $LANG, $cat, $db;
$pp=$cat["linksperpage"];
if ($cat["linksatmain"]==1 || $c!=0)
{
print $TMPL["linkstop"];
dislpayCategoryLinksByRank($c,$o, $start, 1);
print str_replace("%NUM",($start*$pp)+1,$TMPL["linksmiddle"]);
$total = dislpayCategoryLinksByRank ($c, $o, $start, 0);
print $TMPL["linksbottom"];
if ($total>0)
print "<P>".$LANG["linkcount"].": <B>$total</B></P>";
}
return $total;
}

function dislpayCategoryLinksByRank($cid, $o, $start, $best=0)
{
GLOBAL $TMPL, $LANG, $cat, $db;

$pp=$cat["linksperpage"];

if ($best==1) $bestsql="AND moder_vote=10"; else $bestsql="AND moder_vote!=10";

if ($o==0) $order="ORDER BY gin DESC,gout DESC";
if ($o==1) $order="ORDER BY title";
if ($o==2) $order="ORDER BY moder_vote DESC, gout DESC";
if ($o==3) $order="ORDER BY insert_date DESC";
if ($o==4) $order="ORDER BY pr DESC";
if ($o==5) $order="ORDER BY cy DESC";

if ($cid!=0)
$Q="SELECT m.lid,url,title,description,fulldesc,keywords,gin,gout,moder_vote,pr,cy,resfield1,resfield2,resfield3 FROM ".$db["prefix"]."lincat lc left join ".$db["prefix"]."main m on lc.lid=m.lid WHERE type=1 $bestsql AND lc.cid=$cid $order LIMIT ".($start*$pp).",$pp;";
else
$Q="SELECT lid,url,title,description,fulldesc,keywords,gin,gout,moder_vote,pr,cy,resfield1,resfield2,resfield3 FROM ".$db["prefix"]."main WHERE type=1 $bestsql $order LIMIT ".($start*$pp).",$pp;";


$r=mysql_query($Q) or die(mysql_error());

if ($best!=1)
{
$cnt=mysql_num_rows($r);
if ($cnt==0) print $LANG["linksnotfound"];
}

displayLinks ($r);

if ($best!=1)
{
if ($cid!=0)
$Q="SELECT count(*) FROM ".$db["prefix"]."lincat lc left join ".$db["prefix"]."main m on lc.lid=m.lid WHERE type=1 $bestsql AND lc.cid=$cid;";
else
$Q="SELECT count(*) FROM ".$db["prefix"]."main WHERE type=1 $bestsql;";
return(mysql_result(mysql_query($Q),0,0));
}
}



function displayPages($c, $o, $url, $total, $start)
{
GLOBAL $TMPL, $LANG, $cat, $db;
$pp=$cat["linksperpage"];
if ($pp>0)
{
if ($cat["sefriendly"]==1 && !empty ($url) && substr($url, -1)!="/")
print "<center>".uniLeftRight(ceil($total/$pp),$start,getCatUrl($c, $url, $o),1,".html")."</center>";
else
print "<center>".uniLeftRight(ceil($total/$pp),$start,getCatUrl($c, $url, $o)."&start=",1)."</center>";
}
}


?>

А где эта самая может быть?

Спустя 4 минуты, 26 секунд (4.06.2011 - 17:19) ssvih написал(а):
Вот нашел такое вот выражение
$r=mysql_query("SELECT * FROM ".$db["prefix"]."main WHERE lid='$lid' and type<=1;") or die(mysql_error());

Возможно здесь надо юзать?

Спустя 3 минуты, 30 секунд (4.06.2011 - 17:22) Игорь_Vasinsky написал(а):
хз
// Links in the current category
Цитата
$total = displayCategoryLinks($c, $o, $start);

может она... blink.gif

Спустя 13 минут, 16 секунд (4.06.2011 - 17:35) Игорь_Vasinsky написал(а):
это помоему всё к разделу админа относится, а нужно общее, есть ещё файлы с функциями? папка lib или что то ещё такое?

Спустя 1 час, 43 секунды (4.06.2011 - 18:36) ssvih написал(а):
Есть папка admin с множеством файлов! Если не сложно то можешь скачать движок и посмотреть, так будет лучше!

Спустя 5 минут, 22 секунды (4.06.2011 - 18:42) Игорь_Vasinsky написал(а):
качать я не буду, я вообще фильм смотрю, так время от времени обновляю.
ВОт если вы ни чё не умеете и не знаете - так хотяб учитесь, или не ставьте перед собой такой задачи.
Это форум - здесь помогут доработать, подсказать, а не всё за вас делать будут.
Какая разница какя CMS - php он и в африке php.

кусок кода покажи где выводятся твои не правильные ссылки

Спустя 27 минут, 56 секунд (4.06.2011 - 19:10) ssvih написал(а):
Столько всего описал и не выложилось (((
В общем структура корня следующая
Папки
admin - без комментариев
cat - картинки
lang - языки
man - мануал
sample - xml фаилы

Спустя 4 минуты, 59 секунд (4.06.2011 - 19:14) ssvih написал(а):
		$template=($best==1)?$TMPL["bestlinksbit"]:$TMPL["linksbit"];

if ($cat["showextinfolink"]==1)
$template=str_replace("%EXTINFOLINK",$TMPL["extinfolink"],$template);
else
$template=str_replace("%EXTINFOLINK","",$template);

вот тут в файле _funct.php когда здесь $template=($best==1) заменяю 1 на 0 то исчезает ссылка

Спустя 8 часов, 23 минуты, 40 секунд (5.06.2011 - 03:38) ssvih написал(а):
Вот нашел кое что не знаю оно ли это!
В общем .htaccess ссылается на sefriendly.php тот в свою очередь на _funct.php и от суда я забрел в admin/_init.php где я нашел связь с

// External link info
if ($seFriendlyOrder=="ext")
{
$_SERVER["QUERY_STRING"] = $url[3];
include "./ext.php";
из sefriendly.php

В файле admin/_init.php с 216 строки нашел это ext

GLOBAL $cat;
if ($cat["sefriendly"]==1)
return $cat["seabs"]."/".$cat["seprefix"]."/ext/".$resId."/&quo t;;


Пробовал менять на другие значения это самое ext менял на extp в admin/_init.php и в sefriendly.php все работает ссылка меняет вид, теперь вопрос как добиться того чтобы поменять вид ссылки
с http://домен/catalog/ext/порядковый_номер/
на http://домен/catalog/ссылка_категории/порядковый_номер/
В БД есть 3 таблицы 2 из них cat и cat_linear отвечают за категории а main где хранятся статьи есть сортировка cat1 то есть в каждой категории есть свои name, url и cid где cat1 из main=cid из cat и cat_linear как из этого можно получить url из cat или cat_linear если каждая статья имеет свой порядковый номер lid
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.