Fork me on GitHub

Rapport de message :*
 

Re: Ajouter un champ au module News

Titre du sujet : Re: Ajouter un champ au module News
par irishcofee sur 30/11/2009 12:44:52

ARTICLE.PHP
modif a la ligne 187

<?php
// $Id: article.php,v 1.15 2004/09/02 17:04:07 hthouzard Exp $
//  ------------------------------------------------------------------------ //
//                XOOPS - PHP Content Management System                      //
//                    Copyright (c) 2000 XOOPS.org                           //
//                       <http://www.xoops.org/>   ... nbsp;   //
//  ------------------------------------------------------------------------ //
//  This program is free software; you can redistribute it and/or modify     //
//  it under the terms of the GNU General Public License as published by     //
//  the Free Software Foundation; either version 2 of the License, or        //
//  (at your option) any later version.                                      //
//                                                                           //
//  You may not change or alter any portion of this comment or credits       //
//  of supporting developers from this source code or any supporting         //
//  source code which is considered copyrighted (c) material of the          //
//  original comment or credit authors.                                      //
//                                                                           //
//  This program is distributed in the hope that it will be useful,          //
//  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
//  GNU General Public License for more details.                             //
//                                                                           //
//  You should have received a copy of the GNU General Public License        //
//  along with this program; if not, write to the Free Software              //
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
//  ------------------------------------------------------------------------ //
/**
 * Article's page
 *
 * This page is used to see an article (or story) and is mainly called from
 * the module's index page.
 *
 * If no story Id has been placed on the URL or if the story is not yet published
 * then the page will redirect user to the module's index.
 * If the user does not have the permissions to see the article, he is also redirected
 * to the module's index page but with a error message saying :
 *     "Sorry, you don't have the permission to access this area"
 *
 * Each time a page is seen, and only if we are on the first page, its counter of hits is
 * updated
 *
 * Each file(s) attached to the article is visible at the bottom of the article and can
 * be downloaded
 *
 * Notes :
 * - To create more than one page in your story, use the tag [pagebreak]
 * - If you are a module's admin, you have the possibility to see two links at the bottom
 *   of the article, "Edit & Delete"
 *
 * @package Course
 * @author Xoops Modules Dev Team
 * @copyright (c) The Xoops Project - www.xoops.org
 *
 * Parameters received by this page :
 * @param int storyid    Id of the story we want to see
 * @param int page        page's number (in the case where there are more than one page)
 *
 * @page_title            Article's title - Topic's title - Module's name
 *
 * @template_name        course_article.html wich will call course_item.html
 *
 * Template's variables :
 * @template_var    string    pagenav    some links to navigate thru pages
 * @template_var    array     story    Contains all the information about the story
 *                                    Structure :
 * @template_var                    int        id            Story's ID
 * @template_var                    string    posttime    Story's date of publication
 * @template_var                    string    title        A link to go and see all the articles in the same topic and the story's title
 * @template_var                    string    course_title    Just the course title
 * @template_var                    string    topic_title    Just the topic's title
 * @template_var                    string    text        Defined as "The scoop"
 * @template_var                    string    poster        A link to see the author's profil and his name or "Anonymous"
 * @template_var                    int        posterid    Author's uid (or 0 if it's an anonymous or a user wich does not exist any more)
 * @template_var                    string    morelink    Never used ???? May be it could be deleted
 * @template_var                    string    adminlink    A link to Edit or Delete the story or a blank string if you are not the module's admin
 * @template_var                    string    topicid        Course topic's Id
 * @template_var                    string    topic_color    Topic's color
 * @template_var                    string    imglink        A link to go and see the topic of the story with the topic's picture (if it exists)
 * @template_var                    string    align        Topic's image alignement
 * @template_var                    int        hits        Story's counter of visits
 * @template_var                    string    mail_link    A link (with a mailto) to email the story's URL to someone
 * @template_var    string    lang_printerpage    Used in the link and picture to have a "printable version" (fixed text)
 * @template_var    string     lang_on        Fixed text "On" ("published on")
 * @template_var    string    lang_postedby    Fixed text "Posted by"
 * @template_var    string    lang_reads    Fixed text "Reads"
 * @template_var    string    course_by_the_same_author_link    According the the module's option named "coursebythisauthor", it contains a link to see all the article's course_stories
 * @template_var    int        summary_count    Number of course_stories really visibles in the summary table
 * @template_var    boolean    showsummary    According to the module's option named "showsummarytable", this contains "True" of "False"
 * @template_var    array    summary    Contains the required information to create a summary table at the bottom of the article. Note, we use the module's option "storyhome" to determine the maximum number of course_stories visibles in this summary table
 *                                     Structure :
 * @template_var                    int        story_id        Story's ID
 * @template_var                    string    story_title        Story's title
 * @template_var                    int        story_hits        Counter of hits
 * @template_var                    string    story_published    Story's date of creation
 * @template_var    string    lang_attached_files    Fixed text "Attached Files:"
 * @template_var    int        attached_files_count    Number of files attached to the story
 * @template_var    array    attached_files    Contains the list of all the files attached to the story
 *                                    Structure :
 * @template_var                    int        file_id                File's ID
 * @template_var                    string    visitlink            Link to download the file
 * @template_var                    string    file_realname        Original filename (not the real one use to store the file but the one it have when it was on the user hard disk)
 * @template_var                    string    file_attacheddate    Date to wich the file was attached to the story (in general that's equal to the article's creation date)
 * @template_var                    string    file_mimetype        File's mime type
 * @template_var                    string    file_downloadname    Real name of the file on the webserver's disk (changed by the module)
 * @template_var    boolean    nav_links    According to the module's option named "showprevnextlink" it contains "True" or "False" to know if we have to show two links to go to the previous and next article
 * @template_var    int        previous_story_id    Id of the previous story (according to the published date and to the perms)
 * @template_var    int        next_story_id        Id of the next story (according to the published date and to the perms)
 * @template_var    string    previous_story_title    Title of the previous story
 * @template_var    string    next_story_title        Title of the next story
 * @template_var    string    lang_previous_story        Fixed text "Previous article"
 * @template_var    string    lang_next_story            Fixed text "Next article"
 * @template_var    string    lang_other_story        Fixed text "Other articles"
 * @template_var    boolean    rates    To know if rating is enable or not
 * @template_var    string    lang_ratingc    Fixed text "Rating: "
 * @template_var    string    lang_ratethiscourse    Fixed text "Rate this Course"
 * @template_var    float    rating    Article's rating
 * @template_var    string    votes    "1 vote" or "X votes"
 * @template_var    string    topic_path    A path from the root to the current topic (of the current course)
 */
include_once '../../mainfile.php';
include_once 
XOOPS_ROOT_PATH.'/modules/course/class/class.coursestory.php';
include_once 
XOOPS_ROOT_PATH.'/modules/course/class/class.sfiles.php';
include_once 
XOOPS_ROOT_PATH.'/class/xoopstree.php';
include_once 
XOOPS_ROOT_PATH.'/modules/course/include/functions.php';
include_once 
XOOPS_ROOT_PATH.'/modules/course/class/class.coursetopic.php';
include_once 
XOOPS_ROOT_PATH.'/modules/course/class/keyhighlighter.class.php';
include_once 
XOOPS_ROOT_PATH.'/modules/course/config.php';

$storyid = (isset($_GET['storyid'])) ? intval($_GET['storyid']) : 0;

if (empty(
$storyid)) {
    
redirect_header(XOOPS_URL.'/modules/course/index.php',2,_NW_NOSTORY);
    exit();
}

$myts =& MyTextSanitizer::getInstance();

// Not yet published
$article = new CourseStory($storyid);
if ( 
$article->published() == || $article->published() > time() ) {
    
redirect_header(XOOPS_URL.'/modules/course/index.php'2_NW_NOTYETSTORY);
    exit();
}
// Expired
if ( $article->expired() != && $article->expired() < time() ) {
    
redirect_header(XOOPS_URL.'/modules/course/index.php'2_NW_NOSTORY);
    exit();
}

$gperm_handler =& xoops_gethandler('groupperm');
if (
is_object($xoopsUser)) {
    
$groups $xoopsUser->getGroups();
} else {
    
$groups XOOPS_GROUP_ANONYMOUS;
}
if (!
$gperm_handler->checkRight('course_view'$article->topicid(), $groups$xoopsModule->getVar('mid'))) {
    
redirect_header(XOOPS_URL.'/modules/course/index.php'3_NOPERM);
    exit();
}

$storypage = isset($_GET['page']) ? intval($_GET['page']) : 0;
$dateformat course_coursegetmoduleoption('dateformat');
$hcontent='';

/**
 * update counter only when viewing top page and when you are not the author or an admin
 */
if (empty($_GET['com_id']) && $storypage == 0) {
    if(
is_object($xoopsUser)) {
        if( (
$xoopsUser->getVar('uid')==$article->uid()) || course_courseis_admin_group()) {
            
// nothing ! ;-)
        
} else {
            
$article->updateCounter();
        }
    } else {
        
$article->updateCounter();
    }
}
$xoopsOption['template_main'] = 'course_article.html';
include_once 
XOOPS_ROOT_PATH.'/header.php';

$story['id'] = $storyid;
$story['posttime'] = formatTimestamp($article->published(),$dateformat);
$story['booked'] = formatTimestamp($article->booked(),$dateformat);
$story['bookedend'] = formatTimestamp($article->booked(),$dateformat);
//ajout irishcofee
$story['price'] = $article->price();
//fin ajout irishcofee
$story['course_title'] = $article->title();
$story['title'] = $article->textlink().'&nbsp;:&nbsp;'.$article->title();
$story['topic_title'] = $article->textlink();


$story['text'] = $article->hometext();
$bodytext $article->bodytext();

if (
xoops_trim($bodytext) != '') {
    
$articletext = array();
    if(
course_coursegetmoduleoption('enhanced_pagenav')) {
        
$articletext preg_split('/([pagebreak:|[pagebreak)(.*)(])/iU'$bodytext);
        
$arr_titles = array();
        
$auto_summary $article->auto_summary($bodytext$arr_titles);
        
$bodytext str_replace('[summary]'$auto_summary$bodytext);
        
$articletext[$storypage] = str_replace('[summary]'$auto_summary$articletext[$storypage]);
        
$story['text'] = str_replace('[summary]'$auto_summary$story['text']);
    } else {
        
$articletext explode('[pagebreak]'$bodytext);
    }

    
$story_pages count($articletext);

    if (
$story_pages 1) {
        include_once 
XOOPS_ROOT_PATH.'/modules/course/include/pagenav.php';
        
$pagenav = new XoopsPageNav($story_pages1$storypage'page''storyid='.$storyid);
        if(
course_isbot()) {         // A bot is reading the articles, we are going to show him all the links to the pages
            
$xoopsTpl->assign('pagenav'$pagenav->renderNav($story_pages));
        } else {
            if(
course_coursegetmoduleoption('enhanced_pagenav')) {
                
$xoopsTpl->assign('pagenav'$pagenav->renderEnhancedSelect(true$arr_titles));
            } else {
                
$xoopsTpl->assign('pagenav'$pagenav->renderNav());
            }
        }

        if (
$storypage == 0) {
            
$story['text'] = $story['text'].'<br />'.course_coursegetmoduleoption('advertisement').'<br />'.$articletext[$storypage];
        } else {
            
$story['text'] = $articletext[$storypage];
        }
    } else {
        
$story['text'] = $story['text'].'<br />'.course_coursegetmoduleoption('advertisement').'<br />'.$bodytext;
    }
}
// Publicité
$xoopsTpl->assign('advertisement'course_coursegetmoduleoption('advertisement'));

// ****************************************************************************************************************
function my_highlighter ($matches) {
    
$color course_coursegetmoduleoption('highlightcolor');
    if(
substr($color,0,1)!='#') {
        
$color='#'.$color;
    }
    return 
'<span style="font-weight: bolder; background-color: '.$color.';">' $matches[0] . '</span>';
}

$highlight false;
$highlight course_coursegetmoduleoption('keywordshighlight');

if(
$highlight && isset($_GET['keywords']))
{
    
$keywords=$myts->htmlSpecialChars(trim(urldecode($_GET['keywords'])));
    
$h= new keyhighlighter ($keywordstrue 'my_highlighter');
    
$story['text'] = $h->highlight($story['text']);
}
// ****************************************************************************************************************

$story['poster'] = $article->uname();
if ( 
$story['poster'] ) {
    
$story['posterid'] = $article->uid();
    
$story['poster'] = '<a href="'.XOOPS_URL.'/userinfo.php?uid='.$story['posterid'].'">'.$story['poster'].'</a>';
    
$tmp_user = new XoopsUser($article->uid());
    
$story['poster_avatar'] = XOOPS_UPLOAD_URL.'/'.$tmp_user->getVar('user_avatar');
    
$story['poster_signature'] = $tmp_user->getVar('user_sig');
    
$story['poster_email'] = $tmp_user->getVar('email');
    
$story['poster_url'] = $tmp_user->getVar('url');
    
$story['poster_from'] = $tmp_user->getVar('user_from');
    unset(
$tmp_user);
} else {
    
$story['poster'] = '';
    
$story['posterid'] = 0;
    
$story['poster_avatar'] = '';
    
$story['poster_signature'] = '';
    
$story['poster_email'] = '';
    
$story['poster_url'] = '';
    
$story['poster_from'] = '';
    if(
course_coursegetmoduleoption('displayname')!=3) {
        
$story['poster'] = $xoopsConfig['anonymous'];
    }
}
$story['morelink'] = '';
$story['adminlink'] = '';
unset(
$isadmin);

if(
is_object($xoopsUser)) {
    if( 
$xoopsUser->isAdmin($xoopsModule->getVar('mid')) || (course_coursegetmoduleoption('authoredit') && $article->uid() == $xoopsUser->getVar('uid')) ) {
        
$isadmin true;
        
$story['adminlink'] = $article->adminlink();
    }
}
$story['topicid'] = $article->topicid();
$story['topic_color'] = '#'.$myts->displayTarea($article->topic_color);

$story['imglink'] = '';
$story['align'] = '';
if ( 
$article->topicdisplay() ) {
    
$story['imglink'] = $article->imglink();
    
$story['align'] = $article->topicalign();
}
$story['hits'] = $article->counter();
$story['mail_link'] = 'mailto:?subject='.sprintf(_NW_INTARTICLE,$xoopsConfig['sitename']).'&amp;body='.sprintf(_NW_INTARTFOUND$xoopsConfig['sitename']).':  '.XOOPS_URL.'/modules/course/article.php?storyid='.$article->storyid();
$xoopsTpl->assign('lang_printerpage'_NW_PRINTERFRIENDLY);
$xoopsTpl->assign('lang_sendstory'_NW_SENDSTORY);
$xoopsTpl->assign('lang_pdfstory'_NW_MAKEPDF);
$xoopsTpl->assign('lang_on'_ON);
$xoopsTpl->assign('lang_postedby'_POSTEDBY);
$xoopsTpl->assign('lang_reads'_READS);
$xoopsTpl->assign('mail_link''mailto:?subject='.sprintf(_NW_INTARTICLE,$xoopsConfig['sitename']).'&amp;body='.sprintf(_NW_INTARTFOUND$xoopsConfig['sitename']).':  '.XOOPS_URL.'/modules/course/article.php?storyid='.$article->storyid());

$xoopsTpl->assign('lang_attached_files',_NW_ATTACHEDFILES);
$sfiles = new sFiles();
$filesarr $coursefiles = array();
$filesarr=$sfiles->getAllbyStory($storyid);
$filescount=count($filesarr);
$xoopsTpl->assign('attached_files_count',$filescount);
if(
$filescount>0) {
    foreach (
$filesarr as $onefile)    {
        
$coursefiles[]=Array('file_id'=>$onefile->getFileid(), 'visitlink' => XOOPS_URL.'/modules/course/visit.php?fileid='.$onefile->getFileid(),'file_realname'=>$onefile->getFileRealName(), 'file_attacheddate'=>formatTimestamp($onefile->getDate(),$dateformat), 'file_mimetype'=>$onefile->getMimetype(), 'file_downloadname'=>XOOPS_UPLOAD_URL.'/'.$onefile->getDownloadname());
    }
    
$xoopsTpl->assign('attached_files',$coursefiles);
}

/**
 * Create page's title
*/
$complement '';
if(
course_coursegetmoduleoption('enhanced_pagenav') && (is_array($arr_titles) && isset($arr_titles,$storypage) && $storypage>0)) {
    
$complement ' - '.$arr_titles[$storypage];
}
$xoopsTpl->assign('xoops_pagetitle'$article->title() . $complement' - ' $article->topic_title() . ' - ' $myts->htmlSpecialChars($xoopsModule->name()));

if(
course_coursegetmoduleoption('coursebythisauthor')) {
    
$xoopsTpl->assign('course_by_the_same_author_link',sprintf("<a href='%s?uid=%d'>%s</a>",XOOPS_URL.'/modules/course/coursebythisauthor.php',$article->uid(),_NW_courseSAMEAUTHORLINK));
}

/**
 * Create a clickable path from the root to the current topic (if we are viewing a topic)
 * Actually this is not used in the default's templates but you can use it as you want
 * Uncomment the code to be able to use it
 */
if($cfg['create_clickable_path']) {
    
$mytree = new XoopsTree($xoopsDB->prefix('course_topics'),'topic_id','topic_pid');
    
$topicpath $mytree->getNicePathFromId($article->topicid(), 'topic_title''index.php?op=1');
    
$xoopsTpl->assign('topic_path'$topicpath);
    unset(
$mytree);
}


/**
 * Summary table
 *
 * When you are viewing an article, you can see a summary table containing
 * the first n links to the last published course.
 * This summary table is visible according to a module's option (showsummarytable)
 * The number of items is equal to the module's option "storyhome" ("Select the number
 * of course items to display on top page")
 * We also use the module's option "restrictindex" ("Restrict Topics on Index Page"), like
 * this you (the webmaster) select if users can see restricted course_stories or not.
 */
if (course_coursegetmoduleoption('showsummarytable')) {
    
$xoopsTpl->assign('showsummary'true);
    
$xoopsTpl->assign('lang_other_story',_NW_OTHER_ARTICLES);
    
$count=0;
    
$tmparticle = new CourseStory();
    
$infotips=course_coursegetmoduleoption('infotips');
    
$sarray $tmparticle->getAllPublished($cfg['article_summary_items_count'], 0$xoopsModuleConfig['restrictindex']);
    if(
count($sarray)>0) {
        foreach (
$sarray as $onearticle) {
            
$count++;
            
$htmltitle='';
            
$tooltips='';
            
$htmltitle='';
            if(
$infotips>0) {
                
$tooltips course_coursemake_infotips($onearticle->hometext());
                
$htmltitle=' title="'.$tooltips.'"';
            }
             
$xoopsTpl->append('summary', array('story_id'=>$onearticle->storyid(), 'htmltitle'=>$htmltitle'infotips'=>$tooltips'story_title'=>$onearticle->title(), 'story_hits'=>$onearticle->counter(), 'story_published'=>formatTimestamp($onearticle->published,$dateformat)));
           }
       }
       
$xoopsTpl->assign('summary_count',$count);
    unset(
$tmparticle);
} else {
    
$xoopsTpl->assign('showsummary'false);
}


/**
 * Show a link to go to the previous article and to the next article
 *
 * According to a module's option "showprevnextlink" ("Show Previous and Next link ?")
 * you can display, at the bottom of each article, two links used to navigate thru course_stories.
 * This feature uses the module's option "restrictindex" so that we can, or can't see
 * restricted course_stories
 */
if (course_coursegetmoduleoption('showprevnextlink')) {
    
$xoopsTpl->assign('nav_links'true);
    
$tmparticle = new CourseStory();
    
$nextId $previousId = -1;
    
$next $previous = array();
    
$previousTitle $nextTitle '';
    
    
$next $tmparticle->getNextArticle($storyid$xoopsModuleConfig['restrictindex']);
    if(
count($next) > 0) {
        
$nextId $next['storyid'];
        
$nextTitle $next['title'];
    }
    
    
$previous $tmparticle->getPreviousArticle($storyid$xoopsModuleConfig['restrictindex']);
    if(
count($previous) > 0) {
        
$previousId $previous['storyid'];
        
$previousTitle $previous['title'];
    }    
    
       
$xoopsTpl->assign('previous_story_id',$previousId);
       
$xoopsTpl->assign('next_story_id',$nextId);
       if(
$previousId 0) {
           
$xoopsTpl->assign('previous_story_title',$previousTitle);
           
$hcontent.=sprintf("<link rel="Prev" title="%s" href="%s/" />n"$previousTitle,XOOPS_URL.'/modules/course/article.php?storyid='.$previousId);
       }

       if(
$nextId 0) {
           
$xoopsTpl->assign('next_story_title',$nextTitle);
           
$hcontent.=sprintf("<link rel="Next" title="%s" href="%s/" />n"$nextTitle,XOOPS_URL.'/modules/course/article.php?storyid='.$nextId);
       }
       
$xoopsTpl->assign('lang_previous_story',_NW_PREVIOUS_ARTICLE);
       
$xoopsTpl->assign('lang_next_story',_NW_NEXT_ARTICLE);
       unset(
$tmparticle);
} else {
    
$xoopsTpl->assign('nav_links'false);
}

/**
 * Manage all the meta datas
 */
course_CreateMetaDatas($article);



/**
 * Show a "Bookmark this article at these sites" block ?
 */
if(course_coursegetmoduleoption('bookmarkme')) {
    
$xoopsTpl->assign('bookmarkme'true);
    
$xoopsTpl->assign('encoded_title'rawurlencode($article->title()));
} else {
    
$xoopsTpl->assign('bookmarkme'false);
}


/**
 * Enable users to vote
 *
 * According to a module's option, "ratecourse", you can display a link to rate the current course
 * The actual rate in showed (and the number of votes)
 * Possible modification, restrict votes to registred users
 */
$other_test true;
if(
$cfg['config_rating_registred_only']) {
    if(isset(
$xoopsUser) && is_object($xoopsUser)) {
        
$other_test true;
    } else {
        
$other_test false;
    }
}

if (
course_coursegetmoduleoption('ratecourse') && $other_test) {
    
$xoopsTpl->assign('rates'true);
    
$xoopsTpl->assign('lang_ratingc'_NW_RATINGC);
    
$xoopsTpl->assign('lang_ratethiscourse'_NW_RATETHIScourse);
    
$story['rating'] = number_format($article->rating(), 2);
    if (
$article->votes == 1) {
        
$story['votes'] = _NW_ONEVOTE;
    } else {
        
$story['votes'] = sprintf(_NW_NUMVOTES,$article->votes);
    }
} else {
    
$xoopsTpl->assign('rates'false);
}

$xoopsTpl->assign('story'$story);

include_once 
XOOPS_ROOT_PATH.'/include/comment_view.php';
include_once 
XOOPS_ROOT_PATH.'/footer.php';
?>

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

71 Personne(s) en ligne (60 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 71 | Plus ...