Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Fehler beim Kopieren von Fotoalben

  1. #1
    Contao-Nutzer
    Registriert seit
    19.06.2009.
    Beiträge
    177

    Standard Fehler beim Kopieren von Fotoalben

    Ich verwende Contao 3.5.12 mit
    photoalbums2 1.5.1 (vom 22.08.2016 aus dem ER)
    image_sort_wizard 2.2.0
    sort_wizard 1.3.0
    translation_fields 1.4.0

    Wenn ich ein Fotoalbum kopieren möchte, tritt beim Einfügen des Albums die folgende Fehlermeldung auf:

    PHP Fatal error: Uncaught exception 'Exception' with message 'Query error: Column 'alias' cannot be null (INSERT INTO tl_photoalbums2_album (pid, sorting, tstamp, title, alias, author, startdate, enddate, images, imageSortType, imageSort, previewImageType, previewImage, event, place, photographer, description, protected, users, groups, cssClass, noComments, published, start, stop) VALUES (1, 256, 0, 'Titel (Kopie)', NULL, '1', '1472767200', '1472767200', 'a:1:{i:0;s:16:\"Ü\ZPpšæ¾d\0\"Pâ|\";}', 'name_asc', NULL, 'select_preview_image', 'Ü\"“»pšæ¾d\0\"Pâ|', '1', '2', '3', '4', '', NULL, NULL, '', '', '1', '', ''))' thrown in /var/www/xyz/Statement.php on line 295

    Das Feld "alias" ist jedoch beim zu kopierenden Album nicht leer. Woran könnte das liegen? Gibt es eine Lösung?

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das Album welches du kopierst, wird die Aliase enthalten, aber wenn man kopiert bekommen die Datensätze nicht automatisch einen Alias, erst, wenn man sie wieder speichert. Zeige mal die DCA config von diesem Feld Alias. Die müsstest du im Modulordner im Ordner dca finden. Schau mal, ob photoalbums auf Github verwaltet wird, dann kannst du dort ein Ticket dazu erstellen, falls es noch keins dazu gibt.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Contao-Nutzer
    Registriert seit
    19.06.2009.
    Beiträge
    177

    Standard

    Das ist die Konfiguration (Datei modules/photoalbums2/dca/tl_photoalbums2_album.php):

    'alias' => array(
    'label' => &$GLOBALS['TL_LANG']['tl_photoalbums2_album']['alias'],
    'exclude' => true,
    'inputType' => 'text',
    'eval' => array('maxlength' => 128, 'unique' => true, 'tl_class' => 'w50'),
    'save_callback' => array(
    array('tl_photoalbums2_album', 'generateAlias'),
    ),
    'sql' => "varbinary(128) NOT NULL default ''",
    ),


    und:

    /**
    * Auto-generate the alias if it has not been set yet
    * @param mixed
    * @param object
    * @return string
    */
    public function generateAlias($varValue, DataContainer $dc)
    {
    $autoAlias = false;

    // Generate alias if there is none
    if (!strlen($varValue)) {
    $autoAlias = true;
    $varValue = standardize($dc->activeRecord->title);
    }

    $objAlias = \Photoalbums2AlbumModel::findBy(array($dc->table.".id!=?", $dc->table.".alias=?"), array($dc->id, $varValue));

    // Check whether the albums alias exists
    if ($objAlias !== null && !$autoAlias) {
    throw new Exception(sprintf($GLOBALS['TL_LANG']['ERR']['aliasExists'], $varValue));
    }

    // Add ID to alias
    if ($objAlias != null && $autoAlias) {
    $varValue .= '-'.$dc->id;
    $varValue = $this->generateAlias($varValue, $dc);
    }

    return $varValue;
    }

  4. #4
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Bitte für PHP-Code hier den Wrapper benutzen.
    PHP-Code:
    ...
    'alias' => array(
      
    'label'         => &$GLOBALS['TL_LANG']['tl_photoalbums2_album']['alias'],
      
    'exclude'       => true,
      
    'inputType'     => 'text',
      
    'eval'          => array('maxlength' => 128'unique' => true'tl_class' => 'w50'),
      
    'save_callback' => array(array('tl_photoalbums2_album''generateAlias')),
      
    'sql'           => "varbinary(128) NOT NULL default ''",
    ),
    ... 
    Ok, du solltest das beim Entwickler melden. Als schnellen Workaround kannst du mal versuchen das NOT NULL aus der Feldbeschreibung rauszuholen, danach in der Erweiterungsverwaltung die DB aktualisieren. Oder du versuchst das generateAlias auch bei einem oncopy_callback auszuführen. https://docs.contao.org/books/api/dca/callbacks.html
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

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