View Full Version : Reihenfolge der Links
snepco
07-02-2007, 12:27 PM
Hallo,
ich habe eben den deutschen Teil des Forums durchsucht, aber leider nichts gefunden. Bin mir aber sicher, etwas dazu gelesen zuhaben, in den letzten Wochen.
Ich möchte gern, das Links die einen Backlink gesetzt haben, vor den Links ohne Backlink erscheinen. Also, zuerst werden die Feature Links gelistet, dann Links mit Backlink und zuletzt Links ohne Backlink. Wie kann ich das umsetzen?
LG
fredofredo
07-04-2007, 12:03 AM
Hallo snepco
Die Links werden in der main.tpl über
<div id="links">
{foreach from=$links item=link name=links}
{include file="link.tpl" link=$link}
{/foreach}
</div>
ausgegeben.
In der index.php findest du dazu die Abfrage
$links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' {$bydate} AND `CATEGORY_ID` = ".$db->qstr($id)." {$feat_where} {$expire_where} ORDER BY `{$sort_cols[$sort]}` {$sort_ord[$sort]} {$limit}");
Die Feature Links brauchst du ja nicht zu ändern.
du brauchst also zwei verschiedene Abfragen und Ausgaben für die verschiedenen Linktypen
Also
<div id="links">
{foreach from=$back_links item=link name=$back_links}
{include file="link.tpl" link=$back_links}
{/foreach}
</div>
<div id="links">
{foreach from=$free_links item=link name=$free_links}
{include file="link.tpl" link=$free_links}
{/foreach}
</div>
Und dazu die Abfragen in der index.php
$backlinks = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' {$bydate} AND `LINK_TYPE` = `2` AND `CATEGORY_ID` = ".$db->qstr($id)." {$feat_where} {$expire_where} ORDER BY `{$sort_cols[$sort]}` {$sort_ord[$sort]} {$limit}");
$freelinks = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' {$bydate} AND `LINK_TYPE` = `1` AND `CATEGORY_ID` = ".$db->qstr($id)." {$feat_where} {$expire_where} ORDER BY `{$sort_cols[$sort]}` {$sort_ord[$sort]} {$limit}");
alles ungetestet.
bei den Linktypes bin ich mir nicht ganz sicher.
Lege einfach zwei Einträge an. Einen mit und einen ohne Backlink und schaue in der Datenbank nach, welchen Linktype sie haben.
Ich hoffe es klappt
snepco
07-05-2007, 07:45 PM
Hallo fredo, danke für deine Antwort, habe es gestern versucht umzusetzen, leider ohne Erfolg. Einmal waren alle Einträge weg, bzw. wurden nicht mehr angezeigt und bei meinem zweiten Versuch kam eine Fehlermeldung.
Das ist zu kompliziert für mich :rolleyes: echt schade, dass ich es nicht hin bekomme.
Das mit den Linktypen habe ich auch nicht ganz verstanden. In der Datenbank habe ich nichts finden können und habe einfach deinen Code übernommen und eingefügt.
fredofredo
07-05-2007, 10:08 PM
Hallo snepco
Das ist schade.
Etwas würde aber gehen, probier es mal aus.
ersetze in der index.php
$links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' {$bydate} AND `CATEGORY_ID` = ".$db->qstr($id)." {$feat_where} {$expire_where} ORDER BY `{$sort_cols[$sort]}` {$sort_ord[$sort]} {$limit}");
mit
$links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' AND `CATEGORY_ID` = ".$db->qstr($id)." ORDER BY Link_type ASC");
und zwar den zweiten gefundenen Eintrag der weiter geht mit
$articles = $db->GetAll("SELECT * FROM `{$tables['article']['name']}` WHERE `STATUS` = '2' AND `CATEGORY_ID` = ".$db->qstr($id)." ORDER BY `DATE_ADDED` DESC");
$rs = $db->Execute("SELECT * FROM `{$tables['category']['name']}` WHERE `STATUS` = '2' AND `PARENT_ID` = ".$db->qstr($id)." ORDER BY `".CATEG_FIELD_SORT."` ".CATEG_FIELD_SORT_ORDER);
while (!$rs->EOF)
{
$row = $rs->FetchRow();
if ($id == 0 && CATS_PREVIEW > 0)
{
-----------
dann kannst du die Sortierung per Hits und Klicks zwar in die Mülltonne werfen, es werden dann aber zuerst die Feature, dann die Links mit Backlink und erst dann die ohne angezeigt. *Ohne Gewähr :)
vBulletin® v3.8.0, Copyright ©2000-2012, Jelsoft Enterprises Ltd.