Seite 1 von 1

CMS_LINK Contenido 4.9

Verfasst: Fr 20. Dez 2013, 16:09
von flar
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

Re: CMS_LINK Contenido 4.9

Verfasst: Fr 27. Dez 2013, 13:10
von Dodger77
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.

Re: CMS_LINK Contenido 4.9

Verfasst: Fr 27. Dez 2013, 14:34
von flar
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; 
}

Re: CMS_LINK Contenido 4.9

Verfasst: Mi 23. Jul 2014, 19:52
von malsdgtac
Vielen Dank für die Funktion, funktioniert einwandfrei