Cyberdave Posted December 15, 2010 Share Posted December 15, 2010 I am using Concrete5 on a site I'm working on. Below is the News List display view.php file needed in the block to display the content from news pages. The code allows images entered in the WSYIWYG to appear in the RSS list. I want to know how I can edit the code below, so it shows only the these images from the $content not the text. Can anybody help me on this? Thanks <?php defined('C5_EXECUTE') or die("Access Denied."); $html = Loader::helper('html'); $uh = Loader::helper('concrete/urls'); $bt = BlockType::getByHandle('news_list'); global $c; $rss_address = $controller->getRssUrl().'?ctID='.$ctID.'&bID='.$bID ; if (isset($_GET['pageno'])) { $pageno = $_GET['pageno']; } else { $pageno = 1; } // if ?> <div class="newsflash"> <div class="headtitle"> <h1><?php echo $rssTitle ?></h1> </div> <?php if (!function_exists('newslistParse')) { function newslistParse($url,$thumbnail,$thumbwidth,$time,$content,$title,$date){ //###################################################################################// //here we lay out they way the page looks, html with all our vars fed to it // //this is the content that displays. it is recommended not to edit anything beyond // //the content parse. Feel free to structure and re-arrange any element and adjust // //CSS as desired. // // available vars: $url,$thumbnail,$thumbwidth,$time,$content,$title,$date // //###################################################################################// ?> <div class="newsflashcontain"> <div class="title"> <?php echo $title ; ?> </div> <div class="time"> <?php echo $date ; ?><?php echo $time ; ?> </div> <div class="description"> <?php echo $content; ?> </div> </div> <?php //#####################################################################################// //this is the end of the recommended content area. please do not edit below this line // //#####################################################################################// } } $db = Loader::db(); //go grab the posts, check if they are current, return only current posts Loader::model('newzy','simplenews'); $news = NewsCheck::getCurrentBlocks($ctID,$ordering); //count the number of current posts returned $pcount = count($news); //if no events are returned, then we display a user defined message if($pcount==0){ echo $nonelistmsg; } //now calc the last page $lastpage = ceil($pcount/$num); //set the current page min max keys -1 as array key's start @ 0 $sKey = $num * ($pageno-1) ; $eKey = ($num * ($pageno-1)) + ($num-1) ; //take each current post and treat it like a query, for each one do X foreach($news as $key => $row){ //check for external URL, if none, rout to parent page if(!empty($row['urlLink'])){ $url = $row['urlLink']; }else{ $url = $controller->grabURL($row['cParentID']); } //check if thumbnail is there, if so get it, if not, null if($row['graphic']>0){ $thumbnail = $controller->getThumbnail($row['graphic']); }else{ $thumbnail = NULL; } //set vars $time = $controller->replaceTimeString($row['nbID']); $date = $row['sdt']; $title = $row['title']; //$content = strip_tags($controller->translateFrom($row['content'])); $content = $controller->translateFrom($row['content']); //if truncation is enabled if($truncateSummaries == 1){ if (strlen($content) >= $truncateChars){ //truncate to suplied truncation value //$content = substr($content,0,$truncateChars).'.....'; $content = wordwrap($content, $truncateChars); $content = substr($content, 0, strpos($content, "\n")).'.....'; } } //check if paging is enabled if($isPaged){ //check to make sure the array key is within the range if($key >= $sKey && $key <= $eKey){ newslistParse($url,$thumbnail,$thumbwidth,$time,$content,$title,$date); } //if paging is not selected, use number of items designated in the list block }else{ $i += 1; newslistParse($url,$thumbnail,$thumbwidth,$time,$content,$title,$date); //once we reach the set number stop the script if($i >= $num){ break; } } } ?> </div> <?php //is iCal feed option is sellected, show it if($showfeed==1){ ?> <div class="rssfeed"> <img src="<?php echo $uh->getBlockTypeAssetsURL($bt, 'rss.png');?>" width="14" height="14" alt="rss feed" /> <a href="<?php echo $rss_address ; ?>" id="getFeed">Get this Feed</a> <link href="<?php echo $controller->getRssUrl();?>" rel="alternate" type="application/rss+xml" title="<?php echo t('RSS');?>" /> </div> <?php } //$c = Page::getCurrentPage(); $link = Loader::helper('navigation')->getLinkToCollection($c); $link = $controller->URLfix($link); //if pagination is set, if it is needed, show it if($isPaged==1){ if ($pcount > $num) { echo '<div id="pagination">'; if ($pageno == 1) { echo " FIRST PREV "; } else { echo '<a href="'.$link.'pageno=1">FIRST </a>'; $prevpage = $pageno-1; echo '<a href="'.$link.'pageno='.$prevpage.'"> PREV</a>'; } // if echo ' ( Page '.$pageno.' of '.$lastpage.' ) '; if ($pageno == $lastpage) { echo " NEXT LAST "; } else { $nextpage = $pageno+1; echo '<a href="'.$link.'pageno='.$nextpage.'">NEXT </a>'; echo '<a href="'.$link.' pageno='.$lastpage.'"> LAST</a>'; } // if echo '</div>'; } } if (isset($bID)) { echo '<input type="hidden" name="bID" value="'.$bID.'" />';} ?> Quote Link to comment https://forums.phpfreaks.com/topic/221698-show-only-images-from-news-list/ Share on other sites More sharing options...
Cyberdave Posted December 15, 2010 Author Share Posted December 15, 2010 Can anyone help me on this? Quote Link to comment https://forums.phpfreaks.com/topic/221698-show-only-images-from-news-list/#findComment-1147811 Share on other sites More sharing options...
Cyberdave Posted December 15, 2010 Author Share Posted December 15, 2010 OK, I have got the images to appear using the following code: <div class="description"> <?php {preg_match_all('/<img[^>]+>/i',$content,$images);} print_r($images); ?></div> However, the Array info is appearing between the images, like this: Array ( [0] => Array ( [0] => 07-Green.gif [1] => 05-Red.gif [2] => 21-Yellow.gif [3] => 20-Blue.gif ) ) How can I edit the code so that only the images appear, without the array details? Thanks Quote Link to comment https://forums.phpfreaks.com/topic/221698-show-only-images-from-news-list/#findComment-1147895 Share on other sites More sharing options...
QuickOldCar Posted December 16, 2010 Share Posted December 16, 2010 print_r is used to show the values of an array lets assume $images is the array. or can be looked at as array($images) foreach ($images as $image) { echo $image; } Quote Link to comment https://forums.phpfreaks.com/topic/221698-show-only-images-from-news-list/#findComment-1147903 Share on other sites More sharing options...
Cyberdave Posted December 16, 2010 Author Share Posted December 16, 2010 So is this the correct code? <div class="description"> <?php {preg_match_all('/<img[^>]+>/i',$content,$images);} print_r($images); foreach ($images as $image) { echo $image; } ?></div> Quote Link to comment https://forums.phpfreaks.com/topic/221698-show-only-images-from-news-list/#findComment-1148033 Share on other sites More sharing options...
QuickOldCar Posted December 16, 2010 Share Posted December 16, 2010 I see no reason for this part print_r($images); Quote Link to comment https://forums.phpfreaks.com/topic/221698-show-only-images-from-news-list/#findComment-1148036 Share on other sites More sharing options...
Cyberdave Posted December 16, 2010 Author Share Posted December 16, 2010 My code is like this now, but now the images do not appear: <div class="description"> <?php preg_match_all('/<img[^>]+>/i',$content,$images); foreach ($images as $image) { echo $image; } ?></div> Quote Link to comment https://forums.phpfreaks.com/topic/221698-show-only-images-from-news-list/#findComment-1148055 Share on other sites More sharing options...
Cyberdave Posted December 16, 2010 Author Share Posted December 16, 2010 This has solved my problem. <div class="description"> <?php preg_match_all('/<img[^>]+>/i',$content,$images); ?> <?php foreach($images[0] as $img){ echo $img;}?></div> Quote Link to comment https://forums.phpfreaks.com/topic/221698-show-only-images-from-news-list/#findComment-1148224 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.