+ Antworten
Ergebnis 1 bis 2 von 2

Thema: Button für das Speichern der Reihenfolge liefert "Invalid Token" zurück

  1. #1
    Kommt häufiger vorbei Avatar von suncity
    Registriert seit
    23.04.2006
    Beiträge
    349
    Bedankte sich
    35
    Erhielt 47 Danksagungen
    in 34 Beiträgen

    Standard Button für das Speichern der Reihenfolge liefert "Invalid Token" zurück

    Hallo,

    da die Komponente Peoplebook keine Spalte zum Speichern der Reihenfolge hat, habe ich mir den Code dafür von anderen Komponenten abgeguckt und dann - entsprechend angepasst - in Peoplebook implementiert (s. Screenshot).

    Ich bin jetzt soweit, dass die Spalte angezeigt wird und sogar die Reihenfolge richtig ausgelesen wird. Es fehlt nur noch die Speicherfunktion.
    Und genau da ist der Haken: Beim Klicken des Speichern-Icons erhalte ich nur ein "Invalid Token". Leider weiß ich nicht, woher ich dieses Token herbekommen soll oder wie es funktioniert...

    Der Code:

    Die Datei admin.peoplebook.html.php enthält folgende relevanten Zeilen:

    1. Der Tabellenkopf mit dem Speichern-Icon:
    PHP-Code:
    <th width="5%">
          <div align="center">
            <a href="javascript: saveorder( <?php echo count($rows)-1?> )" >
              <img src="images/filesave.png" border="0" width="16" height="16"
               alt="<?php echo JText::_('_PBK_SAVE_ORDER'); ?>" />
            </a>
          </div>
        </th>
    2. Die Tabellenzeilen mit den entsprechenden Nummern für die Reihenfolge:
    PHP-Code:
    <tr class="<?php echo "row$k"?>">
    [...]
    <td align="center" colspan="2">
          <input type="text" name="order[]" size="5" value="<?php echo $row->ordering?>"
           class="text_area" style="text-align: center" />
        </td>
    [...]
    <?php    $k $k; } ?>
          </tr>
    Das ist die Bedingung für das Klicken des Speichern-Icons (admin.peoplebook.php):

    PHP-Code:
    switch ($task) {
    [...]
    case 
    'saveorder':
          
    Joom_SaveOrder($id$cid);
          break;
    [...]

    In derselben Datei ist die Funktion, die das eigentliche Speichern nach dem Klick des Icons übernimmt:

    PHP-Code:
    function Joom_SaveOrder() {
       global 
    $mainframe;

        
    // Check for request forgeries
        
    JRequest::checkToken() or jexit'Invalid Token' );

        
    // Initialize variables
        
    $db =& JFactory::getDBO();
        
    $cid    JRequest::getVar'cid', array(), 'post''array' );

        
    $total      count$cid );
        
    $order  JRequest::getVar'order', array(0), 'post''array' );
        
    JArrayHelper::toInteger($order, array(0));

        
    $row        =& JTable::getInstance('name''Table');

        
    // update ordering values
        
    for( $i=0$i $total$i++ )
        {
            
    $row->load( (int) $cid[$i] );
            
    // track sections
            
    if ($row->ordering != $order[$i])
            {
                
    $row->ordering $order[$i];
                if (!
    $row->store())
                {
                    
    JError::raiseError(500$db->getErrorMsg());
                }
            }
        }
    //for

        
    $row->reorder();

        
    $msg    JText::_'Neue Reihenfolge gespeichert' );
        
    $mainframe->redirect('index.php?option=com_peoplebook'$msg);

    (Leider weiß ich auch nicht für was die $cid Variable gut ist ...)

    Für eure Hilfe wäre ich sehr dankbar.


    Freundliche Grüße,
    suncity
    Angehängte Grafiken

  2. #2
    Hat hier eine Zweitwohnung
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    32
    Beiträge
    1.237
    Bedankte sich
    115
    Erhielt 471 Danksagungen
    in 368 Beiträgen

    Standard

    PHP-Code:
    ...
    <?php echo JHtml::_('form.token'); ?>
    </form>

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein