[php] Volgorde topics in topiclist

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 13:13

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Topicstarter
Ik ben bezig met een forum aan te passen naar mijn eigen wensen en ik wil graag de volgorde van topics wijzigen. Dus heel simpel 3 soorten topics.
1. Gesloten topic
2. Sticky topic
3. Normaal topic

Nu ziet de code er zo uit die de volgorde behandeld:


PHP:
1
2
3
4
// topiclist
    function topiclist_forum(){
        global $forum, $dayprune, $prefs;
        return $this->query("SELECT topic.topic, topic.icon, topic.title, last, start, topic.reply, view, sticky, topic.hide, announce, closed, user.name, topic.user, forum.name AS forum, forum.forum AS forumid, forum.read_access, forum.post_access, forum.reply_access FROM topic LEFT JOIN forum USING (forum) LEFT JOIN user ON user.user=topic.user WHERE topic.forum='$forum' AND last>UNIX_TIMESTAMP()-(".(!empty($dayprune) ? $dayprune : 'showdays')."*86400) ORDER BY REPLACE(REPLACE(sticky, 'N', '1'),'Y', '2') DESC, ".(($prefs["order"] == 'last') ? "last" : "start")." DESC");


Nu worden sticky topics netjes bovenaan gezet. Alleen het verschil tussen gesloten topics en normale topics bestaat hier niet. Dit wil ik dus wel.

Nu zat ik aan het volgende te denken (ik ben nog net begonnen met php, dus als ik het verkeerd denk, plz tell me ;) )

Dit stukje code vervangen:

PHP:
1
ORDER BY REPLACE(REPLACE(sticky, 'N', '1'),'Y', '2') DESC


Voor:

PHP:
1
ORDER BY REPLACE(REPLACE(sticky, 'N', '2'),'Y', '3') DESC


Nu heb ik de “1” over voor gesloten topics. Dus 3 is sticky (als eerst), 2 is normaal topic en 1 is gesloten (dus helemaal onderaan).

Alleen hoe voeg ik een extra replace regel toe zoals bij sticky. Ik heb al verschillende dingen geprobeerd, maar steeds kwam er een error op die regel. Ik weet dus niet hoe ik een extra (REPLACE(closed, 'N', '1'),'Y', '2')

Wie kan me vertellen hoe je dat moet toe voegen

Dit moet er dus bij:

PHP:
1
2
3
<?
ORDER BY REPLACE(REPLACE(closed, 'N', '2'),'Y', '1') DESC
?> 


Thanks alvast voor het bekijken :)

[ Voor 34% gewijzigd door We Are Borg op 15-02-2003 21:46 ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Een vraagje er nog bij.. :)
Heeft een topic maar 3 statussen, of kan een topic ook open en sticky zijn? Zo nee, dan kan je met een nummer gaan werken; 1=sticky, 2=normaal, 3=gesloten en hier op sorteren.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 13:13

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Topicstarter
Ja, daar heb je gelijk in. Een topic kan ook open en sticky zijn. Dat gaat zeker problemen opleveren met de manier waarop ik dit wilde regelen :) ?

Maar laten we dat anders even negeren en kijken wat er gebeurd als ik dus die extra regel toe voeg. Maar ik weet dus niet hoe ik dat moet doen zonder errors te veroorzaken :)

Of je moet een andere manier weten om die code aan te passen dat het goed werkt ;) ?

[ Voor 50% gewijzigd door We Are Borg op 16-02-2003 14:27 ]