ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Rubrikname - Artikel verschieben

 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Ideen/Anregungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
stefann
ConPresso-User


Anmeldungsdatum: 31.07.2006
Beiträge: 34

BeitragVerfasst am: 17.10.2008 10:08    Titel: Rubrikname - Artikel verschieben Antworten mit Zitat

Nur mal so, was mich schon länger stört und wohl relativ leicht zu ändern wäre:

Mir ging es schon öfter so das ich bei größeren CP-Projekten Rubriken mit mehrfach gleichem Namen habe. Wenn ich nun einen Artikel verschiebe erscheinen im Pulldown nur die Rubrik-Namen. Viel besser wäre es wenn dort aber der vollständige Rubrik-Pfad (wie in der Titel-Navigation) zu sehen wäre. Sonst muss ich immer ins blau hinhein auswählen, probieren und hoffen die richtige Rubrik zu erwischen! Schön wäre auch wenn es zu dem Button "Artikel verschieben" noch einen ähnlichen Button gebe wie "Artikel verschieben & in Rubrik springen". Spart oftmals viel Zeit, vor allem bei größeren Rubrikstrukturen.


Gleiches Problem mit dem Rubriknamen gibt es auch bei:
Artikel bearbeiten->HTML (popup)
wenn man eine Rubrik als Link auswählen will

Navigation bearbeiten:
bei Rubrik-Zuordnung

Grüße
Stefan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
baluo
ConPresso-Experte


Anmeldungsdatum: 14.11.2005
Beiträge: 607

BeitragVerfasst am: 18.10.2008 14:20    Titel: Re: Rubrikname - Artikel verschieben Antworten mit Zitat

stefann hat Folgendes geschrieben:
Mir ging es schon öfter so das ich bei größeren CP-Projekten Rubriken mit mehrfach gleichem Namen habe. Wenn ich nun einen Artikel verschiebe erscheinen im Pulldown nur die Rubrik-Namen. Viel besser wäre es wenn dort aber der vollständige Rubrik-Pfad (wie in der Titel-Navigation) zu sehen wäre.

Ich habe das bisher nach der Struktur der Navigation geloest:
Rubrik A
> Rubrik AA
>> Rubrik AAA
Rubrik B
...

Daraus gewinne ich fuer die Rubrik der dritten Ebene diese Rubrik-Bezeichnung: "A_AA_AAA"

z.B.
A = wir
AA = wir_kontakt
AAA = wir_kontakt_wegbeschreibung

Damit werden die Rubriken in den Auswahlfeldern auch korrekt sortiert.

Gruss, Gerhard
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stefann
ConPresso-User


Anmeldungsdatum: 31.07.2006
Beiträge: 34

BeitragVerfasst am: 20.10.2008 11:28    Titel: Antworten mit Zitat

Hab deinen Tip leider zu spät gelesen! Wink Trtozdem danke! Ich hatte mich am wochenende dran gemacht und die Selectbox beim Artikel verschieben angepasst. Hab mir den entsprechenden Code aus der Titelnavigation geklaut...

Eigentlich recht unkompliziert... Einfach die Datei ./_admin/articles.php öffnen.

Suche:
Code:
case 'move': // {{{
        require(CPO_BASEDIR.'_include/header.php');

        $db = new DB;

        $query = "SELECT titel "
                ."FROM ".CPO_NEWS." "
                ."WHERE nr='".addslashes($_POST['nr'])."'";
        $db->query($query);
        $db->next_record();
        $titel = $db->v('titel');

        printPageHeader(
            ___('Move article'),
            sprintf(___('In this view you can move the article %s into another rubric. If the used article-template is not allowed in the new rubric, the standard template of the new rubric will be used.'),
                '<em>'.htmlspecialchars($titel).'</em>'
            ),
            'articles-listarticles.html#articles-listarticles-movearticle'
        );
        ?>

        <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
        <input type="hidden" name="action" value="articles_moveto">
        <input type="hidden" name="nr" value="<?php echo htmlspecialchars($_POST['nr']); ?>">

        <table class="colored" style="width: 100%;"><thead>
            <tr>
                <th colspan="2"><span><?php echo ___('Article'); ?></span></th>
            </tr>
        </thead><tbody>
            <tr>
                <td class="leftrow"><?php echo ___('Article:'); ?></td>
                <td class="rightrow">
                    <?php echo htmlspecialchars($titel); ?>
                </td>
            </tr>
            <tr>
                <td><?php echo ___('Move article into rubric:'); ?></td>
                <td>
                    <?php
                    $query = "SELECT rubric_id, name "
                            ."FROM ".CPO_RUBRIC.", ".CPO_PERMISSION." "
                            .'WHERE rubric_id='.CPO_RUBRIC.'.id '
                            ."AND rubric_id!='".addslashes($_SESSION['SID_rubric_id'])."' "
                            .'AND (stufe1=1 OR stufe2=1) '
                            .'AND user_id='.(int)$_SESSION['SID_user']['id'].' '
                            ."ORDER BY name";
                    $db->query($query);

                    print('<select name="move_target" size="1">');
                    while($db->next_record()) {
                        printf('<option value="%s">%s</option>',
                            htmlspecialchars($db->v('rubric_id')),
                            htmlspecialchars($db->v('name'))
                        );
                    }
                    print('</select>');
                    print(help('articles-listarticles.html#articles-listarticles-movearticle-rubric'));
                    ?>
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <?php
                    echo '<input type="submit" class="button" value="'.___('move article').'">&nbsp;';
                    echo '<input type="submit" name="cancel" class="button" value="'.___('cancel').'">';
                    echo '</form>';
                    ?>
                </td>
            </tr>
        </table>
        <?php

        require(CPO_BASEDIR.'_include/footer.php');
        break; // }}}


ersetzte mit:
Code:

case 'move': // {{{
        require(CPO_BASEDIR.'_include/header.php');

        $db = new DB;

        $query = "SELECT titel "
                ."FROM ".CPO_NEWS." "
                ."WHERE nr='".addslashes($_POST['nr'])."'";
        $db->query($query);
        $db->next_record();
        $titel = $db->v('titel');

        printPageHeader(
            ___('Move article'),
            sprintf(___('In this view you can move the article %s into another rubric. If the used article-template is not allowed in the new rubric, the standard template of the new rubric will be used.'),
                '<em>'.htmlspecialchars($titel).'</em>'
            ),
            'articles-listarticles.html#articles-listarticles-movearticle'
        );
        ?>

        <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
        <input type="hidden" name="action" value="articles_moveto">
        <input type="hidden" name="nr" value="<?php echo htmlspecialchars($_POST['nr']); ?>">

        <table class="colored" style="width: 100%;"><thead>
            <tr>
                <th colspan="2"><span><?php echo ___('Article'); ?></span></th>
            </tr>
        </thead><tbody>
            <tr>
                <td class="leftrow"><?php echo ___('Article:'); ?></td>
                <td class="rightrow">
                    <?php echo htmlspecialchars($titel); ?>
                </td>
            </tr>
            <tr>
                <td><?php echo ___('Move article into rubric:'); ?></td>
                <td>
                    <?php
                   
                     print('<select name="move_target" size="1">');
                     // fetch all rubrics this user has access to
                     $query = 'SELECT rubric_id '
                           .'FROM '.CPO_PERMISSION.' '
                           ."WHERE user_id='".addslashes($_SESSION['SID_user']['id'])."' ";
                     DEBUG(1, $query, __FILE__, __LINE__);
                     $db = new DB;
                     $db->query($query);
                     $rubricAccess = array();
                     while ($db->next_record()) {
                       $rubricAccess[$db->v('rubric_id')] = true;
                     }
                     
                     // fetch all rubrics to show the ones not in navigation
                     $query = 'SELECT id, name, seclevel '
                           .'FROM '.CPO_RUBRIC.' '
                           .'ORDER BY name';
                     DEBUG(1, $query, __FILE__, __LINE__);
                     $db->query($query);
                     $notInNavigation = array();
                     while ($db->next_record()) {
                       $notInNavigation[$db->v('id')] = array(
                           'id'=>0,
                           'l'=>0,
                           'r'=>0,
                           'level'=>1,
                           'childs'=>0,
                           'caption'=>'',
                           'navigation'=>array(),
                           'rubric'=>array('id'=>$db->v('id'), 'name'=>$db->v('name'), 'seclevel'=>$db->v('seclevel'), )
                       );
                     }
                     
                     $navigation = getNavigation();
                     foreach ($navigation as $k=>$v) {
                       $path[$v['level']] = $v['caption'];
                     
                       if (array_key_exists($v['rubric']['id'], $notInNavigation)) unset($notInNavigation[$v['rubric']['id']]);
                     
                       if ($v['rubric']['id']<=0) continue;
                       if (!array_key_exists($v['rubric']['id'], $rubricAccess)) continue;
                     
                       $entry = implode('/', array_slice($path, 0, $v['level']));
                       if ($v['caption']!=$v['rubric']['name']) $entry .= ' ('.$v['rubric']['name'].')';
                       if (strlen($entry)>90) $entry = '...'.substr($entry, -87);
                     
                     
                       if ($v['rubric']['id']!=addslashes($_SESSION['SID_rubric_id'])) echo "<option value='".$v['rubric']['id']."'>".$entry."</option>";
                     }
                      $_t = '<option value=""> </option>';
                      foreach ($notInNavigation as $k=>$v) {
                          if (!array_key_exists($v['rubric']['id'], $rubricAccess)) continue;
                          print($_t);
                          $_t = '';
      
                          $path[$v['level']] = $v['rubric']['name'];
      
                          $entry = implode('/', array_slice($path, 0, $v['level']));
                          // no navigational element i
                          // if ($v['caption']!=$v['rubric']['name']) $entry .= ' ('.$v['rubric']['name'].')';
                          if (strlen($entry)>90) $entry = '...'.substr($entry, -87);
      
                          printf('<option value="%d" %s>%s</option>',
                              $v['rubric']['id'],
                              ($_SESSION['SID_navigation_id']==$v['id'] && $v['rubric']['id']==$_SESSION['SID_rubric_id']) ? 'selected' : '',
                              $entry
                          );
                      }
                     
                    print('</select>');
                    print(help('articles-listarticles.html#articles-listarticles-movearticle-rubric'));
                    ?>
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <?php
                    echo '<input type="submit" class="button" value="'.___('move article').'">&nbsp;';
                    echo '<input type="submit" name="cancel" class="button" value="'.___('cancel').'">';
                    echo '</form>';
                    ?>
                </td>
            </tr>
        </table>
        <?php

        require(CPO_BASEDIR.'_include/footer.php');
        break; // }}}


und nun hat man eine Selectbox mit voll ausgeschriebenen Pfaden. Bei mir Funktionierts ohne Probleme mit der Version 4.0.7.

Grüße
Stefan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1746

BeitragVerfasst am: 23.10.2008 13:34    Titel: Antworten mit Zitat

Hi,

wir haben das damals nicht so gemacht, weil die Texte in den Selectboxen dann unheimlich lang werden und es unübersichtlich wird.

Allerdings sehe ich ein, dass das dann so zu einem Problem fuehrt.

Ich gebe das mal hier in die interne Diskussion.

Balu

_________________
Bartels.Schöne
ConPresso Support & Development

 
Für dieses Posting bedanken sich die folgenden User: Matthias V
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Ideen/Anregungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen