kopieren von templates unvollständig

Dieses Forum enthält Diskussionen zu Bugs in ConPresso 4 und deren Lösungen.
Antworten
bhartm
ConPresso-Newbie
Beiträge: 15
Registriert: 01.01.1970 01:00

kopieren von templates unvollständig

Beitrag von bhartm »

Beim kopieren von Templates ist mir folgendes aufgefallen : Artikel erstellen mit Template "Standard" - Reihenfolge der Eingaberereiche in folgender Reihenfolge:

Untertitel
Teaser
Weiter Link
Verweistext
Target
Bild
Artikel text
Link
URL
Verweistext
Target
Zutück Link
Verweistext
target

so weit alles bestens und Anzeige in der Seite bzw. bei Rubrikvorschau o.k.
Jetzt bei Template bearbeiten Kopie von Template Standard anlegen .
Bereits bestehenden Artikel zum bearbeiten öffnen und als Template "Kopie von Standard" auswählen - Reihenfolge der Eingabebereiche dann so:

Artikeltext
Bild
Link
URL
Verweistext
Target
Teaser
Untertitel
Weiter Link
URL
Verweistext
target
zurück link
URL
verweistext
target

Nach Artikel speichern zeigt die Rubrikvorschau den Teaser richtig. Klickt man dann auf den weiter zum Artikel Link erscheint der Standard Willkommen Artikel von ConPresso bzw. auf der Seite passiert bei klick auf weiter nix.
Klingt ein bißchen seltsam, ich weiß, läuft aber so bei mir, habs ein paarmal ausprobiert. Eigenschaften und Reihenfolge werden nicht richtig übernommen.
Abhilfe ?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Wie bereits per PN geschrieben, musst Du die EInstellungen auch noch bearbeiten und insbesondere beim Weiter-Link die Eigenschaft auf "Deatil-Link" stellen.

Aber daß diese Sachen gar nicht kopiert werden ist schon etwas unschön, wenn auch zum Lernen eine echte Herausforderung :twisted:

Liegen tut es am verwendeten Verfahren:
Es wird nur ein frisches Template-Formular mit den Inhalten des zu kopierenden gefüllt.
Erst mittels Speichern wird dieses gespeichert und die Platzhalter ganz neu erzeugt. Diese sind somit "eigenschaftslos" und müssen erst bearbeitet werden.

Abhilfe würde bringen, wenn man das Template datenbankintern kopiert und die Platzhalter mit der neuen ID ebenfalls anlegt. Erst dann sollte das Template bearbeitet werden.
Dadurch kann es zwar passieren, daß man mal eine Kopie zuviel rumliegen hat, aber einmal löschen ist weniger aufwendig als ein Dutzend Platzhalter nachzuarbeiten...

mal sehen, was balu und die anderen sagen...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Hier mal ein kleines Workaround:

Datei: _admin/templates.php

FINDE (ziemlich am Anfang)

Code: Alles auswählen

<?


    switch ($nextaction) {


?>
DANACH, EINFÜGEN:

Code: Alles auswählen

<?


	case 'real_copy':
		$query = "SELECT name, tpl_first, tpl_detail, tpl_javascript FROM ".CPO_TEMPLATES." "
                ."WHERE id='".addslashes($_REQUEST['id'])."' ";
        DEBUG(2, $query, __FILE__, __LINE__);
        $db = new DB;
        $db->query($query);
		$db->next_record();
        $query = "INSERT INTO ".CPO_TEMPLATES." (name, tpl_first, tpl_detail, tpl_javascript, c_time, changer) VALUES ('Kopie von ".addslashes($db->v('name'))."', '".addslashes($db->v('tpl_first'))."', '".addslashes($db->v('tpl_detail'))."', '".addslashes($db->v('tpl_javascript'))."', '".date('Y-m-d H:i:s')."', '".addslashes($_SESSION['SID_login'])."')";
        DEBUG(2, $query, __FILE__, __LINE__);
        $db = new DB;
        $db->query($query);
		$query = "SELECT last_insert_id()";
		$db->query($query);
		$db->next_record();
		$new_id = $db->v('last_insert_id()');
        $query = "SELECT ttype, fieldname, pos, ddata FROM ".CPO_PLACEHOLDERS." "
                ."WHERE templates_id='".addslashes($_REQUEST['id'])."' ";
        DEBUG(2, $query, __FILE__, __LINE__);
        $db = new DB;
        $db->query($query);
		while ($db->next_record()):
			$query = "INSERT INTO ".CPO_PLACEHOLDERS." (templates_id, ttype, fieldname, pos, ddata) VALUES ('".addslashes($new_id)."', '".addslashes($db->v('ttype'))."', '".addslashes($db->v('fieldname'))."', '".addslashes($db->v('pos'))."', '".addslashes($db->v('ddata'))."')";
			DEBUG(2, $query, __FILE__, __LINE__);
			$db2 = new DB;
			$db2->query($query);
		endwhile;
        $views = array('list');
        break; // }}}




?>
FINDE (jetzt ca. Zeile 490)

Code: Alles auswählen

<?



            printf('<a href="%s?action[]=%s"><img src="'.SKIN_URL.'%s" class="pic_" alt="%4$s" title="%4$s"></a>',
                htmlspecialchars($_SERVER['PHP_SELF']),
                'templates_copy&id='.htmlspecialchars($db->v('id')),
                htmlspecialchars('pic_copy.gif'),
                htmlspecialchars(__('copy article-template'))
            );



?>
DANACH, EINFÜGEN:

Code: Alles auswählen

<?



            printf('<a href="%s?action[]=%s"><img src="'.SKIN_URL.'%s" class="pic_" alt="%4$s" title="%4$s"></a>',
                htmlspecialchars($_SERVER['PHP_SELF']),
                'real_copy&id='.htmlspecialchars($db->v('id')),
                htmlspecialchars('pic_mod_install.gif'),
                htmlspecialchars(__('real(!) copy article-template'))
            );



?>

Hinweis: Die <? und ?> gehören nicht dazu... (die macht der Code-Highlighter hier selbst...)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten