PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
| Dir : /home/jairosvt/public_html/afmedios.com/components/com_ijoomla_rss/ |
| Server: Linux server2.noticiasdecolima.com 4.18.0-553.30.1.el8_10.x86_64 #1 SMP Tue Nov 26 02:30:26 EST 2024 x86_64 IP: 107.161.180.42 |
| Dir : /home/jairosvt/public_html/afmedios.com/components/com_ijoomla_rss/ijoomla_rss.php |
<?php
/*
* @version $Id: ijoomla_rss.php 0.0.09 2007-03-22 15:17:28Z iJoomla Al $
*
* @package iJoomla RSS
* @email webmaster2@ijoomla.com
*
* @copyright
* ====================================================================
/**
* @copyright (C) 2010 iJoomla, Inc. - All rights reserved.
* @license GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html)
* @author iJoomla.com <webmaster@ijoomla.com>
* @url http://www.ijoomla.com/licensing/
* the PHP code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript *are NOT GPL, and are released under the IJOOMLA Proprietary Use License v1.0
* More info at http://www.ijoomla.com/licensing/
* ====================================================================
* @endcopyright
*
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once(JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
$database = &JFactory::getDBO();
$database->setQuery("SELECT `language`,`default_type` FROM #__ijoomla_rss_config LIMIT 1");
if(!$database->query()){
die($database->getErrorNum());
}
$rez = $database->loadAssocList();
$current_lang = $rez[0]['language'];
$default_type = $rez[0]['default_type'];
if ($current_lang!=""){
if(is_file(JPATH_SITE ."/administrator/components/com_ijoomla_rss/language/$current_lang.ijoomla_rss.php" )){
include_once( JPATH_SITE ."/administrator/components/com_ijoomla_rss/language/$current_lang.ijoomla_rss.php" );
}
}
else{
if(is_file(JPATH_SITE ."/administrator/components/com_ijoomla_rss/language/$mosConfig_lang.ijoomla_rss.php" )){
include_once( JPATH_SITE ."/administrator/components/com_ijoomla_rss/language/$mosConfig_lang.ijoomla_rss.php" );
}
else{
include_once( JPATH_SITE ."/administrator/components/com_ijoomla_rss/language/english.ijoomla_rss.php" );
}
}
$get_option = JArrayHelper::getValue($_GET,"option");
$get_itemid = JArrayHelper::getValue($_GET,"Itemid");
$get_act = JArrayHelper::getValue($_GET,"act" );
$get_cat = JArrayHelper::getValue($_GET,"cat" );
$get_sec = JArrayHelper::getValue($_GET,"sec" );
$get_full = JArrayHelper::getValue($_GET,"full" );
$selected_reader = JArrayHelper::getValue($_GET,"reader",0);
//$get_feedtype = strval( JArrayHelper::getValue( $_GET, 'feedtype', $default_type ));
$get_feedtype = JRequest::getVar('feedtype', $default_type,"","string");
// valid format strings are: RSS0.91, RSS1.0, RSS2.0, PIE0.1 (deprecated),
// MBOX, OPML, ATOM, ATOM0.3, HTML, JS
$homelink="index.php?option=".$get_option."&Itemid=".intval($get_itemid);
switch ($get_act) {
case 'xml':
if(intval($get_cat)>0){
require_once( JPATH_SITE .'/includes/feedcreator.class.php' );
show_feed(intval($get_cat),$get_feedtype,$get_act);
}
elseif(intval($get_sec)>0){
require_once( JPATH_SITE .'/includes/feedcreator.class.php' );
show_sec_feed(intval($get_sec),$get_feedtype,$get_act);
}
elseif($get_full=="yes"){
require_once( JPATH_SITE .'/includes/feedcreator.class.php' );
show_full_feed($get_feedtype);
}
else{
display_frontend($get_feedtype);
}
break;
case 'html':
if ($get_cat>0){
show_feed($get_cat,$get_feedtype,$get_act);
}
elseif ($get_sec>0){
show_sec_feed($get_sec,$get_feedtype,$get_act);
}
break;
default:
display_frontend($get_feedtype);
}
function frontend_header(){
//global $homelink,$selected_reader,$get_feedtype;
$Itemid = JRequest::getVar("Itemid","0","get","int");
$homelink = "index.php?option=com_ijoomla_rss&Itemid=".$Itemid;
$feedtype = JRequest::getVar("feedtype","","get","string");
$reader = JRequest::getVar("reader","0","get","int");
?>
<script type="text/javascript">
function RssSelect( rss_id ){
/*feedtype = <?php //if($feedtype!="") echo '\''.$feedtype.'\''; else echo '\'RSS2.0\''; ?>;
if(rss_id > 0)
sel_rss_id = rss_id;
else
sel_rss_id = 1;
document.location.href=' <?php //echo $homelink; ?> &reader=' + sel_rss_id + '&feedtype=' + feedtype;*/
form=document.rssForm;
form.reader.value=rss_id;
form.submit();
}
function set_feedtype( type){
/*document.location.href='<?php //echo $homelink;?>&reader=<?php //if ($reader!=0) echo $reader; else echo "1"; ?>&feedtype=' + type;*/
form=document.rssFeed;
form.submit();
}
</script>
<table width="100%">
<?php
}
function frontend_footer(){
echo "<tr><td align='center'><span style='font-family:Arial,Helvetica,sans-serif;font-size:0.833em;color:#999999'>Powered by iJoomla - </span><a style='font-family:Arial,Helvetica,sans-serif;color:#5388B4;font-size:0.833em;' href='http://www.ijoomla.com' target='_blank'>Joomla Extensions</a></td></tr>";
echo '</table>';
}
function show_content( $rss_config ,$feed_type){
global $option,$selected_reader;
$Itemid = JRequest::getVar('Itemid','0','','int');
$reader = JRequest::getVar("reader",'0','','int');
$feedtype = JRequest::getVar("feedtype","RSS2.0","","string");
$database = &JFactory::getDBO();
$default_reader_id = 0;
$default_reader_name = "";
$default_reader_image = "";
$default_reader_url = "";
$default_amp_char = "&";
// SHOW READERS
if ($rss_config->top_align != ""){
$rss_top_align = $rss_config->top_align;
}else{
$rss_top_align = "left";
}
if ($rss_config->top_content!=""){
echo '<tr><td width="100%" style="text-align:'.$rss_top_align.';">'.stripslashes($rss_config->top_content).'</td></tr>';
}
echo '<tr><td width="100%" style="text-align:'.$rss_top_align.';"><h3>'._CHOOSE_READER.'</h3></td></tr>';
echo '<tr><td><table align="'.$rss_top_align.'"><tr>';
$database->setQuery("SELECT * FROM #__ijoomla_rss_readers WHERE reader_include='1' OR `reader_default`='1'");
if (!$database->query()){
die( $database->getErrorMsg() );
}
$readers = $database->loadAssocList();
$number_of_readers = count($readers);
$readers_per_row = $rss_config->reader_columns;
$fields_left = ($readers_per_row * ceil($number_of_readers / $rss_config->reader_columns)) - $number_of_readers;
$disp_read_p_row=0;
?>
<form action="" name="rssForm" method="post">
<?php
foreach ($readers as $reader_count => $reader_value){
if ($disp_read_p_row<$readers_per_row){
$disp_read_p_row++;
}
else{
echo '</tr><tr>';
$disp_read_p_row=1;
}
// default RSS READERS
$reader_img_path = JURI::base()."components/com_ijoomla_rss/images/readers";
echo '<td style="text-align:left;"><input type="image" onclick="RssSelect('.$reader_value['reader_id'].')" src="'.$reader_img_path.$reader_value['reader_image'].'" name="img'.$reader_value['reader_id'].'"/></td>';
if ($selected_reader == 0 ){
if ($reader_value['reader_default']=='1'){
$default_reader_id = $reader_value['reader_id'];
$default_reader_name = $reader_value['reader_name'];
$default_reader_image = $reader_value['reader_image'];
$default_reader_url = $reader_value['reader_url'];
}
}
else{
if ($selected_reader == $reader_value['reader_id']){
$default_reader_id = $reader_value['reader_id'];
$default_reader_name = $reader_value['reader_name'];
$default_reader_image = $reader_value['reader_image'];
$default_reader_url = $reader_value['reader_url'];
$default_amp_char = $reader_value['amp_char'];
}
}
}
?>
<input type="hidden" name="option" value="com_ijoomla_rss" />
<input type="hidden" name="feedtype" value="<?php echo $feedtype; ?>" />
<input type="hidden" name="Itemid" value="<?php echo $Itemid; ?>" />
<input type="hidden" name="reader" id="reader" value="<?php echo $reader; ?>" />
</form>
<?php
if ($fields_left>0){
echo '<td colspan="'.$fields_left.'"></td>';
}
echo '</table></td></tr>';
// SHOW FEED TYPE
if ($rss_config->allow_type_sel == "yes"){
$rss2selected ="selected";
if ($feed_type == "RSS2.0"){
$rss2selected = "selected";
}
$rss1selected ="";
if ($feed_type == "RSS1.0"){
$rss1selected = "selected";
}
$rss09selected ="";
if ($feed_type == "RSS0.91"){
$rss09selected = "selected";
}
$atom03selected ="";
if ($feed_type == "ATOM0.3"){
$atom03selected = "selected";
}
?>
<tr>
<td width="100%" style="text-align:<?php echo $rss_top_align;?>;">
<h3><?php echo _CHOOSE_TYPE; ?></h3>
<form action="" name="rssFeed" method="post">
<select name="feedtype" onchange="Javascript:set_feedtype(this.value);" style="font-size:11px;">';
<option value="RSS2.0" <?php echo $rss2selected;?> >RSS2.0</option>
<option value="RSS1.0" <?php echo $rss1selected; ?> >RSS1.0</option>
<option value="RSS0.91" <?php echo $rss09selected;?> >RSS0.91</option>
<option value="ATOM0.3" <?php echo $atom03selected; ?> >ATOM0.3</option>
</select>
<input type="hidden" name="option" value="com_ijoomla_rss" />
<input type="hidden" name="Itemid" value="<?php echo $Itemid; ?>" />
<input type="hidden" name="reader" id="reader" value="<?php echo $reader; ?>" />
</form>
</td>
</tr>
<?php
echo '<tr><td width="100%" style="text-align:'.$rss_top_align.';"><h3>'._CHOOSE_FEED3.'</h3></td></tr>';
}
else{
echo '<tr><td width="100%" style="text-align:'.$rss_top_align.';"><h3>'._CHOOSE_FEED2.'</h3></td></tr>';
}
// SHOW FEEDS
$section_display_array = array();
$category_count_array = array();
/*$database->setQuery("SELECT s.*,sm.* FROM #__sections as s,#__ijoomla_rss_section_manager as sm WHERE s.id=sm.sec_id AND sm.sec_show='1' ORDER BY sm.ordering ASC");*/
$database->setQuery("SELECT s.*,sm.* FROM #__sections as s,#__ijoomla_rss_section_manager as sm WHERE s.id=sm.sec_id ORDER BY sm.ordering ASC");
if (!$database->query()){
die( $database->getErrorMsg() );
}
$section_details = $database->loadObjectList();
$section_number = 0;
if ($rss_config->show_all_feed=='1'){
$feeds_shown = 1;
}
else{
$feeds_shown = 0;
}
foreach ($section_details as $sec_count => $section_value){
$entity_display_nr = 0;
$section_number++;
$section_display_array[$section_number] = "";
if ($rss_config->show_feeds!='cat'&&$rss_config->show_buttons!='cat'){
$entity_display_nr += 1; // section
}
if ($rss_config->show_feeds!='cat'){
if ($section_value->sec_rename!=""){
$section_title = stripslashes($section_value->sec_rename);
}
else{
$section_title = $section_value->title;
}
if ($rss_config->show_buttons=='cat'){
$section_display_array[$section_number] .= "\n<tr><td colspan=\"2\"><strong>".$section_title."</strong></td></tr>";
}
else{
$section_link ="index.php?option=$option".$default_amp_char."act=xml".$default_amp_char."sec=".$section_value->id.":".$section_value->alias.$default_amp_char."feedtype=".$feed_type;
if ($default_reader_name == "botablog"){
$section_link .= "&name=".$section_title;
}
elseif ($default_reader_name == "simpy"){
$section_link .= "&title=".$section_title;
}
elseif ($default_reader_name == "MyMSN"){
$section_real_link = JURI::base()."index.php?option=com_content&task=section&id=".$section_value->id;
$itemsec_id = getItemidRss( $section_value->id , "sections");
if ($itemsec_id > 0){
$section_real_link .= "&Itemid=".$itemsec_id;
}
$section_link .= "&ru=".$section_real_link;
}
elseif($default_reader_name == "technorati"){
$section_real_link = JURI::base()."index.php?option=com_content&task=section&id=".$section_value->id;
$itemsec_id = getItemidRss( $section_value->id , "sections");
if ($itemsec_id > 0){
$section_real_link .= "&Itemid=".$itemsec_id;
}
$section_link = $section_real_link;
}
elseif ($default_reader_name == "protopage"){
$section_link .= "&label=".$section_title."&type=feed";
}
//$section_link = JRoute::_($section_link);
//$section_link = JRoute::_("index.php?option=com_ijoomla_rss&act=xml&sec=1&feedtype=RSS2.0");
//echo $section_link;die();
// we show the URL if we don't have a FeedBurner URL
if($section_value->feedburnerurl=="none" || $section_value->feedburnerurl==""){
// default RSS READERS
$reader_img_path = JURI::base()."components/com_ijoomla_rss/images/readers";
if($reader!=0){
$database->setQuery("SELECT `reader_image` FROM #__ijoomla_rss_readers WHERE `reader_id`=".intval($reader));
if (!$database->query()){
die( $database->getErrorMsg() );
}
$default_reader_image = $database->loadResult();
if(is_null($default_reader_image)){ // alin ijoomla
$default_reader_image = "/xml.gif"; // alin ijoomla
} // alin ijoomla
}
if($reader!=0){
$database->setQuery("SELECT `reader_url` FROM #__ijoomla_rss_readers WHERE `reader_id`=".intval($reader));
if (!$database->query()){
die( $database->getErrorMsg() );
}
$default_reader_url = $database->loadResult();
}
if($reader!="1" && $default_reader_url!="") { //alin ijoomla
if(strcmp($section_value->feedburnerurl,"none")==0 || $section_value->feedburnerurl==""){
$section_link=JURI::base().$section_link;
$imgURL = $default_reader_url.urlencode($section_link);
}
else{
$imgURL = "http://".$default_reader_url.urlencode($section_value->feedburnerurl);
}
}
else{
if(strcmp($section_value->feedburnerurl,"none")==0 || $section_value->feedburnerurl=="") {
$imgURL = JRoute::_($default_reader_url.$section_link."&Itemid=".$Itemid);
}
else
$imgURL = "http://".$default_reader_url.$section_value->feedburnerurl;
}
//$imgURL=mb_substr($imgURL,7);
if($section_value->sec_show==1){
$section_display_array[$section_number] .= '<tr><td style="width:30px;padding-right:3px;">
<a href="'.$imgURL.'" target="_blank"><img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'.$section_title.'"/></a></td>
<td><a href="'.$imgURL.'" target="_blank"><strong>'.$section_title.'</strong></a></td></tr>';
}
/*else{
$section_display_array[$section_number] .= '<tr><td style="width:30px;padding-right:3px;">
<img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'.$section_title.'"/></td>
<td><<strong>'.$section_title.'</strong></td></tr>';
}*/
}
else{ // we show the FeedBurner URL
// default RSS READERS
$reader_img_path = JURI::base()."components/com_ijoomla_rss/images/readers";
//29.02
if($reader!=0){
$database->setQuery("SELECT `reader_image` FROM #__ijoomla_rss_readers WHERE `reader_id`=".intval($reader));
if (!$database->query()){
die( $database->getErrorMsg() );
}
$default_reader_image = $database->loadResult();
}
if($reader!=0){
$database->setQuery("SELECT `reader_url` FROM #__ijoomla_rss_readers WHERE `reader_id`=".intval($reader));
if (!$database->query()){
die( $database->getErrorMsg() );
}
$default_reader_url = $database->loadResult();
}
if($section_value->sec_show==1){
$section_display_array[$section_number] .= '<tr><td style="width:30px;padding-right:3px;">
<a href="http://feeds.feedburner.com/'.$section_value->feedburnerurl.'" target="_blank">
<img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'.$section_title.'"/></a></td>
<td><a href="http://feeds.feedburner.com/'.$section_value->feedburnerurl.'" target="_blank"><strong>'.$section_title.'
</strong></a></td></tr>';
}
/*else{
$section_display_array[$section_number] .= '<tr><td style="width:30px;padding-right:3px;"><img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'.$section_title.'"/></td>
<td><strong>'.$section_title.'</strong></a></td></tr>';
}*/
//$section_display_array[$section_number] .= '<tr><td style="width:30px;padding-right:3px;">
//<a href="'.$section_value->feedburnerurl.'" target="_blank"><img border="0" src="'.$default_reader_image.'" alt="'.$section_title.'"/></a></td>
//<td><a href="'.$section_value->feedburnerurl.'" target="_blank"><strong>'.$section_title.'</strong></a></td></tr>';
}
}
}
if ($rss_config->show_feeds!='sec'){
if ($rss_config->show_buttons!='sec'){
$limit = $rss_config->feeds - $feeds_shown - $entity_display_nr;
}
else{
$limit = 999;
}
$database->setQuery("SELECT c.*,cm.* FROM #__categories as c, #__ijoomla_rss_categories_manager as cm
WHERE c.section=".intval($section_value->sec_id)." AND c.published = 1 AND cm.cat_show='1' AND c.id = cm.cat_id ORDER BY cm.ordering ASC LIMIT 0,$limit");
if (!$database->query()){
die( $database->getErrorMsg() );
}
if ($rss_config->show_feeds!='sec'&&$rss_config->show_buttons!='sec'){
$entity_display_nr += $database->getNumRows();
}
$categories = $database->loadObjectList();
foreach ($categories as $cat_count => $category_value){
if ($category_value->cat_rename!=""){
$category_title = stripslashes($category_value->cat_rename);
}
else{
$category_title = $category_value->title;
}
if ($rss_config->show_buttons!='sec'){
if (($reader!='1')&& $default_reader_url!=""){ //alin ijoomla
$category_link = JURI::base()."index.php?option=$option".$default_amp_char."act=xml".$default_amp_char."cat=".$category_value->id.$default_amp_char."feedtype=".$feed_type;
$category_link = urlencode($category_link);
}
else{
//start put the correct link fo xml feed type
$category_link = JRoute::_("index.php?option=$option".$default_amp_char."act=xml".$default_amp_char."cat=".$category_value->id.":".$category_value->alias.$default_amp_char."feedtype=".$feed_type."&Itemid=".$Itemid);
}
if ($default_reader_name == "botablog"){
$category_link .= "&name=".$category_title;
}
elseif($default_reader_name == "simpy"){
$category_link .= "&title=".$category_title;
}
elseif ($default_reader_name == "MyMSN"){
$cat_real_link = "index.php?option=com_content&task=category&id=".$category_value->id;
$itemcat_id = getItemidRss( $category_value->id , "categories");
if ($itemcat_id > 0){
$cat_real_link .= "&Itemid=".$itemcat_id;
}
$category_link .= "&ru=".$cat_real_link;
}
elseif ($default_reader_name == "technorati"){
$cat_real_link = "index.php?option=com_content&task=category&id=".$category_value->id;
$itemcat_id = getItemidRss( $category_value->id , "categories");
if ($itemcat_id > 0){
$cat_real_link .= "&Itemid=".$itemcat_id;
}
$category_link = $cat_real_link;
}
elseif ($default_reader_name == "protopage"){
$category_link .= "&label=".$category_title."&type=feed";
}
$category_link = JRoute::_($category_link);
// we show the URL if we don't have a FeedBurner URL
if($category_value->feedburnerurl=="none" || $category_value->feedburnerurl==""){
// default RSS READERS
$reader_img_path = JURI::base()."components/com_ijoomla_rss/images/readers";
// 29.02
if($reader!=0){
$database->setQuery("SELECT `reader_image` FROM #__ijoomla_rss_readers WHERE `reader_id`=".intval($reader));
if (!$database->query()){
die( $database->getErrorMsg() );
}
$default_reader_image = $database->loadResult();
if(is_null($default_reader_image)){ // alin ijoomla
$default_reader_image = "/xml.gif"; // alin ijoomla
} // alin ijoomla
}
if($reader!=0){
$database->setQuery("SELECT `reader_url` FROM #__ijoomla_rss_readers WHERE `reader_id`=".intval($reader));
if (!$database->query()){
die( $database->getErrorMsg() );
}
$default_reader_url = $database->loadResult();
}
$section_display_array[$section_number] .= '<tr><td style="width:30px;padding-right:3px;">
<a href="'.$default_reader_url.$category_link.'" target="_blank"><img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'.$category_title.'"/></a></td>
<td><a href="'.$default_reader_url.$category_link.'" target="_blank">'.$category_title.'</a></td></tr>';
}
// we show the FeedBurner URL
else{
if( $reader!=0){
$database->setQuery("SELECT `reader_image` FROM #__ijoomla_rss_readers WHERE `reader_id`=".intval($reader));
if (!$database->query()){
die( $database->getErrorMsg() );
}
$default_reader_image = $database->loadResult();
}
if($reader!=0){
$database->setQuery("SELECT `reader_url` FROM #__ijoomla_rss_readers WHERE `reader_id`=".intval($reader));
if (!$database->query()){
die( $database->getErrorMsg() );
}
$default_reader_url = $database->loadResult();
}
// default RSS READERS
$reader_img_path = JURI::base()."components/com_ijoomla_rss/images/readers";
$section_display_array[$section_number] .= '<tr><td style="width:30px;padding-right:3px;">
<a href="http://feeds.feedburner.com/'.$category_value->feedburnerurl.'" target="_blank">
<img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'.$category_title.'"/></a></td>
<td><a href="http://feeds.feedburner.com/'.$category_value->feedburnerurl.'" target="_blank">'.$category_title.'</a></td></tr>';
//$section_display_array[$section_number] .= '<tr><td style="width:30px;padding-right:3px;">
//<a href="'.$category_value->feedburnerurl.'" target="_blank"><img border="0" src="'.$default_reader_image.'" alt="'.$category_title.'"/></a></td>
//<td><a href="'.$category_value->feedburnerurl.'" target="_blank">'.$category_title.'</a></td></tr>';
}
}
else{
$section_display_array[$section_number] .= '<tr><td></td><td>'.$category_title.'</td></tr>';
}
}
$category_count_array[$section_number] = count($categories);
if ($rss_config->show_feeds!='cat'){
$category_count_array[$section_number] +=1;
}
}
else{
$category_count_array[$section_number] = 1;
}
if ($category_count_array[$section_number]>0){
// +1 for section separator
$category_count_array[$section_number] += 1;
$section_display_array[$section_number] .= '<tr><td colspan="2" style="height:3px"> </td></tr>';
}
$feeds_shown += $entity_display_nr;
if ($feeds_shown >= $rss_config->feeds){
break;
}
}
$frontend_display_array = array();
$frontend_column_counter = array();
// frontend display array initialization
for ($i=1; $i<=$rss_config->feed_columns; $i++){
$frontend_display_array[$i] = '<table width="100%" cellpadding="1" cellspacing="1">';
$frontend_column_counter[$i] = 0;
}
$minimum_column_number = 1;
// section distribution
for ($i=1; $i<=$section_number ; $i++){
$frontend_display_array[$minimum_column_number] .= $section_display_array[$i];
$frontend_column_counter[$minimum_column_number] += $category_count_array[$i];
// recalculate minimum column number
if ($i<$section_number){
$min_value = $frontend_column_counter[$minimum_column_number];
for ( $j=$rss_config->feed_columns; $j>=1; $j-- ){
if ($frontend_column_counter[$j] <= $min_value){
$min_value = $frontend_column_counter[$j];
$min_value_col = $j;
}
}
$minimum_column_number = $min_value_col;
}
}
// frontend display array tag closure
for ($i=1; $i<=$rss_config->feed_columns; $i++){
$frontend_display_array[$i] .= '</table>';
}
// DISPLAY
echo '<tr><td>';
echo '<table width="100%" cellpadding="0" cellspacing="0">';
echo '<tr>';
$database->setQuery("SELECT all_sec_cat_feedburnerurl FROM #__ijoomla_rss_all_sec_and_cat ORDER BY all_sec_cat_feedburnerurlid DESC limit 1");
if (!$database->query()){
die( $database->getErrorMsg() );
}
$rezu = $database->loadResult();
if ($rss_config->show_all_feed=='1'){
if($default_reader_url!="")
$full_content_link = JURI::base()."index.php?option=$option".$default_amp_char."act=xml".$default_amp_char."full=yes".$default_amp_char."feedtype=".$feed_type;
else $full_content_link = JRoute::_("index.php?option=$option".$default_amp_char."act=xml".$default_amp_char."full=yes".$default_amp_char."feedtype=".$feed_type."&Itemid=".$Itemid);
if($rezu=='none' || $rezu==""){
if($reader=='1' || $default_reader_url==""){
// default RSS READERS
$reader_img_path = JURI::base()."components/com_ijoomla_rss/images/readers";
echo '<td style="vertical-align:top; text-align:left;" colspan="'.$rss_config->feed_columns.'"><table width="100%" cellpadding="0" cellspacing="0" style="padding-bottom:10px;"><tr>';
echo '<td style="width:30px;padding-left:1px;padding-right:4px;"><a href="'.$default_reader_url.$full_content_link.'" target="_blank"><img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'._FULL_CONTENT_NAME.'"/></a></td>';
echo '<td style="text-align:left;"><a href="'.$default_reader_url.$full_content_link.'" target="_blank"><strong>'._FULL_CONTENT_NAME.'</strong></a></td>';
}
else{
// default RSS READERS
$reader_img_path = JURI::base()."components/com_ijoomla_rss/images/readers";
echo '<td style="vertical-align:top; text-align:left;" colspan="'.$rss_config->feed_columns.'"><table width="100%" cellpadding="0" cellspacing="0" style="padding-bottom:10px;"><tr>';
echo '<td style="width:30px;padding-left:1px;padding-right:4px;"><a href="'.$default_reader_url.urlencode($full_content_link).'" target="_blank"><img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'._FULL_CONTENT_NAME.'"/></a></td>';
echo '<td style="text-align:left;"><a href="'.$default_reader_url.urlencode($full_content_link).'" target="_blank"><strong>'._FULL_CONTENT_NAME.'</strong></a></td>';
}
}
else{
// default RSS READERS
$reader_img_path = JURI::base()."components/com_ijoomla_rss/images/readers";
//TASK 77
echo '<td style="vertical-align:top; text-align:left;" colspan="'.$rss_config->feed_columns.'"><table width="100%" cellpadding="0" cellspacing="0" style="padding-bottom:10px;"><tr>';
echo '<td style="width:30px;padding-left:1px;padding-right:4px;"><a href="http://feeds.feedburner.com/'.$rezu.'" target="_blank"><img border="0" src="'.$reader_img_path.$default_reader_image.'" alt="'._FULL_CONTENT_NAME.'"/></a></td>';
echo '<td style="text-align:left;"><a href="http://feeds.feedburner.com/'.$rezu.'" target="_blank"><strong>'._FULL_CONTENT_NAME.'</strong></a></td>';
//echo '<td style="vertical-align:top; text-align:left;" colspan="'.$rss_config->feed_columns.'"><table width="100%" cellpadding="0" cellspacing="0" style="padding-bottom:10px;"><tr>';
//echo '<td style="width:30px;padding-left:1px;padding-right:4px;"><a href="'.$rezu.'" target="_blank"><img border="0" src="'.$default_reader_image.'" alt="'._FULL_CONTENT_NAME.'"/></a></td>';
//echo '<td style="text-align:left;"><a href="'.$rezu.'" target="_blank"><strong>'._FULL_CONTENT_NAME.'</strong></a></td>';
}
echo '</tr></table>
</td></tr><tr>';
}
for ( $i=1; $i<=$rss_config->feed_columns; $i++){
echo '<td style="vertical-align:top;">';
echo $frontend_display_array[$i];
echo '</td>';
}
echo '</tr>';
echo '</table>';
echo '</td></tr>';
}
function display_frontend($get_feedtype){
$database = &JFactory::getDBO();
$get_act = JArrayHelper::getValue($_GET,"act" );
$database->setQuery("SELECT * FROM #__ijoomla_rss_config");
if (!$database->query()){
die( $database->getErrorMsg() );
}
$config = $database->loadObjectList();
$rss_config = $config[0];
if($get_act!='html')
frontend_header();
//print_r(frontend_header());
show_content( $rss_config, $get_feedtype );
if($get_act!='html')
frontend_footer();
}
/*
function display_frontend_html($get_feedtype){
global $database;
$database->setQuery("SELECT * FROM #__ijoomla_rss_config");
if (!$database->query()){
die( $database->getErrorMsg() );
}
$config = $database->loadObjectList();
$rss_config = $config[0];
// frontend_header();
show_content( $rss_config, $get_feedtype );
frontend_footer();
}*/
function show_sec_feed( $sec_id, $feed_type,$get_act ){
$database = &JFactory::getDBO();
$sec_id = intval($sec_id);
$database->setQuery("SELECT * FROM #__sections WHERE id=$sec_id");
if (!$database->query()){
die( $database->getErrorMsg() );
}
if ($database->getNumRows()>0){
$sec_result = $database->loadObjectList();
$sec_details = $sec_result[0];
$section_link = JURI::base()."index.php?option=com_content&task=section&id=$sec_id";
$item_id = getItemidRss( $sec_id , "sections");
if ($item_id != 0){
$section_link .= "&Itemid=".$item_id;
}
$database->setQuery("SELECT * FROM #__ijoomla_rss_config WHERE 1 LIMIT 1");
if (!$database->query()) {
die( $database->getErrorMsg() );
}
$result_qry = $database->loadAssocList();
$grab_content = $result_qry[0]['grab_content'];
$feed_chars = $result_qry[0]['feed_chars'];
$title_chars = $result_qry[0]['title_chars'];
//////////////////////
$sec_details->title = str_replace('/','_',$sec_details->title);
/////////////////////
$feed_file_name = str_replace(' ','_',substr($sec_details->title,0,15)).".xml";
$feed_file = JPATH_SITE.'/components/com_ijoomla_rss/xmlfiles/'.$feed_file_name;
// load feed creator class
$rss = new UniversalFeedCreator();
// load image creator class
$rss->title = $sec_details->title;
//$rss->description = strip_tags($sec_details->description,"<img><a>");
if(!empty($sec_details->description) && $sec_details->description!=""){
$rss->description= getDescription($sec_details->description,$feed_chars);
$rss->description=str_replace("&","&",$rss->description);
}
else $rss->description="";
if($feed_type!="ATOM0.3")
$rss->link = "<![CDATA[".JRoute::_($section_link)."]]>";
else
$rss->link = JRoute::_($section_link);
$feed_file_link = JURI::base()."index.php?option=com_ijoomla_rss&act=xml&sec=".$sec_id."&feedtype=ATOM0.3";
$rss->syndicationURL = JRoute::_(JURI::base());
$rss->cssStyleSheet = NULL;
$rss->encoding = "UTF-8";
//ISO-8859-1
// load individual item creator class
//start get the number of feeds from config
$database->setQuery("SELECT * FROM #__ijoomla_rss_config");
if (!$database->query()){
die( $database->getErrorMsg() );
}
$config = $database->loadObjectList();
$rss_config = $config[0];
//end get the number of feeds from config
$jnow = & JFactory::getDate();
$date_time = $jnow->toMySQL();
$database->setQuery("SELECT c.* FROM #__content c left join #__categories cc on c.catid=cc.id WHERE c.sectionid=".intval($sec_id)." AND c.state=1 and cc.published=1 and (c.publish_down > '".$date_time."' || c.publish_down='0000-00-00 00:00:00') ORDER BY c.created DESC limit ".$rss_config->feeds);
if (!$database->query()){
die( $database->getErrorMsg() );
}
$articles = $database->loadObjectList();
foreach ($articles as $art_count => $article_value){
$art_item_id = getItemidRss( $article_value->id );
$article_link = JURI::base()."index.php?option=com_content&task=view&id=".$article_value->id;
if ($art_item_id>0){
$article_link .= "&Itemid=".$art_item_id;
}
$item = new FeedItem();
// description content
switch ($grab_content){
case 'intro':
$description_source = $article_value->introtext;
break;
case 'full':
$description_source = $article_value->fulltext;
break;
case 'intro_full_empty':
if (trim($article_value->fulltext)==""){
$description_source = $article_value->introtext;
}
else{
$description_source = $article_value->fulltext;
}
break;
case 'full_intro_empty':
default:
if (trim($article_value->introtext)==""){
$description_source = $article_value->fulltext;
}
else{
$description_source = $article_value->introtext;
}
break;
}
// title content
if ($title_chars>0){
if (strlen($article_value->title)<= $title_chars){
$title_source = $article_value->title;
}
else{
$title_source = substr($article_value->title,0,$title_chars);
}
}
else{
$title_source = $article_value->title;
}
// mambot tags removed
$item_title = str_replace('{mosimage}','',$title_source);
$item_description = str_replace('{mosimage}','',$description_source);
//$item_description = preg_replace('/{(sidebar) (.*)\}/','',$item_description);
$to_replace='/\{(.*?)\}/i';
$item_description = preg_replace($to_replace,'',$item_description);
//$to_replace='/hspace="(.*?)"/i';
while (eregi('{moscode}',$item_title)){
$mostag_start_pos = strpos($item_title,'{moscode}');
$mostag_finish_pos = strpos($item_title,'{/moscode}');
if ($mostag_finish_pos > $mostag_start_pos){
$new_text = substr($item_title,0,$mostag_start_pos);
$new_text .= substr($item_title,$mostag_finish_pos+10);
}
else{
$new_text = str_replace('{moscode}','',$item_title);
$new_text = str_replace('{/moscode}','',$item_title);
}
$item_title = $new_text;
}
while (eregi('{moscode}',$item_description)){
$mostag_start_pos = strpos($item_description,'{moscode}');
$mostag_finish_pos = strpos($item_description,'{/moscode}');
if ($mostag_finish_pos > $mostag_start_pos){
$new_text = substr($item_description,0,$mostag_start_pos);
$new_text .= substr($item_description,$mostag_finish_pos+10);
}
else{
$new_text = str_replace('{moscode}','',$item_description);
$new_text = str_replace('{/moscode}','',$item_description);
}
$item_description = $new_text;
}
// description length
if ($feed_chars>0 && (strlen($item_description) > $feed_chars)){
//$item_description = substr(strip_tags($item_description,'<img><a>'),0,$feed_chars)." ...";
$item_description = getDescription($item_description,$feed_chars);
}
// item information
// SEF modification -> so that our link article is ok is sef is enabled
$jnow = & JFactory::getDate();
$date = $jnow->toMySQL();
$jnow = & JFactory::getDate();
$date_time = $jnow->toMySQL();
$query =" select c.* , ".
" CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\":\", c.id, c.alias) ELSE c.id END as slug , ".
" CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\":\", cc.id, cc.alias) ELSE cc.id END as catslug ".
" from #__content as c ".
" LEFT JOIN #__categories as cc on cc.id = c.catid ".
" where c.id = ".$article_value->id." and c.access <= 0 and (c.publish_down > '".$date_time."' || c.publish_down='0000-00-00 00:00:00')";
$database->setQuery( $query );
$current_item = $database->loadObjectList();
$art_url = substr(JURI::root(false,''),0,-1);
$art_url .= JRoute::_(ContentHelperRoute::getArticleRoute($current_item[0]->slug, $current_item[0]->catslug, $current_item[0]->sectionid));
$item->title = $item_title;
$item->link = $art_url;//"http://www.google.ro".$article_value->id;//JRoute::_($article_link);
$item->description = $item_description;
$item->source = $article_value->urls;
$year = substr( $article_value->created, 0, 4);
$month= substr( $article_value->created, 5, 2);
$day = substr( $article_value->created, 8, 2);
$hour = substr( $article_value->created, 11, 2);
$min = substr( $article_value->created, 14, 2);
$sec = substr( $article_value->created, 17, 2);
$atom30_date = $year."-".$month."-".$day."T".$hour.":".$min.":".$sec."Z";
$article_timestamp = mktime( $hour, $min, $sec, $month, $day, $year);
if($feed_type!="ATOM0.3")
$item->date = date( 'r', $article_timestamp );
else
$item->date = $atom30_date;
$item->category = $sec_details->title;
// loads item info into rss array
$rss->addItem( $item );
//echo $rss->addItem( $item );
}
// save feed file
if (is_file($feed_file))
chmod($feed_file,0777);
//chmod($feed_file,0755);
if($feed_type!="ATOM0.3")
$rss->saveFeed( $feed_type, $feed_file , true );
else{
//$date = gmdate("Y-m-d\TH:i:sO",$this->unix);
//$date = substr($date,0,22) . ':' . substr($date,-2);
//if (TIME_ZONE!="") $date = str_replace("+00:00",TIME_ZONE,$date);
$feed = "<?xml version=\"1.0\" encoding=\"".$rss->encoding."\"?>\n";
//$feed.= $this->_createGeneratorComment();
//$feed.= $this->_createStylesheetReferences();
$feed.= "<feed xmlns=\"http://www.w3.org/2005/Atom\"";
//if ($this->language!="") {
// $feed.= " xml:lang=\"".$this->language."\"";
//}
$feed.= ">\n";
$feed.= " <title>".htmlspecialchars(strip_tags($rss->title))."</title>\n";
$feed.= " <subtitle>".htmlspecialchars($rss->description)."</subtitle>\n";
$feed.= " <link rel=\"alternate\" type=\"application/xhtml+xml\" href=\"".htmlspecialchars($rss->link)."\"/>\n";
$feed.= " <link rel=\"self\" href=\"".htmlspecialchars($feed_file_link)."\"/>\n";
$feed.= " <id>".htmlspecialchars($rss->link)."</id>\n";
//$now = new FeedDate();
$feed.= " <updated>".htmlspecialchars(date("Y-m-d")."T".date("H:i:s")."Z")."</updated>\n";
if ($rss->editor!="") {
$feed.= " <author>\n";
$feed.= " <name>".$rss->editor."</name>\n";
if ($this->editorEmail!="") {
$feed.= " <email>".$rss->editorEmail."</email>\n";
}
$feed.= " </author>\n";
}
else{
$feed.= " <author>\n";
$feed.= " <name>.</name>\n";
$feed.= " </author>\n";
}
//$feed.= " <generator>".FEEDCREATOR_VERSION."</generator>\n";
//$feed.= $this->_createAdditionalElements($this->additionalElements, " ");
for ($i=0;$i<count($rss->items);$i++) {
$feed.= " <entry>\n";
$feed.= " <title>".htmlspecialchars(strip_tags($rss->items[$i]->title))."</title>\n";
$feed.= " <link rel=\"alternate\" type=\"application/xhtml+xml\" href=\"".htmlspecialchars($rss->items[$i]->link)."\"/>\n";
if ($rss->items[$i]->date=="")
$rss->items[$i]->date = date("Y-m-d")."T".date("H:i:s")."Z";
//$itemDate = new FeedDate($this->items[$i]->date);
//$feed.= " <created>".htmlspecialchars($itemDate->iso8601())."</created>\n";
//$feed.= " <issued>".htmlspecialchars($itemDate->iso8601())."</issued>\n";
$feed.= " <updated>".htmlspecialchars($rss->items[$i]->date)."</updated>\n";
$feed.= " <id>".htmlspecialchars($rss->items[$i]->link)."</id>\n";
//$feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, " ");
if ($rss->items[$i]->author!="") {
$feed.= " <author>\n";
$feed.= " <name>".htmlspecialchars($rss->items[$i]->author)."</name>\n";
$feed.= " </author>\n";
}
if ($rss->items[$i]->description!=""){
$feed.= " <summary type=\"html\">".htmlspecialchars($rss->items[$i]->description)."</summary>\n";
}
$feed.= " </entry>\n";
}
$feed.= "</feed>\n";
$feedFile = fopen($feed_file, "w+");
if ($feedFile) {
fputs($feedFile,$feed);
fclose($feedFile);
Header("Content-Type: application/atom+xml; charset=utf-8");
Header("Content-Disposition: inline; filename=".basename($feed_file));
readfile($feed_file, "r");
die();
}
else {
echo "<br /><b>".ERR_CREATING_FEED_FILE."</b><br />";
}
}
/*
$feedFile = fopen($feed_file, "w+");
$contents = fread($feedFile, filesize($feed_file));
echo $contents.'+++';
$contents = str_replace("http://purl.org/atom/ns#","http://www.w3.org/2005/Atom",$contents);
fwrite($feedFile,$contents);
fclose($feedFile);
*/
}else{
display_frontend($feed_type);
}
}
function show_feed( $cat_id, $feed_type,$get_act ) {
$database = &JFactory::getDBO();
$cat_id = intval($cat_id);
$database->setQuery("SELECT * FROM #__categories WHERE id=$cat_id");
if (!$database->query()){
die( $database->getErrorMsg() );
}
if ($database->getNumRows()>0) {
$cat_result = $database->loadObjectList();
$cat_details = $cat_result[0];
$category_link = JURI::base()."index.php?option=com_content&task=category&id=$cat_id";
$item_id = getItemidRss( $cat_id , "categories");
if ($item_id != 0){
$category_link .= "&Itemid=".$item_id;
}
$database->setQuery("SELECT * FROM #__ijoomla_rss_config WHERE 1 LIMIT 1");
if (!$database->query()) {
die( $database->getErrorMsg() );
}
$result_qry = $database->loadAssocList();
$grab_content = $result_qry[0]['grab_content'];
$feed_chars = $result_qry[0]['feed_chars'];
$title_chars = $result_qry[0]['title_chars'];
//////////////////////
$cat_details->title = str_replace('/','_',$cat_details->title);
/////////////////////
$feed_file_name = str_replace(' ','_',substr($cat_details->title,0,15)).".xml";
$feed_file = JPATH_SITE.'/components/com_ijoomla_rss/xmlfiles/'.$feed_file_name;
if ($get_act=='xml'){
// load feed creator class
$rss = new UniversalFeedCreator();
// load image creator class
$rss->title = $cat_details->title;
//$rss->description = strip_tags($sec_details->description,"<img><a>");
if(!empty($sec_details->description) && $sec_details->description!=""){
$rss->description= getDescription($sec_details->description,$feed_chars);
$rss->description=str_replace("&","&",$rss->description);
}
else $rss->description="";
if($feed_type!="ATOM0.3")
$rss->link = "<![CDATA[".JRoute::_($category_link)."]]>";
else
$rss->link = JRoute::_($category_link);
$feed_file_link = JURI::base()."index.php?option=com_ijoomla_rss&act=xml&cat=".$cat_id."&feedtype=ATOM0.3";
$rss->syndicationURL = JRoute::_(JURI::base());
$rss->cssStyleSheet = NULL;
$rss->encoding = "UTF-8";
//ISO-8859-1
}
// load individual item creator class
//start get the number of feeds from config
$database->setQuery("SELECT * FROM #__ijoomla_rss_config");
if (!$database->query()){
die( $database->getErrorMsg() );
}
$config = $database->loadObjectList();
$rss_config = $config[0];
//end get the number of feeds from config
$jnow = & JFactory::getDate();
$date_time = $jnow->toMySQL();
$database->setQuery("SELECT * FROM #__content WHERE catid=$cat_id AND state=1 and (publish_down > '".$date_time."' || publish_down='0000-00-00 00:00:00') ORDER BY created DESC limit ".$rss_config->feeds);
if (!$database->query()){
die( $database->getErrorMsg() );
}
$articles = $database->loadObjectList();
foreach ($articles as $art_count => $article_value) {
$art_item_id = getItemidRss( $article_value->id );
$article_link = JURI::base()."index.php?option=com_content&task=view&id=".$article_value->id;
if ($art_item_id>0){
$article_link .= "&Itemid=".$art_item_id;
}
if ($get_act=='xml'){
$item = new FeedItem();
}
// description content
switch ($grab_content){
case 'intro':
$description_source = $article_value->introtext;
break;
case 'full':
$description_source = $article_value->fulltext;
break;
case 'intro_full_empty':
if (trim($article_value->fulltext)==""){
$description_source = $article_value->introtext;
}
else{
$description_source = $article_value->fulltext;
}
break;
case 'full_intro_empty':
default:
if (trim($article_value->introtext)==""){
$description_source = $article_value->fulltext;
}
else{
$description_source = $article_value->introtext;
}
break;
}
// title content
if ($title_chars>0){
if (strlen($article_value->title)<= $title_chars){
$title_source = $article_value->title;
}
else{
$title_source = substr($article_value->title,0,$title_chars);
}
}
else{
$title_source = $article_value->title;
}
// mambot tags removed
$item_title = str_replace('{mosimage}','',$title_source);
$item_description = str_replace('{mosimage}','',$description_source);
//$item_description = preg_replace('/{(sidebar) (.*)\}/','',$item_description);
$to_replace='/\{(.*?)\}/i';
$item_description = preg_replace($to_replace,'',$item_description);
while (eregi('{moscode}',$item_title)){
$mostag_start_pos = strpos($item_title,'{moscode}');
$mostag_finish_pos = strpos($item_title,'{/moscode}');
if ($mostag_finish_pos > $mostag_start_pos){
$new_text = substr($item_title,0,$mostag_start_pos);
$new_text .= substr($item_title,$mostag_finish_pos+10);
}
else{
$new_text = str_replace('{moscode}','',$item_title);
$new_text = str_replace('{/moscode}','',$item_title);
}
$item_title = $new_text;
}
while (eregi('{moscode}',$item_description)){
$mostag_start_pos = strpos($item_description,'{moscode}');
$mostag_finish_pos = strpos($item_description,'{/moscode}');
if ($mostag_finish_pos > $mostag_start_pos){
$new_text = substr($item_description,0,$mostag_start_pos);
$new_text .= substr($item_description,$mostag_finish_pos+10);
}
else{
$new_text = str_replace('{moscode}','',$item_description);
$new_text = str_replace('{/moscode}','',$item_description);
}
$item_description = $new_text;
}
// description length
if ($feed_chars>0 && (strlen($item_description) > $feed_chars)){
//$item_description = substr(strip_tags($item_description,'<img><a>'),0,$feed_chars)." ...";
$item_description = getDescription($item_description,$feed_chars);
}
// item information
// SEF modification -> so that our link article is ok is sef is enabled
$jnow = & JFactory::getDate();
$date_time = $jnow->toMySQL();
$query =" select c.* , ".
" CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\":\", c.id, c.alias) ELSE c.id END as slug , ".
" CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\":\", cc.id, cc.alias) ELSE cc.id END as catslug ".
" from #__content as c ".
" LEFT JOIN #__categories as cc on cc.id = c.catid ".
" where c.id = ".$article_value->id." and c.access <= 0 and (c.publish_down > '".$date_time."' || c.publish_down='0000-00-00 00:00:00')";
$database->setQuery( $query );
$current_item = $database->loadObjectList();
$art_url = substr(JURI::root(false,''),0,-1);
$art_url .= JRoute::_(ContentHelperRoute::getArticleRoute($current_item[0]->slug, $current_item[0]->catslug, $current_item[0]->sectionid));
$item->title = $item_title;
$item->link = $art_url;//"http://www.google.ro".$article_value->id;//JRoute::_($article_link);
$item->description =$item_description;
/*$item->title = "ITEMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM TITLE * ".$item_title." *"; //$item_title
$item->link = "http://www.google.ro".$article_value->id; //JRoute::_($article_link)
$item->description = "BEFORE -- ".$item_description." -- AFTER";*/
$item->source = $article_value->urls;
$year = substr( $article_value->created, 0, 4);
$month= substr( $article_value->created, 5, 2);
$day = substr( $article_value->created, 8, 2);
$hour = substr( $article_value->created, 11, 2);
$min = substr( $article_value->created, 14, 2);
$sec = substr( $article_value->created, 17, 2);
$atom30_date = $year."-".$month."-".$day."T".$hour.":".$min.":".$sec."Z";
$article_timestamp = mktime( $hour, $min, $sec, $month, $day, $year);
if($feed_type!="ATOM0.3")
$item->date = date( 'r', $article_timestamp );
else
$item->date = $atom30_date;
$item->category = $cat_details->title;
if ($get_act=='xml'){
// loads item info into rss array
$rss->addItem( $item );
}
if ($get_act=='html'){
// print_r($item);
echo '<b><a href="'.$item->link.'">'.$item->title.'</a></b><br />';
echo $item->description;
$b=$b.$item->title.$item->description;
// print_r($sec_result);
}
}//se inchide foreach
if ($get_act=='xml'){
// save feed file
if (is_file($feed_file))
chmod($feed_file,0777);
if($feed_type!="ATOM0.3")
$rss->saveFeed( $feed_type, $feed_file , true );
else{
//$date = gmdate("Y-m-d\TH:i:sO",$this->unix);
//$date = substr($date,0,22) . ':' . substr($date,-2);
//if (TIME_ZONE!="") $date = str_replace("+00:00",TIME_ZONE,$date);
$feed = "<?xml version=\"1.0\" encoding=\"".$rss->encoding."\"?>\n";
//$feed.= $this->_createGeneratorComment();
//$feed.= $this->_createStylesheetReferences();
$feed.= "<feed xmlns=\"http://www.w3.org/2005/Atom\"";
//if ($this->language!="") {
// $feed.= " xml:lang=\"".$this->language."\"";
//}
$feed.= ">\n";
$feed.= " <title>".htmlspecialchars($rss->title)."</title>\n";
$feed.= " <subtitle>".htmlspecialchars($rss->description)."</subtitle>\n";
$feed.= " <link rel=\"alternate\" type=\"application/xhtml+xml\" href=\"".htmlspecialchars($rss->link)."\"/>\n";
$feed.= " <link rel=\"self\" href=\"".htmlspecialchars($feed_file_link)."\"/>\n";
$feed.= " <id>".htmlspecialchars($rss->link)."</id>\n";
//$now = new FeedDate();
$feed.= " <updated>".htmlspecialchars(date("Y-m-d")."T".date("H:i:s")."Z")."</updated>\n";
if ($rss->editor!="") {
$feed.= " <author>\n";
$feed.= " <name>".$rss->editor."</name>\n";
if ($this->editorEmail!="") {
$feed.= " <email>".$rss->editorEmail."</email>\n";
}
$feed.= " </author>\n";
}
else{
$feed.= " <author>\n";
$feed.= " <name>.</name>\n";
$feed.= " </author>\n";
}
//$feed.= " <generator>".FEEDCREATOR_VERSION."</generator>\n";
//$feed.= $this->_createAdditionalElements($this->additionalElements, " ");
for ($i=0;$i<count($rss->items);$i++) {
$feed.= " <entry>\n";
$feed.= " <title>".htmlspecialchars(strip_tags($rss->items[$i]->title))."</title>\n";
$feed.= " <link rel=\"alternate\" type=\"application/xhtml+xml\" href=\"".htmlspecialchars($rss->items[$i]->link)."\"/>\n";
if ($rss->items[$i]->date=="")
$rss->items[$i]->date = date("Y-m-d")."T".date("H:i:s")."Z";
//$itemDate = new FeedDate($this->items[$i]->date);
//$feed.= " <created>".htmlspecialchars($itemDate->iso8601())."</created>\n";
//$feed.= " <issued>".htmlspecialchars($itemDate->iso8601())."</issued>\n";
$feed.= " <updated>".htmlspecialchars($rss->items[$i]->date)."</updated>\n";
$feed.= " <id>".htmlspecialchars($rss->items[$i]->link)."</id>\n";
//$feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, " ");
if ($rss->items[$i]->author!="") {
$feed.= " <author>\n";
$feed.= " <name>".htmlspecialchars($rss->items[$i]->author)."</name>\n";
$feed.= " </author>\n";
}
if ($rss->items[$i]->description!="") {
$feed.= " <summary type=\"html\">".htmlspecialchars($rss->items[$i]->description)."</summary>\n";
}
$feed.= " </entry>\n";
}
$feed.= "</feed>\n";
$feedFile = fopen($feed_file, "w+");
if ($feedFile) {
fputs($feedFile,$feed);
fclose($feedFile);
Header("Content-Type: application/atom+xml; charset=utf-8");
Header("Content-Disposition: inline; filename=".basename($feed_file));
readfile($feed_file, "r");
die();
}
else {
echo "<br /><b>".ERR_CREATING_FEED_FILE."</b><br />";
}
}
/*
$feedFile = fopen($feed_file, "w+");
$contents = fread($feedFile, filesize($feed_file));
echo $contents.'+++';
$contents = str_replace("http://purl.org/atom/ns#","http://www.w3.org/2005/Atom",$contents);
fwrite($feedFile,$contents);
fclose($feedFile);
*/
}
else{
// print_r($item);
//++++++++++++++++ print_r($sec_result);
}
// print_r($b);
}else{
//+++++++++++++display_frontend($feed_type);
}
if($get_act=="html"){
die();
//$a=fopen(JURI::base()."components/com_ijoomla_rss/"."aaa.php", 'wb');
//fwrite($a,$b);
//fclose($a);
//echo "<b>";
//echo "++".$b."**";
//echo "</b>";
// echo "*";
}
}
function show_full_feed( $feed_type ){
$database = &JFactory::getDBO();
$database->setQuery("SELECT * FROM #__ijoomla_rss_config WHERE 1 LIMIT 1");
if (!$database->query()) {
die( $database->getErrorMsg() );
}
$result_qry = $database->loadAssocList();
$grab_content = $result_qry[0]['grab_content'];
$feed_chars = $result_qry[0]['feed_chars'];
$title_chars = $result_qry[0]['title_chars'];
$feed_file_name = "full_content.xml";
$feed_file = JPATH_SITE.'/components/com_ijoomla_rss/xmlfiles/'.$feed_file_name;
$feed_file_link = JURI::base().'/index.php?option=com_ijoomla_rss&act=xml&full=yes&feedtype=ATOM0.3';
// load feed creator class
$rss = new UniversalFeedCreator();
// load image creator class
$rss->title = _FILL_FEED_TITLE;
$rss->description = _FULL_CONTENT_NAME;
if($feed_type!="ATOM0.3")
$rss->link = "<![CDATA[".JRoute::_(JURI::base())."]]>";
else
$rss->link = JRoute::_(JURI::base());
$rss->syndicationURL = JRoute::_(JURI::base());
$rss->cssStyleSheet = NULL;
$rss->encoding = "UTF-8";
//ISO-8859-1
// load individual item creator class
//start get the number of feeds from config
$database->setQuery("SELECT * FROM #__ijoomla_rss_config");
if (!$database->query()){
die( $database->getErrorMsg() );
}
$config = $database->loadObjectList();
$rss_config = $config[0];
//end get the number of feeds from config
$jnow = & JFactory::getDate();
$date_time = $jnow->toMySQL();
$database->setQuery("SELECT * FROM #__content WHERE state=1 and (publish_down > '".$date_time."' || publish_down='0000-00-00 00:00:00') ORDER BY created DESC LIMIT ".$rss_config->feeds);
if (!$database->query()){
die( $database->getErrorMsg() );
}
$articles = $database->loadObjectList();
$category_array = array();
foreach ($articles as $art_count => $article_value){
$art_item_id = getItemidRss( $article_value->id );
$article_link = JURI::base()."index.php?option=com_content&task=view&id=".$article_value->id;
if ($art_item_id>0){
$article_link .= "&Itemid=".$art_item_id;
}
$item = new FeedItem();
// description content
switch ($grab_content){
case 'intro':
$description_source = $article_value->introtext;
break;
case 'full':
$description_source = $article_value->fulltext;
break;
case 'intro_full_empty':
if (trim($article_value->fulltext)==""){
$description_source = $article_value->introtext;
}
else{
$description_source = $article_value->fulltext;
}
break;
case 'full_intro_empty':
default:
if (trim($article_value->introtext)==""){
$description_source = $article_value->fulltext;
}
else{
$description_source = $article_value->introtext;
}
break;
}
// title content
if ($title_chars>0){
if (strlen($article_value->title)<= $title_chars){
$title_source = $article_value->title;
}
else{
$title_source = substr($article_value->title,0,$title_chars);
}
}
else{
$title_source = $article_value->title;
}
// mambot tags removed
$item_title = str_replace('{mosimage}','',$title_source);
$item_description = str_replace('{mosimage}','',$description_source);
//$item_description = preg_replace('/{(sidebar) (.*)\}/','',$item_description);
$to_replace='/\{(.*?)\}/i';
$item_description = preg_replace($to_replace,'',$item_description);
$item_description = str_replace('<img ','<img align="left" hspace="12" ',$item_description);
while (eregi('{moscode}',$item_title)){
$mostag_start_pos = strpos($item_title,'{moscode}');
$mostag_finish_pos = strpos($item_title,'{/moscode}');
if ($mostag_finish_pos > $mostag_start_pos){
$new_text = substr($item_title,0,$mostag_start_pos);
$new_text .= substr($item_title,$mostag_finish_pos+10);
}
else{
$new_text = str_replace('{moscode}','',$item_title);
$new_text = str_replace('{/moscode}','',$item_title);
}
$item_title = $new_text;
}
while (eregi('{moscode}',$item_description)){
$mostag_start_pos = strpos($item_description,'{moscode}');
$mostag_finish_pos = strpos($item_description,'{/moscode}');
if ($mostag_finish_pos > $mostag_start_pos){
$new_text = substr($item_description,0,$mostag_start_pos);
$new_text .= substr($item_description,$mostag_finish_pos+10);
}
else{
$new_text = str_replace('{moscode}','',$item_description);
$new_text = str_replace('{/moscode}','',$item_description);
}
$item_description = $new_text;
}
// description length
if ($feed_chars>0 && (strlen($item_description) > $feed_chars)){
//$item_description = substr(strip_tags($item_description,'<img><a>'),0,$feed_chars)." ...";
$item_description = getDescription($item_description,$feed_chars);
}
// item information
// SEF modification -> so that our link article is ok is sef is enabled
$jnow = & JFactory::getDate();
$date_time = $jnow->toMySQL();
$query =" select c.* , ".
" CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\":\", c.id, c.alias) ELSE c.id END as slug , ".
" CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\":\", cc.id, cc.alias) ELSE cc.id END as catslug ".
" from #__content as c ".
" LEFT JOIN #__categories as cc on cc.id = c.catid ".
" where c.id = ".$article_value->id." and c.access <= 0 and (c.publish_down > '".$date_time."' || c.publish_down='0000-00-00 00:00:00')";
$database->setQuery( $query );
$current_item = $database->loadObjectList();
$art_url = substr(JURI::root(false,''),0,-1);
$art_url .= JRoute::_(ContentHelperRoute::getArticleRoute($current_item[0]->slug, $current_item[0]->catslug, $current_item[0]->sectionid));
$item->title = $item_title;
$item->link = $art_url;//"http://www.google.ro".$article_value->id;//JRoute::_($article_link);
$item->description = $item_description;
$item->source = $article_value->urls;
$year = substr( $article_value->created, 0, 4);
$month= substr( $article_value->created, 5, 2);
$day = substr( $article_value->created, 8, 2);
$hour = substr( $article_value->created, 11, 2);
$min = substr( $article_value->created, 14, 2);
$sec = substr( $article_value->created, 17, 2);
$atom30_date = $year."-".$month."-".$day."T".$hour.":".$min.":".$sec."Z";
$article_timestamp = mktime( $hour, $min, $sec, $month, $day, $year);
if($feed_type!="ATOM0.3")
$item->date = date( 'r', $article_timestamp );
else
$item->date = $atom30_date;
if (!isset($category_array[$article_value->catid])){
$database->setQuery("SELECT name FROM #__categories WHERE id=".intval($article_value->catid) );
if (!$database->query()){
$category_array[$article_value->catid] = "News";
}
else{
$category_array[$article_value->catid] = $database->loadResult();
}
}
$article_category = $category_array[$article_value->catid];
$item->category = $article_category;
// loads item info into rss array
$rss->addItem( $item );
}
// save feed file
if (is_file($feed_file))
chmod($feed_file,0777);
if($feed_type!="ATOM0.3")
$rss->saveFeed( $feed_type, $feed_file , true );
else{
//$date = gmdate("Y-m-d\TH:i:sO",$this->unix);
//$date = substr($date,0,22) . ':' . substr($date,-2);
//if (TIME_ZONE!="") $date = str_replace("+00:00",TIME_ZONE,$date);
$feed = "<?xml version=\"1.0\" encoding=\"".$rss->encoding."\"?>\n";
//$feed.= $this->_createGeneratorComment();
//$feed.= $this->_createStylesheetReferences();
$feed.= "<feed xmlns=\"http://www.w3.org/2005/Atom\"";
//if ($this->language!="") {
// $feed.= " xml:lang=\"".$this->language."\"";
//}
$feed.= ">\n";
$feed.= " <title>".htmlspecialchars(strip_tags($rss->title))."</title>\n";
$feed.= " <subtitle>".htmlspecialchars($rss->description)."</subtitle>\n";
$feed.= " <link rel=\"alternate\" type=\"application/xhtml+xml\" href=\"".htmlspecialchars($rss->link)."\"/>\n";
$feed.= " <link rel=\"self\" href=\"".htmlspecialchars($feed_file_link)."\"/>\n";
$feed.= " <id>".htmlspecialchars($rss->link)."</id>\n";
//$now = new FeedDate();
$feed.= " <updated>".htmlspecialchars(date("Y-m-d")."T".date("H:i:s")."Z")."</updated>\n";
if ($rss->editor!="") {
$feed.= " <author>\n";
$feed.= " <name>".$rss->editor."</name>\n";
if ($this->editorEmail!="") {
$feed.= " <email>".$rss->editorEmail."</email>\n";
}
$feed.= " </author>\n";
}
else{
$feed.= " <author>\n";
$feed.= " <name>.</name>\n";
$feed.= " </author>\n";
}
//$feed.= " <generator>".FEEDCREATOR_VERSION."</generator>\n";
//$feed.= $this->_createAdditionalElements($this->additionalElements, " ");
for ($i=0;$i<count($rss->items);$i++) {
$feed.= " <entry>\n";
$feed.= " <title>".htmlspecialchars(strip_tags($rss->items[$i]->title))."</title>\n";
$feed.= " <link rel=\"alternate\" type=\"application/xhtml+xml\" href=\"".htmlspecialchars($rss->items[$i]->link)."\"/>\n";
if ($rss->items[$i]->date=="")
$rss->items[$i]->date = date("Y-m-d")."T".date("H:i:s")."Z";
//$itemDate = new FeedDate($this->items[$i]->date);
//$feed.= " <created>".htmlspecialchars($itemDate->iso8601())."</created>\n";
//$feed.= " <issued>".htmlspecialchars($itemDate->iso8601())."</issued>\n";
$feed.= " <updated>".htmlspecialchars($rss->items[$i]->date)."</updated>\n";
$feed.= " <id>".htmlspecialchars($rss->items[$i]->link)."</id>\n";
//$feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, " ");
if ($rss->items[$i]->author!="") {
$feed.= " <author>\n";
$feed.= " <name>".htmlspecialchars($rss->items[$i]->author)."</name>\n";
$feed.= " </author>\n";
}
if ($rss->items[$i]->description!="") {
$feed.= " <summary type=\"html\">".htmlspecialchars($rss->items[$i]->description)."</summary>\n";
}
$feed.= " </entry>\n";
}
$feed.= "</feed>\n";
$feedFile = fopen($feed_file, "w+");
if ($feedFile) {
fputs($feedFile,$feed);
fclose($feedFile);
Header("Content-Type: application/atom+xml; charset=utf-8");
Header("Content-Disposition: inline; filename=".basename($feed_file));
readfile($feed_file, "r");
die();
}
else{
echo "<br /><b>".ERR_CREATING_FEED_FILE."</b><br />";
}
}
/*
$feedFile = fopen($feed_file, "w+");
$contents = fread($feedFile, filesize($feed_file));
echo $contents.'+++';
$contents = str_replace("http://purl.org/atom/ns#","http://www.w3.org/2005/Atom",$contents);
fwrite($feedFile,$contents);
fclose($feedFile);
*/
}
function getItemidRss( $id, $typed="" ) {
$database = &JFactory::getDBO();
$Itemid = 0;
$_Itemid = '';
$id = intval($id);
if ( "sections" == $typed ){
// Search in sections
$query = "SELECT m.id "
. "\n FROM #__sections AS s "
. "\n LEFT JOIN #__menu AS m ON m.componentid = s.id "
. "\n WHERE m.type = 'content_section'"
. "\n AND m.menutype = 'sections'"
. "\n AND m.componentid = '$id'"
;
$database->setQuery( $query );
$_Itemid = $database->loadResult();
}
if ( "categories" == $typed ) {
// Search in categories
$query = "SELECT m.id "
. "\n FROM #__categories AS cc "
. "\n LEFT JOIN #__sections AS s ON cc.section = s.id "
. "\n LEFT JOIN #__menu AS m ON m.componentid = s.id "
. "\n WHERE m.type = 'content_section'"
. "\n AND m.menutype = 'sections'"
//. "\n AND m.published = 1"
. "\n AND cc.id = '$id'"
;
$database->setQuery( $query );
$_Itemid = $database->loadResult();
}
if ( "" == $typed ) {
// Search in sections
$jnow = & JFactory::getDate();
$date_time = $jnow->toMySQL();
$query = "SELECT m.id "
. "\n FROM #__content AS i"
. "\n LEFT JOIN #__sections AS s ON i.sectionid = s.id"
. "\n LEFT JOIN #__menu AS m ON m.componentid = s.id "
. "\n WHERE m.type = 'content_section'"
. "\n AND m.menutype = 'sections'"
. "\n AND i.id = $id"
. "\n AND (i.publish_down > '".$date_time."' || i.publish_down='0000-00-00 00:00:00')"
;
$database->setQuery( $query );
$_Itemid = $database->loadResult();
}
if ( $_Itemid != '' ) {
return $_Itemid;
}
else {
return $Itemid;
}
}
function getDescription($html,$limit){
//$html=trim(strip_tags($html, "<img><a>"));
$len = 0 ;
$pattern = '/(<(?:[^<>]+(?:"[^"]*"|\'[^\']*\')?)+>)/';
$html_array = preg_split ($pattern,trim ($html),-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
$return="";
foreach($html_array as $key=>$value){
$vlen = $len;
if((strstr($value,'<'))&&(strstr($value,'>')))
$len = $len + 0;
else
$len = $len + strlen($value);
if($limit>=$len)
$return .= $value;
else{
$return .= substr($value, 0, $limit-$vlen+1);
return $return."...";
}
}
//return strip_tags($return)."...";
return $return."...";
}
?>