Related-Warnung nach Umzug auf PHP5

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
larmann
Posts: 311
Joined: Thu 23. Jun 2005, 10:51
Location: Hamburg
Contact:

Related-Warnung nach Umzug auf PHP5

Post by larmann »

Hallo,
ich habe eine kleine fehlermeldung auf meiner Website, nachdem ich auf einen anderen Server umgezogen bin, der auf PHP5 läuft:
Warning: trim() expects parameter 1 to be string, array given in /www/htdocs/........./template/inc_script/frontend_render/realated_sum.php on line 187
Kann mir jemand erklären, was da los ist? Ich verwende Version 1.4.1

Danke
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: Related-Warnung nach Umzug auf PHP5

Post by flip-flop »

Hi,

was veranstaltet die Datei related_sum.php und wo kann man diese einsehen?

Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
larmann
Posts: 311
Joined: Thu 23. Jun 2005, 10:51
Location: Hamburg
Contact:

Re: Related-Warnung nach Umzug auf PHP5

Post by larmann »

Die veranstaltet so eine Auflistung: http://www.veit-larmann.de/index.php?tagung


Zeile 185 bs 189 sehen so aus:

Code: Select all

else {
							//proof target of link
							$caption[2] = explode(' ', trim($caption[2]));
							$caption[2][1] = (!isset($caption[2][1])) ? '' : ' target="'.$caption[2][1].'"';
						}
Und die vollständige Datei so:

Code: Select all

<?php
    // releated Summary Tag
    //
    // Tested with phpwcms ver 1.2.5 DEV
    //
    // copy this file to phpwcms_template\inc_script\frontend_render
    //
    // Syntax: {RELATED_SUMMARY:number_of_related_article:number_of_summaries_to_display:keyword}
    
    
    //----------------------------------------------
    // Mainpart
    //
    //----------------------------------------------
    
function get_related_articles_summary($keywords, $current_article_id, $template_default, $max_cnt_links=0, $num_summaries_to_show, $dbcon) {
	// find keyword for current article used for RELATED_SUMMARY replacement tag
	// prepared and inspired by Magnar Stav Johanssen

	$keyword_links = ""; 
	$data = array ();
	$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);
	
	if($keywords == 'ALLKEYWORDS') {
		$keywords = $GLOBALS['content']['all_keywords'];
	}
	// choose comma separated keywords
	$keywordarray = explode (",", $keywords);
	$keywordarray = array_map('trim', $keywordarray);
	$keywordarray = array_diff($keywordarray, array(''));
	$keywordarray = array_unique($keywordarray);
	// check for empty keywords or keywords smaller than 3 chars
	if(is_array($keywordarray) && count($keywordarray)) {
		foreach($keywordarray as $key => $value) {
			if(strlen($keywordarray[$key]) < 3 || empty($keywordarray[$key])) {
				unset($keywordarray[$key]);
			}
		}
	}
	//Selects the data based on keywwords
	if(is_array($keywordarray) && count($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  =	"SELECT * FROM ".DB_PREPEND."phpwcms_article WHERE article_deleted=0 AND ";

//		$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;

		// get the article data
		// copied from get_actcat_articles_data function in front.func.inc.php
		if($result = mysql_query($sql, $dbcon)) 
		{
			while($row = mysql_fetch_assoc($result)) 
			{
				$data[$row["article_id"]] = array(
										"article_id"		=> $row["article_id"],
										"article_cid"		=> $row["article_cid"],
										"article_title"		=> $row["article_title"],
										"article_subtitle"	=> $row["article_subtitle"],
										"article_keyword"	=> $row["article_keyword"],
										"article_summary"	=> $row["article_summary"],
										"article_redirect"	=> $row["article_redirect"],
										"article_date"		=> $row["article_date"],
										"article_username"	=> $row["article_username"],
										"article_sort"		=> $row["article_sort"],
										"article_notitle"	=> $row["article_notitle"],
										"article_created"	=> $row["article_created"],
										"article_image"		=> unserialize($row["article_image"]),
										"article_timeout"	=> $row["article_cache"],
										"article_nosearch"	=> $row["article_nosearch"],
										"article_nositemap"	=> $row["article_nositemap"],
										"article_aliasid"	=> $row["article_aliasid"],
										"article_headerdata"=> $row["article_headerdata"],
										"article_morelink"	=> $row["article_morelink"]
												);
				// now check for article alias ID
				if($row["article_aliasid"]) {
					$aid = $row["article_id"];
					$alias_sql  = "SELECT *, UNIX_TIMESTAMP(article_tstamp) AS article_date FROM ".DB_PREPEND."phpwcms_article ";
					$alias_sql .= "WHERE article_deleted=0 AND article_id=".intval($row["article_aliasid"]);
					if(!$row["article_headerdata"]) {
						switch(VISIBLE_MODE) {
							case 0: $alias_sql .= " AND article_public=1 AND article_aktiv=1";
									break;
							case 1: $alias_sql .= " AND article_uid=".$_SESSION["wcs_user_id"];
									break;
						}
						$alias_sql .= " AND article_begin < NOW() AND article_end > NOW()";
					}
					$alias_sql .= " AND article_deleted=0 LIMIT 1";
					if($alias_result = mysql_query($alias_sql, $dbcon)) {
						if($alias_row = mysql_fetch_assoc($alias_result)) {
							$data[$aid]["article_id"] = $alias_row["article_id"];
							// use alias article header data
							if(!$row["article_headerdata"]) {
								$data[$aid]["article_title"]	= $alias_row["article_title"];
								$data[$aid]["article_subtitle"]	= $alias_row["article_subtitle"];
								$data[$aid]["article_keyword"]	= $alias_row["article_keyword"];
								$data[$aid]["article_summary"]	= $alias_row["article_summary"];
								$data[$aid]["article_redirect"]	= $alias_row["article_redirect"];
								$data[$aid]["article_date"]		= $alias_row["article_date"];
								$data[$aid]["article_image"]	= unserialize($alias_row["article_image"]);
							}
						}
						mysql_free_result($alias_result);
					}
				}
			}
			mysql_free_result($result);
		}

		//Generate the summary - taken from list_article_summary from front.func.inc.php
		
		$article_list = $data;

		$listing = $template_default["space_top"]; //start with space at top
		
		$tmpllist = array(); //temporary array for storing templates to minimize load
		
		$temp_topcount = intval($num_summaries_to_show);
		
		$temp_counter = 0;
		foreach($article_list as $key => $value) {
			
			//$article_link  = $link_to."?id=".$cat_id.",".$article_list[$key]["article_id"].",0,0,1,0";
			$article_link  = "index.php?id=".$article_list[$key]["article_cid"].",".$article_list[$key]["article_id"].",0,0,1,0";
			
			//add available keywords to page wide keyword field
			$GLOBALS['content']['all_keywords'] .= $article_list[$key]["article_keyword"].',';
			
			//if($temp_counter < $template_default["top_count"]) {
			if($temp_counter < $temp_topcount) {
				// as long as the counter is lower than the default "top_count" value
				// show the complete article summary listing
				
				// build image/image link
				$article_list[$key]["article_image"]["poplink"] = '';
				$thumb_image = false;
				$thumb_img = '';
				
				if(!empty($article_list[$key]["article_image"]["caption"])) {
					$caption	= explode('|', $article_list[$key]["article_image"]["caption"]);
				} else {
					$caption[0] = '';
				}
				$article_list[$key]["article_image"]["caption"] = $caption[0]; //$caption[0]
				
				if(!empty($article_list[$key]["article_image"]["hash"])) {
				
					$thumb_image = get_cached_image(
										array(	"target_ext"	=>	$article_list[$key]["article_image"]['ext'],
												"image_name"	=>	$article_list[$key]["article_image"]['hash'] . '.' . $article_list[$key]["article_image"]['ext'],
												"max_width"		=>	$article_list[$key]["article_image"]['width'],
												"max_height"	=>	$article_list[$key]["article_image"]['height'],
												"thumb_name"	=>	md5($article_list[$key]["article_image"]['hash'].$article_list[$key]["article_image"]['width'].$article_list[$key]["article_image"]['height'].$GLOBALS['phpwcms']["sharpen_level"])
	        							  ));
									
					if($thumb_image != false) {
					
						$caption[1] = (!isset($caption[1])) ? '' : html_specialchars($caption[1]);
						if(!isset($caption[2])) {
							$caption[2] = array('',' target="_blank"');
						} else {
							//proof target of link
							$caption[2] = explode(' ', trim($caption[2]));
							$caption[2][1] = (!isset($caption[2][1])) ? '' : ' target="'.$caption[2][1].'"';
						}
					
						$thumb_img = '<img src="'.PHPWCMS_IMAGES . $thumb_image[0] .'" border="0" '.$thumb_image[3].' alt="'.$caption[1].'" title="'.$caption[1].'">';
							
						if($article_list[$key]["article_image"]["zoom"]) {
							
							$zoominfo = get_cached_image(
												array(	"target_ext"	=>	$article_list[$key]["article_image"]['ext'],
														"image_name"	=>	$article_list[$key]["article_image"]['hash'] . '.' . $article_list[$key]["article_image"]['ext'],
														"max_width"		=>	$GLOBALS['phpwcms']["img_prev_width"],
														"max_height"	=>	$GLOBALS['phpwcms']["img_prev_height"],
														"thumb_name"	=>	md5($article_list[$key]["article_image"]['hash'].$GLOBALS['phpwcms']["img_prev_width"].$GLOBALS['phpwcms']["img_prev_height"].$GLOBALS['phpwcms']["sharpen_level"])
	        					  						)
													);
							
							if($zoominfo != false) {
							
								$article_list[$key]["article_image"]["poplink"] =	'image_zoom.php?show='.base64_encode($zoominfo[0].'?'.$zoominfo[3]);
								
								if(!empty($caption[2][0])) {
									$open_link = $caption[2][0];
									$return_false = '';
								} else {
									$open_link = $article_list[$key]["article_image"]["poplink"];
									$return_false = 'return false;';
								}
								
								$article_list[$key]["article_image"]["poplink"] =	'<a href="'.$article_list[$key]["article_image"]["poplink"].'" '.
																		 			//'onClick="window.open(\''.$open_link.
																					'onClick="checkClickZoom();clickZoom(\''.$open_link.
																					"','previewpic','width=".$zoominfo[1].
																					",height=".$zoominfo[2]."');".$return_false.
																					'"'.$caption[2][1].'>'.$thumb_img.'</a>';
							}
							
							unset($caption);
							
						}
					
					}
				
				}
				
				
			
				// article list based template check
				if(!empty($article_list[$key]["article_image"]['tmpllist']) && $article_list[$key]["article_image"]['tmpllist']!='default') {
					// try to read the template files
					// 1. try to check if template was read
					if(!isset($tmpllist[ $article_list[$key]["article_image"]['tmpllist'] ])) {
						$tmpllist[ $article_list[$key]["article_image"]['tmpllist'] ] = include_ext_php(PHPWCMS_ROOT.$GLOBALS['phpwcms']['templates'].'inc_cntpart/articlesummary/list/'.$article_list[$key]["article_image"]['tmpllist'], 1);
					}
					if($tmpllist[ $article_list[$key]["article_image"]['tmpllist'] ]) {
						//rendering
						$tmpl = $tmpllist[ $article_list[$key]["article_image"]['tmpllist'] ];
						$tmpl = render_cnt_template($tmpl, 'TITLE', html_specialchars($article_list[$key]["article_title"]));
						$tmpl = render_cnt_template($tmpl, 'SUB', html_specialchars($article_list[$key]["article_subtitle"]));
						$tmpl = render_cnt_template($tmpl, 'SUMMARY', $article_list[$key]["article_summary"]);
						$tmpl = render_cnt_template($tmpl, 'IMAGE', $thumb_img);
						$tmpl = render_cnt_template($tmpl, 'ZOOMIMAGE', ($article_list[$key]["article_image"]["poplink"] ? $article_list[$key]["article_image"]["poplink"] : $thumb_img));  // fix by jens
						$tmpl = render_cnt_template($tmpl, 'CAPTION', nl2br(html_specialchars($article_list[$key]["article_image"]["caption"])));
						$tmpl = render_cnt_template($tmpl, 'ARTICLELINK', $article_link);
						$tmpl = render_cnt_template($tmpl, 'EDITOR', $article_list[$key]["article_username"]);
						$tmpl = render_cnt_template($tmpl, 'ARTICLEID', $article_list[$key]["article_id"]);					
						$tmpl = render_cnt_template($tmpl, 'MORE', $template_default["top_readmore_link"]);
						$tmpl = render_cnt_template($tmpl, 'BEFORE', '<!--before//-->');
						$tmpl = render_cnt_template($tmpl, 'AFTER', '<!--after//-->');
						$tmpl = render_cnt_date($tmpl, $article_list[$key]["article_date"]);
						if($temp_counter) {
							$tmpl = render_cnt_template($tmpl, 'SPACE', '<!--space//-->');
						} else {
							$tmpl = render_cnt_template($tmpl, 'SPACE', '');
						}
						$listing .= $tmpl;
						$article_list[$key]["article_image"]['tmpllist'] = 1;
					} else {
						$article_list[$key]["article_image"]['tmpllist'] = 0;
					}
				}
				
				if (empty($article_list[$key]["article_image"]['tmpllist']) || $article_list[$key]["article_image"]['tmpllist'] == 'default') {
				
					$listing .= $template_default["top_listentry_before"];
				
					// space between summary listings
					if($temp_counter) {
						$listing .= $template_default["space_between_sum"];
					}
				
					if($article_list[$key]["article_title"] && !$article_list[$key]["article_notitle"]) {
						//$listing .= get_html_part($article_list[$key]["article_title"], $template_default["top_headline_class"], $article_link);
						$listing .= $template_default["top_headline_before"];
						if($article_list[$key]["article_morelink"]) {
							$listing .= '<a href="'.$article_link.'">';
							$listing .= html_specialchars($article_list[$key]["article_title"]);
							$listing .= '</a>';
						} else {
							$listing .= html_specialchars($article_list[$key]["article_title"]);
						}
						$listing .= $template_default["top_headline_after"];
						$listing .= $template_default["top_headline_space"];
					}
					if($article_list[$key]["article_subtitle"]) {
						//$listing .= get_html_part($article_list[$key]["article_subtitle"], $template_default["top_subheadline_class"], $article_link);
						$listing .= $template_default["top_subheadline_before"];
						if($article_list[$key]["article_morelink"]) {
							$listing .= '<a href="'.$article_link.'">';
							$listing .= html_specialchars($article_list[$key]["article_subtitle"]);
							$listing .= '</a>';
						} else {
							$listing .= html_specialchars($article_list[$key]["article_subtitle"]);
						}
						$listing .= $template_default["top_subheadline_after"];
						$listing .= $template_default["top_subheadline_space"];
					}
					if($article_list[$key]["article_summary"] || !empty($article_list[$key]["article_image"]['cname'])) {
						//$listing .= "<span class=\"".$template_default["top_text_class"]."\">";
						$listing .= $template_default["top_text_before"];
					
						//build image table when image available
						if(!empty($thumb_img)) {
							$listing .= '<table width="1%" cellspacing="0" border="0" cellpadding="0" align="left" ';
							if($template_default["article"]["image_table_bgcolor"]) {
								$listing .= 'bgcolor="'.$template_default["article"]["image_table_bgcolor"].'" ';
							}
							$listing .= 'style="float:left;margin:2px 5px 3px 0;">';
							$listing .= "\n<tr><td";
							if($template_default["article"]["image_class"]) {
								$listing .= ' class="'.$template_default["article"]["image_class"].'"';
							}
							$listing .= '>';
							if($article_list[$key]["article_morelink"]) {
								$listing .= '<a href="'.$article_link.'">'.$thumb_img."</a>";
							} else {
								$listing .= $thumb_img;
							}
							$listing .= "</td></tr>\n";
							
							if($article_list[$key]["article_image"]["caption"]) {
								//$listing .= '<tr><td><img src="img/leer.gif" alt="" width="1" height="3"></td></tr>';
								$listing .= "\n<tr><td";
								if($template_default["article"]["image_caption_class"]) {
									$listing .= ' class="'.$template_default["article"]["image_caption_class"].'"';
								}
								if($template_default["article"]["image_caption_bgcolor"]) {
									$listing .= ' bgcolor="'.$template_default["article"]["image_caption_bgcolor"].'"';
								}
								if($template_default["article"]["image_caption_valign"]) {
									$listing .= ' valign="'.$template_default["article"]["image_caption_valign"].'"';
								}
								if($template_default["article"]["image_caption_align"]) {
									$listing .= ' align="'.$template_default["article"]["image_caption_align"].'"';
								}
								$listing .= '>';
								$listing .= $template_default["article"]["image_caption_before"];
								$listing .= nl2br(html_specialchars($article_list[$key]["article_image"]["caption"]));
								$listing .= $template_default["article"]["image_caption_after"];
								$listing .= "</td></tr>\n";
							}
							$listing .= '</table>';
						}
					
						$listing .= $article_list[$key]["article_summary"];
						if($article_list[$key]["article_morelink"]) {
							$listing .= $template_default["top_readmore_before"];
							$listing .= '<a href="'.$article_link.'">';
							$listing .= $template_default["top_readmore_link"];
							$listing .= '</a>'.$template_default["top_readmore_after"];
						}
						$listing .= $template_default["top_text_after"];
					}			
					$listing .= $template_default["top_listentry_after"];
				}
			
			} else { 
				// if "top_count" value is equal or larger
				// show only the article headline listing
				//if($temp_counter && $temp_counter == $template_default["top_count"]) {
				if($temp_counter && $temp_counter == $temp_topcount) {
					$listing .= $template_default["space_aftertop_text"];
				} elseif ($temp_counter) {
					$listing .= $template_default["space_between_list"];
				}
				$listing .= $template_default["list_headline_before"];
				$listing .= '<a href="'.$article_link.'">';
				$listing .= $template_default["list_startimage"];
				$listing .= html_specialchars($article_list[$key]["article_title"]);
				$listing .= '</a>'.$template_default["list_headline_after"];
			
			}
			$temp_counter++;
		}
		
		$listing .= $template_default["space_bottom"]; //ends with space at bottom
		return str_replace("<br /><br />", "<br />", $listing);

	}

}

// related articles based on keywords, inspired by Magnar Stav Johanssen
if( ! ( strpos($content["all"],'{RELATED_SUMMARY:')===false ) ) {
	if (!$no_content_for_this_page && !empty($content["articles"][$aktion[1]]["article_keyword"])) {
		$related_keywords = $content["articles"][$aktion[1]]["article_keyword"];
	} else {
		$related_keywords = '';
	}

	$content["all"] = preg_replace('/\{RELATED_SUMMARY:(\d+):(\d+):(.*?)\}/e','get_related_articles_summary("$3",$aktion[1],$template_default,"$1","$2",$db);',$content["all"]);
}

?>
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: Related-Warnung nach Umzug auf PHP5

Post by juergen »

Sieht man doch:

caption[2] ist keine eindeutige Zuordnung, da das Ding ein eigenes Array trägt. Wenn das früher geschluckt wurde, vermutlich nur weil es zu oberflächlich geprüft hat und nur das erste Feld nahm.

Da ist ein Syntax Fehler...
//Edit Oder einfach nur die Erweiterung der Variablen in den letzten Jahren :)
larmann
Posts: 311
Joined: Thu 23. Jun 2005, 10:51
Location: Hamburg
Contact:

Re: Related-Warnung nach Umzug auf PHP5

Post by larmann »

Danke für die Antwort. Aber ich verstehe sie nicht. Gibt es eine einfache Möglichkeit die Fehlermeldung wegzubekommen? Soll ich die related_sum gegen eine aus einer aktuellen phpwcms-Version austauschen? Oder muss ich ein gesamtes Update machen? Ein gesamtes Update würde ich nicht so gerne machen, weil ich dann meine Keycloud auch wohl löschen müsste.
nameless1
Posts: 878
Joined: Sun 27. Apr 2008, 23:22

Re: Related-Warnung nach Umzug auf PHP5

Post by nameless1 »

morgen,

quick and dirty bis du kontakt mit dem programmierer dieses scripts hergestellt hast: bitte deinen provider die php-fehler ausgabe bei dir zu unterdrücken.

gruß

nml1
Post Reply