CMS_LINK Contenido 4.9

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
flar
Beiträge: 41
Registriert: Fr 28. Mär 2003, 11:29
Kontaktdaten:

CMS_LINK Contenido 4.9

Beitrag von flar » Fr 20. Dez 2013, 16:09

Hallo Zusammen,

Ich gebe Artikel in einer Liste aus. Die hole ich mir mit
$article = new cApiArticleLanguage();
$article->loadByArticleAndLanguageId($idart, $lang);

Im Artikel (von dem ich hole) habe ich auch den Link Content Type verwendet CMS _LINKEDITOR[1]
Nun funktioniert es aber scheinbar nicht, den Link und die Link Beschreibung alleine zu holen.
Folgendes geht nicht.
$link = $article->getContent('CMS_LINK',1);

Kann mir jemand sagen wie ich auf diese weise den Link und die Beschreibung einzeln holen kann.

An die Entwickler:
Währe es nicht möglich, das CMS_LINK so zu bauen das er auch noch in der alten Version funktioniert?
Hab mich da schon so dran gewöhnt und brauche auch oft im Backend die Link Daten einzeln.


Grüße Ralf

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: CMS_LINK Contenido 4.9

Beitrag von Dodger77 » Fr 27. Dez 2013, 13:10

Folgendes sollte für interne Links funktionieren (für andere müsste man das noch etwas erweitern):

Code: Alles auswählen

<?php

$article = new cApiArticleLanguage();
$article->loadByArticleAndLanguageId($idart, $lang);

$linkXml = $article->getContent('LINKEDITOR', 1);
$linkArray = cXmlBase::xmlStringToArray($linkXml);
if ($linkArray['type'] == 'internal') {
    $link = $sess->url('front_content.php?idart=' . $linkArray['idart']);
}

?>
Ich fände aber auch schöner, wenn die Klasse cApiArticleLanguage damit selbst umgehen könnte.

flar
Beiträge: 41
Registriert: Fr 28. Mär 2003, 11:29
Kontaktdaten:

Re: CMS_LINK Contenido 4.9

Beitrag von flar » Fr 27. Dez 2013, 14:34

Danke dir Dodger77,
Auf diese Funktion bin ich inzwischen auch gestoßen.
Was dabei aber bei mir wichtig wahr, ist das man bevor man cXmlBase::xmlStringToArray ausführt, prüfen muss ob auch Daten in $linkXml vorhanden sind, sonst bricht die Articleschleife ab.
Ich habe mir dafür jetzt eine kleine Funktion geschrieben.

Code: Alles auswählen

function getxmlLink($xmlstr){
	global $client, $lang;
	if($xmlstr){
		$linkarray = cXmlBase::xmlStringToArray($xmlstr);
		if($linkarray['type'] == 'internal'){
			$params = array('idart' => $linkarray['idart'], 'client' => $client, 'lang' => $lang);
			$data['link'] = cUri::getInstance()->build($params);
		} 
		else if($linkarray['type'] == 'external') $data['link'] = $linkarray['externallink'] ;
		else if($linkarray['type'] == 'file') $data['link'] = '/cms/upload/'.$linkarray['filename'] ;
		else $data['link'] = false;
		
		if($linkarray['newwindow'] == true) $data['target'] = '_blank';
		if($linkarray['title'] != "") $data['text'] = $linkarray['title'];
    	return $data;
	}else return false; 
}

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Re: CMS_LINK Contenido 4.9

Beitrag von malsdgtac » Mi 23. Jul 2014, 19:52

Vielen Dank für die Funktion, funktioniert einwandfrei

Antworten