Alphabetische Artikelsortierung

Fragen zur Implementierung und/oder Anpassung von ConPresso 3.x werden in diesem Forum diskutiert.
Antworten
Flo

Alphabetische Artikelsortierung

Beitrag von Flo »

Ist es möglich in Conpresso Artikel alphabetisch zu sortieren, zB nach dem Titel?
Ich würde so etwas für eine Art Lexion-Rubrik benötigen, in der zu bestimmten Begriffen Beschreibungen stehen. Dabei ist eine manuelle Sortier-ID natürlich zu umständlich. Ist es evtl. möglich die Sortierfunktion der sql-Datenbank zu nutzen?
Karl

Re: Alphabetische Artikelsortierung

Beitrag von Karl »

Hab so was gemacht. Gib den Index zur Bearbeitung frei und die Redakteure schreiben in den Index einfach die ersten 6 Stellen des Begriffs rein, fertig! Bei nach Datum sortiert einfach internationales Datum zB 040121 für den 21.01.2004 reinschreiben.
Flo

Re: Alphabetische Artikelsortierung

Beitrag von Flo »

Soweit funktioniert das auch!

Jetzt kommt aber die fortgeschrittene Version, wie springe ich zu den Artikeln die mit Buchstaben B beginnen (im Index)?

Es gibt ja die Möglichkeit über die Variable start=20 zB Artikel erst ab einer bestimmten Stelle anzeigen zu lassen.
Kann man in irgend einer Form auch eine Artikel ID angeben?
MartinR
ConPresso-User
Beiträge: 29
Registriert: 01.01.1970 01:00

Re: Alphabetische Artikelsortierung

Beitrag von MartinR »

Warum so umständlich? Wenn ich das richtig durchschaue, kann man doch ganz einfach nach Titel sortieren, indem man die Variable $sort entsprechend setzt, was normalerweise in
_include/var_category.php passiert.
Per Hand für eine Kategorie kann man ja die index.php bspw. so umändern:

require(CPO_BASEDIR."_include/var_category.php");
$sort='titel asc';

(2. Zeile ergänzt) und damit die Sortierung nach Titel erzwingen. Oder übersehe ich da etwas?
Die Umlaute sind leider erst nach dem "z" zu finden.

Schön wäre natürlich auch eine für den Besucher der Seite variable Sortierung.

Gruß
MartinR
Claud

Re: Alphabetische Artikelsortierung

Beitrag von Claud »

Hallo zusammen,

ich habe die automatische Sortierung von Artikeln bereits erfolgreich
eingesetzt. In der Ausgabe funktioniert alles wunderbar.
Nun meine Frage:

Kann ich das ganze auch im redaktionellen Bereich umsetzen? Dann
aber auch nur wieder für diese eine Rubrik? Bei allen anderen
Rubriken, kann alles so bleiben, wie bisher und soll auch keine
alphabetische Sortierung erfolgen...

Danke für euren Support! :o)

Gruß,
Claud
Benutzeravatar
semf
Modul-Entwickler
Beiträge: 1853
Registriert: 01.01.1970 01:00
Wohnort: Gütersloh-Friedrichsdorf
Hat sich bedankt: 14 Mal
Danksagung erhalten: 40 Mal
Kontaktdaten:

Re: Alphabetische Artikelsortierung

Beitrag von semf »

halo claud,

versuch mal das hier:

öffne die datei _include/tab_modify.php und setze in zeile 33 (vor der sql-abfrage) diesen code.

if ($directory=='Aktuelles') { $sort='titel desc';}

wenn du die rubrik 'Aktuelles' öffnest, wird die variable $sort überschrieben. und zwar mit absteigender sortierung nach titel. hatte bei mir erfolg!

Viel Erfolg!

Module ConPresso 4.x
Latest News
Tell-a-friend

Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend

Modul-Download
Claud

Re: Alphabetische Artikelsortierung

Beitrag von Claud »

Hallo semf!

Es hat prima funktioniert :o)

Ich bin (wie immer) begeistert! ;o)

Vielen Dank und Grüße aus BaWü!

Claud
Null Ahnung
ConPresso-Checker
Beiträge: 118
Registriert: 26.08.2006 21:39
Hat sich bedankt: 2 Mal

Alphabetische Sortierung von Artikel

Beitrag von Null Ahnung »

Hallo, ich bin schon soweit, dass man in der tab_modify was ändern kann, damit eine bestimmte Rubrik alphabetisch sortiert wird.
Aber leider habe ich keine Ahnung, wie und wo ich da was eintragen muss.
Ich möchte gerne, dass diese Rubriken alphabetisch sortiert werden.

links
links-privat
links-vereine

kann mir vielleicht einer das entsprechend ändern?

Hier meine Datei tab_modify (ein Stück davon

Code: Alles auswählen

<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap: */
// 

+----------------------------------------------------------------------+
// | ConPresso version 3                             

                     |
// +----------------------------------------------------------------------+
// | Copyright (c) 

2000-2003                                              |
// | Bartels Schoene GmbH & Co. KG, 48149 Muenster, Germany          

     |
// +----------------------------------------------------------------------+
// | This source file is subject to 

ConPresso license version 2002-11-16  |
// | that is bundled with this package in the files LICENSE_EN.TXT or     |
// | 

LICENSE_DE.TXT, and is available at through the world-wide-web at    |
// |    

http://www.conpresso.de/license/LICENSE_EN-2002-11-16.TXT or      |
// |    

http://www.conpresso.de/license/LICENSE_DE-2002-11-16.TXT         |
// | If you did not receive a copy of the ConPresso 

license and are       |
// | unable to obtain it through the world-wide-web, please send a note   |
// | to 

license@conpresso.de so we can mail you a copy immediately.       |
// 

+----------------------------------------------------------------------+
// | Authors: ConPresso development and support team 

                     |
// |          <support@conpresso.de>                                      |
// 

+----------------------------------------------------------------------+
//
// $Id: tab_modify.php,v 1.1.1.1.2.7 2004/02/23 

09:52:48 balu Exp $
if (!defined('CPO')) exit;




$art_anzahl = 5;
$art_count  = 0;

if ( $pos == '' ) {
    $pos = 0;
}

$jetzt = time();





$query = "SELECT COUNT(*) FROM ".$dbPrefix."_news "
        ."WHERE artikel_archiv = 0 AND kategorie = '

".$directory."' ORDER BY ".$sort."";
DEBUG(2, $query, __FILE__, __LINE__);       
$db = new DB;
$db->query($query);
$db->next_record();
$max_data = $db->v('COUNT(*)');

$query = "SELECT article_nr, auth, auth_backup, autor, changer, 

commentary, freigabe, freigabe_name, last_modify, nr,
 pub_datum, sort_id, template, text_1, titel, untertitel, verfallsdatum "
        ."FROM ".$dbPrefix."_news "
        ."WHERE 

artikel_archiv = 0 AND kategorie = '".$directory."' ORDER BY ".$sort." LIMIT ".$pos.",".$maxArticle;
DEBUG(2, $query, 

__FILE__, __LINE__);       
$db->query($query);
    
if ($db->num_rows()<=0) {
    $message = $PicDatei." ".$LP_NoDataText;
  

  require(CPO_BASEDIR."_include/message.php");        
    return;
}

echo '<table width="'.$WIDTH.'" border="0" 

cellpadding="3" cellspacing="2">';
echo '<tr bgcolor="'.$color_tbg_dunkel.'">';

if ( $Rubric_switch && 

$_SESSION['SID_stufe2'] == 1) {
    echo '<td align="left" class="text">';
    help("AB000");
    echo '<img 

src="../_images/transparent.gif" height="1" width="3" alt="" border="0"></td>';
}
echo '<td align="left" class="text">';
echo 

'<table border="0" cellpadding="0" cellspacing="0"><tr><td align="left" class="text"><b>'.$LP_Status.'</b></td>';
echo '<td 

align="left" class="text">'; help("AB001"); echo '</td></tr></table>';
echo '</td><td width="50%" align="left" 

class="text">';
echo '<table border="0" cellpadding="0" cellspacing="0"><tr><td align="left" 

class="text"><b>'.$LPR_Title.'/'.$LPR_Author.'/'.$LPR_ArtVersion.'</b></td>';
echo '<td align="left" class="black">'; 

help("AB002"); echo '</td></tr></table>';
echo '</td><td align="left" class="text">';
echo '<table border="0" cellpadding="0" 

cellspacing="0"><tr><td align="left" class="text"><b>'.$LPR_Info.'</b></td>';
echo '<td align="left" class="black">'; 

help("AB002a"); echo '</td></tr></table>';
echo '</td><td align="left" class="text">';
echo '<table border="0" 

cellpadding="0" cellspacing="0"><tr><td align="left" class="text"><b>'.$LPR_Publication.'</b></td>';
echo '<td align="left" 

class="text">'; help("AB003"); echo '</td></tr></table>';
echo '</td>';

if ( $_SESSION['SID_stufe2'] == 1 ) {
    echo '<td 

width="80" align="left" class="text">';
        echo '<table border="0" cellpadding="0" cellspacing="0"><tr><td align="left" 

class="text"><b>'.$LP_TModify.'</b></td>';
        echo '<td align="left" class="text">'; help("AB004"); echo 

'</td></tr></table>';
    echo '</td>';
}

if ( $_SESSION['SID_stufe4'] == 1 ) {
    echo '<td width="70" align="left" 

class="text">';
        echo '<table border="0" cellpadding="0" cellspacing="0"><tr><td align="left" 

class="text"><b>'.$LP_Release.'</b></td>';
        echo '<td align="left" class="text">'; help("AB005"); echo 

'</td></tr></table>';
    echo '</td>';
}
echo '</tr>';

while($db->next_record()):
    $nr             = $db->v("nr");
    

$article_nr     = $db->v("article_nr");
    $auth           = $db->v("auth");
    $auth_backup    = $db->v("auth_backup");
   

 $commentary     = $db->v("commentary");
    $template       = $db->v("template");
    $sort_id        = $db->v("sort_id");
  

  $freigabe       = $db->v("freigabe") ;
    $freigabe_name  = $db->v("freigabe_name");
    $last_modify    = 

$db->v("last_modify");
    $autor          = $db->v("autor");
    $changer        = $db->v("changer");
    $pub_datum      = 

$db->v("pub_datum");
    $verfallsdatum  = $db->v("verfallsdatum");
    $titel          = $db->v("titel");
    $untertitel    

 = $db->v("untertitel");
    $text_1         = $db->v("text_1");
    
    if ($color == 1) {
        echo "<tr 

bgcolor=\"".$color_data_hell."\">";
        $color = 0;
    } else {
        echo "<tr>";
        $color = 1;
    }

    if ( 

$Rubric_switch && $_SESSION['SID_stufe2'] == 1 ) {
        echo "<td valign=\"middle\" align='center' class='text'>";

       

 // Sortierung der Atrikel

        // 


FIXME Can this be optimized?
        $query = "SELECT nr, sort_id FROM ".$dbPrefix."_news "
                ."WHERE 

artikel_archiv = 0 AND sort_id < '".$sort_id."' AND kategorie = '".$directory."' ORDER BY sort_id";
        DEBUG(2, $query, 

__FILE__, __LINE__);   
        $db_2 = new DB;
        $db_2->query($query);
        $down_id = 'no';
        if 

($db_2->num_rows()>0) {
            while($db_2->next_record()):
                $down_nr = $db_2->v("nr");
                

$down_id = $db_2->v("sort_id");
            endwhile;
        } 

        $query = "SELECT nr, sort_id FROM 

".$dbPrefix."_news "
                ."WHERE artikel_archiv = 0 AND sort_id > '".$sort_id."' AND kategorie = '".$directory."' 

ORDER BY sort_id DESC";
        DEBUG(2, $query, __FILE__, __LINE__);   
        $db_2->query($query);
        $up_id = 

'no';
        if ($db_2->num_rows()>0) {
            while($db_2->next_record()):
                $up_nr = $db_2->v("nr");
   

             $up_id = $db_2->v("sort_id");
            endwhile;
        } 
        
        if ( $up_id == 'no' ) {
         

   if ( $unr == $nr ) {
                echo '<img src="../_skin/'.$cpoSkin.'/sort_empty2.gif" width="15" height="15" alt="" 

border="0"><br>';
            } else {
                echo '<img src="../_skin/'.$cpoSkin.'/sort_empty.gif"  width="15" 

height="15" alt="" border="0"><br>';
            }
        } else {
            if ( $art_count == '0' ) {
                

$art_pos = $pos - $maxArticle;
            } else {
                $art_pos = $pos;
            }                    
       

     echo '<a 

Antworten