Page 1 of 2

Fehler bei {RELATED} - zeigt image nicht an...

Posted: Sun 17. Jul 2005, 21:06
by mmm
würde gerne {RELATED:Anzahl_Links:Schluesselwort} umgestallten. und zwar nicht nur vom ausehen her. ich bräuchte nämlich nicht die ausgabe des artikel-title, sondern vom sub-title.

erste frage, ist das möglich? - zweite frage, wo finde ich das file, was dies spezifiziert?

lgM

Posted: Sun 17. Jul 2005, 21:25
by Mehlinger
Schau mal in front.func.inc.php nach. Ich denke da müsste es möglich sein.

Posted: Sun 17. Jul 2005, 21:53
by mmm
danke für deine schnelle antwort.

hier ist der abschnitt, der sich damit beschäftigt. da ich selbst kein php beherrsche, kann mi vielleicht jemand helfen, sodass er nicht mehr den artikeltitle sonder den subtitle ausgibt??

hier der code aus dem front.func.inc.php

Code: Select all

// -------------------------------------------------------------

function get_related_articles($keywords, $current_article_id, $template_default, $max_cnt_links=0, $dbcon) {
	// find keyword for current article used for RELATED replacementtag
	// prepared and inspired by Magnar Stav Johanssen

	$keyword_links = ""; $max_cnt_links = intval($max_cnt_links);
		
	// replace unwanted chars and convert to wanted
	$keywords = str_replace(";", ",", $keywords);
	$keywords = str_replace("'", "", $keywords);
	$keywords = str_replace(" ", ",", $keywords);
	
	// choose comma separated keywords
	$keywordarray = explode (",", $keywords);
	// check for empty keywords or keywords smaller than 3 chars
	if(sizeof($keywordarray)) {
		foreach($keywordarray as $key => $value) {
			$keywordarray[$key] = trim($value);			
			if(!$keywordarray[$key] || strlen($keywordarray[$key]) < 3) unset($keywordarray[$key]);		
		}
	}

	if(sizeof($keywordarray)) {
		$where = "";
		foreach($keywordarray as $value) {
			//build where keyword = blabla
			$where .= ($where) ? " OR " : "";
			//replace every "'" to "''" for security reasons with aporeplace()
			$where .= "article_keyword LIKE '%".aporeplace($value)."%'";		
		}
		$limit = ($max_cnt_links) ? " LIMIT ".$max_cnt_links : "";
		$sql  =	"SELECT article_id, article_title, article_cid, article_subtitle, article_summary ";
		$sql .=	"FROM ".DB_PREPEND."phpwcms_article WHERE article_deleted=0 AND ";
		$sql .=	"article_id<>".intval($current_article_id)." AND ";
		// VISIBLE_MODE: 0 = frontend (all) mode, 1 = article user mode, 2 = admin user mode
		switch(VISIBLE_MODE) {
			case 0: $sql .=	"article_public=1 AND article_aktiv=1 AND ";
					break;
			case 1: $sql .= "article_uid=".$_SESSION["wcs_user_id"]." AND ";
					break;
			//case 2: admin mode no additional neccessary
		}
		$sql .=	"article_begin < NOW() AND article_end > NOW() AND (".$where.") ";
		$sql .=	"ORDER BY article_tstamp DESC".$limit;

		// related things
		$target = ($template_default["link_target"]) ? ' target="'.$template_default["link_target"].'"' : "";
		if($result = mysql_query($sql, $dbcon)) {
			$count_results = mysql_num_rows($result); $count = 0;
			while ($row = mysql_fetch_row($result)) {
				$count++;
				if($template_default["link_length"] && strlen($row[1]) > $template_default["link_length"]) {
					$article_title = substr($row[1], 0, $template_default["link_length"]).$template_default["cut_title_add"];
				} else {
					$article_title = $row[1];
				}
				$keyword_links .= $template_default["link_before"].$template_default["link_symbol"];
				$keyword_links .= '<a href="index.php?id='.$row[2].','.$row[0].',0,0,1,0"';
				$keyword_links .= $target.">".html_specialchars($article_title)."</a>";
				
				//try to remove possible unwanted after - if not enclosed before.link.after
				if($keyword_links && !$template_default["link_before"] && $count < $count_results) {
					$keyword_links .= $template_default["link_after"];
				}
			}
			mysql_free_result($result);
		}
	}

	//enclose whole
	if($keyword_links) $keyword_links = $template_default["before"].$keyword_links.$template_default["after"];
	
	return $keyword_links;
}

// -------------------------------------------------------------

Posted: Sun 17. Jul 2005, 22:05
by Mehlinger
Ich schau mirs morgen mal genauer an. Ich denke das müsste machbar sein.

Gruß Mehlinger

Posted: Mon 18. Jul 2005, 21:40
by mmm
und? was herausgefunden?

lgM

Posted: Mon 18. Jul 2005, 22:25
by Mehlinger
Hi,

das ist wohl doch etwas aufwändiger :?

Als kleinen Workaround würde ich dir folgendes vorschlagen:

Gib doch einfach bei den Artikeln den Artikeltitel unter Untertitel ein und umgekehrt den Untertitel unter Artikeltitel. Dann musst du natürlich noch die entsprechenden Vorlagen umstellen, damit deine Überschrift auch weiterhin über dem Untertitel steht und schon hast du was du haben wolltest.

Dann noch den Text im Backend von Untertitel auf Artikeltitel und umgekehrt ändern, damit man nicht durcheinander kommt.

Hoffentlich ist es einigermaßen verständlich wie ich das meine.

Gruß Mehlinger

Posted: Tue 19. Jul 2005, 12:38
by mmm
ok, habe gesucht und gesucht, darauf hatte noch niemand eine antwort. habe es einfach vertauscht funkt auch, danke für den input!

andere frage: ist es möglich vor jede zeile ein bild hineinzuladen?? zB ein >> oder sowas in der art??

bilde mir ein, dass ich sowas schon bei einem RELATED-tag gesehen habe...

lgM

Posted: Tue 19. Jul 2005, 12:47
by Mehlinger
Ja, das geht, siehe http://www.mehlhans.de/cms/cms/index.php?newsarchive

Du kannst das in conf.template_default.inc.php unter
$template_default["related"]["link_before"] angeben

Viele Grüße
Mehlinger

Posted: Tue 19. Jul 2005, 13:59
by mmm
hehe, danke! na dann wären alle probleme gelöst.

ein hit wäre es noch, wenn es sich bei der nächsten version variabel anpassen lassen würde - zB subhead, head, summary usw.

lgM

Posted: Thu 21. Jul 2005, 18:58
by mmm
ich muss irgendeinen fehler gemacht haben, er schreibt mir nun den gesamten inhalt in einer wursch... wollte dass er mir diese kleinen zwei pfeile vor jeden link setzt...

siehe: http://www.bleibfit.at

weiß jemand, was ich da wieder verbrochen habe?

hier der abschnitt des codes aus dem con.template.default.inc

Code: Select all

// related articles based on keywords
$template_default["related"]["before"]			= "<div class=\"related\">";
$template_default["related"]["after"]			= "</div>";
$template_default["related"]["link_before"]		= '<img src="picture/pfeile/pfeil_w.gif" alt="">';
$template_default["related"]["link_after"]		= "<br>";
$template_default["related"]["link_symbol"]		= "";
$template_default["related"]["link_target"]		= "";
$template_default["related"]["link_length"]		= 0; //if 0 no limit
$template_default["related"]["cut_title_add"]	= "…";

Posted: Fri 22. Jul 2005, 15:16
by mmm
weiß das niemand?

lgM

Post in English

Posted: Fri 22. Jul 2005, 15:53
by johanvanderwijk
I know I am being a pain again about this, but if you would have posted your message in English you would have had a much larger audience and a bigger chance of receiving valuable help... I really cannot understand your question :shock:

Remember that by posting your message in English you are turning down the help of most forum members!

Posted: Fri 22. Jul 2005, 16:12
by mmm
i just use the RT related and have made a big mistake. i have change the img source for this image, which is arranged before the aritcleheadline appears (into conf.template.default.inc). but now it displays all article-headlines as a long sentence. please take a look on http://www.bleibfit.at (i mean this white arrows on the right)
here is the code:

Code: Select all

// related articles based on keywords 
$template_default["related"]["before"]         = "<div class=\"related\">"; 
$template_default["related"]["after"]         = "</div>"; 
$template_default["related"]["link_before"]      = '<img src="picture/pfeile/pfeil_w.gif" alt="">'; 
$template_default["related"]["link_after"]      = "<br>"; 
$template_default["related"]["link_symbol"]      = ""; 
$template_default["related"]["link_target"]      = ""; 
$template_default["related"]["link_length"]      = 0; //if 0 no limit 
$template_default["related"]["cut_title_add"]   = "…";
thank you for help!

b.r.
manuel

Posted: Fri 22. Jul 2005, 17:36
by johanvanderwijk
As the <br> is not processed, I think it might have to do with the " in your image path. Try this code and see if it solves your problem:

Code: Select all

// related articles based on keywords 
$template_default["related"]["before"]         = "<div class=\"related\">"; 
$template_default["related"]["after"]         = "</div>"; 
$template_default["related"]["link_before"]      = "<img src=\"picture/pfeile/pfeil_w.gif\" alt=\" \">"; 
$template_default["related"]["link_after"]      = "<br>"; 
$template_default["related"]["link_symbol"]      = ""; 
$template_default["related"]["link_target"]      = ""; 
$template_default["related"]["link_length"]      = 0; //if 0 no limit 
$template_default["related"]["cut_title_add"]   = "…";
Or if that doesn't help this code:

Code: Select all

// related articles based on keywords 
$template_default["related"]["before"]         = "<div class=\"related\">"; 
$template_default["related"]["after"]         = "</div>"; 
$template_default["related"]["link_after"]      = "<br>"; 
$template_default["related"]["link_symbol"]      = ""; 
$template_default["related"]["link_target"]      = ""; 
$template_default["related"]["link_length"]      = 0; //if 0 no limit 
$template_default["related"]["cut_title_add"]   = "…";
$template_default["related"]["link_before"]      = '<img src="picture/pfeile/pfeil_w.gif" alt="">'; 

Posted: Fri 22. Jul 2005, 19:14
by mmm
thank you for your answer, but your code doesn´t work correctly. now i´m using this code and it displays correctly, but the arrows are still missing... how can it be?

Code: Select all

$template_default["related"]["before"]         = "<div class=\"related\">"; 
$template_default["related"]["after"]         = "</div>"; 
$template_default["related"]["link_before"]      = '<img src="picture/pfeile/pfeil_w.gif" width="1" height="3" alt="" /><br>';
$template_default["related"]["link_after"]      = ""; 
$template_default["related"]["link_symbol"]      = ""; 
$template_default["related"]["link_target"]      = ""; 
$template_default["related"]["link_length"]      = 0; //if 0 no limit 
$template_default["related"]["cut_title_add"]	= "…";