Ergebnis 1 bis 9 von 9

Thema: Slideshow2 in News

  1. #1
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Beiträge
    131

    Standard Slideshow2 in News

    Hi,
    ich habe die Erweiterung Slideshow2 installiert.
    Jetzt würde ich gerne in meinen Newseinträgen eine von den angelegten Slideshows auswählen und diese dann in den Nachrichtendetails anzeigen.

    Das ich die Slideshow im Newseintrag auswählen kann ist kein Problem.
    Jedoch weiß ich nicht wie ich diese dann im Module aufrufen kann.

    Kann mir hierbei bitte jemand helfen?

    lg Jürgen

  2. #2
    Contao-Fan Avatar von Schlauchbeutelmaschine
    Registriert seit
    16.06.2009.
    Ort
    Wiesbaden
    Beiträge
    668

    Standard

    Hallo Jürgen,

    könntest du das bitte noch etwas genauer erklären,
    ich habe noch nicht verstand was du meinst.

    Gerne auch mit Screenshot.

    Grüße Sabri

  3. #3
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Beiträge
    131

    Standard

    hallo Sabri,
    Danke für dein Antwort,

    ich versuch es nochmal:
    ich habe einige Slideshows auf meiner Website. Diese binde ich im Artikel als Inhaltselement ein.
    Nun möchte ich im Prinzip genau das selbe bei den Newseinträgen machen.

    Ich kann im Backend im Newseintrag eine Slideshwo auswählen, welche dann im Frontend bei diesem Newseintrag gezeigt werden soll.

    ich hoffe ich habe mich jetzt besser ausgedrückt.

    lg Jürgen

  4. #4
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo nur eien Idee.

    http://www.contao.org/erweiterungsli...000049.de.html

    Wenn du das verwendest und die TPL umbaust und die Slidshow 2 einbindest könnte es vielleicht gehen. Aber ist nur eine Idee.

    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  5. #5
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Hi.

    So ganz verstanden hab ich das bis jetzt auch nicht.
    Beim Lesen hab ich bis jetzt immer aufgrund folgender Aussage

    Ich kann im Backend im Newseintrag eine Slideshwo auswählen, welche dann im Frontend bei diesem Newseintrag gezeigt werden soll.
    oder
    Das ich die Slideshow im Newseintrag auswählen kann ist kein Problem.
    ...das er die Slideshow schon auswählen kann.
    Da hab ich mich bis jetzt immer gefragt wie?

    Wenn das aber erst das Ziel ist, dann vielleicht über inserttags? Slideshow2 bringt doch eigene mit, wenn ich mich recht entsinne, oder?

    Gruß
    Thomas
    blucomp | Webdesign & Onlinelösungen

  6. #6
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Beiträge
    131

    Standard

    Hi
    Danke für die Antworten.
    Bin wohl 2 Tage lang auf der Elitung gesessen.
    Das mit dem Template hat dann funktioniert.

    Ich habe einen neuen Newsreader geschrieben, der einfach das gleiche macht wie ModuleNewsReader.php und ModuleSlideshow2.php zusammen.
    Einfach mal copy und paste.

    Danach einfach das Template etwas ändern und schon funktioniert es.

    lg Jürgen

  7. #7
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Wenn du eine Lösung gefunden hast wäre es nett die zu posten
    Falls jemand das gleiche Problem hat und nach einer Lösung sucht.

    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  8. #8
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Beiträge
    131

    Standard

    Hi,

    Zu allersert habe ich im dca tl_news.php ein neues Feld hinzugefügt.
    PHP-Code:
    'slideshow2' => array
    (
        
    'label'            => &$GLOBALS['TL_LANG']['tl_news']['slideshow2'],
        
    'exclude'        => true,
        
    'inputType'        => 'select',
        
    'foreignKey'        => 'tl_slideshow2.title'
    ), 
    Durch das kann ich dann im Newseintrag eine vorhandene Slideshow auswählen.

    Dann habe ich in der Datei ModuleNews die Funktion parseArticles etwas umgeschrieben.

    PHP-Code:
    protected $strJSFile 'plugins/slideshow2/js/slideshow.js';    
    protected 
    $strCSSFile 'plugins/slideshow2/css/slideshow.css';    
    protected 
    $thumbWidth 100;
    protected 
    $thumbHeight 50;
    protected function 
    parseArticles(Database_Result $objArticles$blnAddArchive=false)
    {
            if (
    $objArticles->numRows 1)
        {
            return array();
        }
        
    $this->import('String');
            
    $arrArticles = array();
        
    $limit $objArticles->numRows;
        
    $count 0;
        
    $imgSize false;
        
    // Override the default image size
        
    if ($this->imgSize != '')
        {
            
    $size deserialize($this->imgSize);
            if (
    $size[0] > || $size[1] > 0)
            {
                
    $imgSize $this->imgSize;
            }
        }
        while (
    $objArticles->next())
        {
            
    $objTemplate = new FrontendTemplate($this->news_template);
            
    $objTemplate->setData($objArticles->row());
            
    $objTemplate->count = ++$count;
            
    $objTemplate->class = (strlen($objArticles->cssClass) ? ' ' $objArticles->cssClass '') . (($count == 1) ? ' first' '') . (($count == $limit) ? ' last' '') . ((($count 2) == 0) ? ' odd' ' even');
            
    $objTemplate->newsHeadline $objArticles->headline;
            
    $objTemplate->subHeadline $objArticles->subheadline;
            
    $objTemplate->hasSubHeadline $objArticles->subheadline true false;
            
    $objTemplate->linkHeadline $this->generateLink($objArticles->headline$objArticles$blnAddArchive);
            
    $objTemplate->more $this->generateLink($GLOBALS['TL_LANG']['MSC']['more'], $objArticles$blnAddArchivetrue);
            
    $objTemplate->link $this->generateNewsUrl($objArticles$blnAddArchive);
            
    $objTemplate->archive $objArticles->archive;
                
    // Display the "read more" button for external/article links
            
    if (($objArticles->source == 'external' || $objArticles->source == 'article') && !strlen($objArticles->text))
            {
                
    $objTemplate->text true;
            }
            
    // Encode e-mail addresses
            
    else
            {
                
    // Clean RTE output
                
    $objTemplate->text str_ireplace
                
    (
                    array(
    '<u>''</u>''</p>''<br /><br />'' target="_self"'),
                    array(
    '<span style="text-decoration:underline;">''</span>'"</p>\n""<br /><br />\n"''),
                    
    $this->String->encodeEmail($objArticles->text)
                );
            }
            
    $arrMeta $this->getMetaFields($objArticles);
            
    // Add meta information
            
    $objTemplate->date $arrMeta['date'];
            
    $objTemplate->hasMetaFields count($arrMeta) ? true false;
            
    $objTemplate->numberOfComments $arrMeta['ccount'];
            
    $objTemplate->commentCount $arrMeta['comments'];
            
    $objTemplate->timestamp $objArticles->date;
            
    $objTemplate->author $arrMeta['author'];
                
    $objTemplate->addImage false;

                
    // Add an image
                
    if ($objArticles->addImage && is_file(TL_ROOT '/' $objArticles->singleSRC))
                {
                    if (
    $imgSize)
                    {
                        
    $objArticles->size $imgSize;
                    }

                    
    $this->addImageToTemplate($objTemplate$objArticles->row());
                }

                
    $objTemplate->enclosure = array();

                
    // Add enclosures
                
    if ($objArticles->addEnclosure)
                {
                    
    $this->addEnclosuresToTemplate($objTemplate$objArticles->row());
                }

                
    // HOOK: add custom logic
                
    if (isset($GLOBALS['TL_HOOKS']['parseArticles']) && is_array($GLOBALS['TL_HOOKS']['parseArticles']))
                {
                    foreach (
    $GLOBALS['TL_HOOKS']['parseArticles'] as $callback)
                    {
                        
    $this->import($callback[0]);
                        
    $this->$callback[0]->$callback[1]($objTemplate$objArticles->row());
                    }
                }
                
                
                
    //-- Create Data Arrays
            
    $objSettings     $this->Database->prepare("SELECT * FROM tl_slideshow2 WHERE id=?")
                              ->
    execute($objArticles->slideshow2);
            
            
    $objElements     $this->Database->prepare("SELECT * FROM tl_slideshow2_elements WHERE pid=? ORDER by sorting ASC")
                                 ->
    execute($objArticles->slideshow2);
            
            
    //-- Prepare Data
            
    $arrSlideshow2Size             unserialize($objSettings->slideshow2_size);
            
            if(
    $objSettings->thumbnails
            
    $arrSlideshow2ThumbSize     unserialize($objSettings->thumbnails_size);
            
            
    $GLOBALS['TL_JAVASCRIPT'][] = $this->strJSFile;
            
    $GLOBALS['TL_CSS'][] = $this->strCSSFile;
            
         
    /** --------------------------------------------------------------------
          * Generate HTML Image Array 
          * -------------------------------------------------------------------- */
            
            //-- Reset Variables
            
    $x 0;
            
    $url_link false;
            
    $url_fullsize false;
            
            
    //-- Get Data from all selected elements
            
    while ($objElements->next())
            {
                if (
    strncmp($objElements->src'.'1) === 0)
                {
                    continue;
                }

             
    /** --------------------------------------------------------------------
              * img_src is Directory
              * -------------------------------------------------------------------- */
                
    if (is_dir(TL_ROOT '/' $objElements->src))
                {
                    
    $subfiles scan(TL_ROOT '/' $objElements->src);
        
                    foreach (
    $subfiles as $subfile)
                    {
                        if (
    strncmp($subfile'.'1) === || is_dir(TL_ROOT '/' $objElements->src '/' $subfile))
                        {
                            continue;
                        }
        
                        
    $objFile = new File($objElements->src '/' $subfile);
        
                        if (
    $objFile->isGdImage)
                        {
                            
    //-- Imagenumber
                            
    $arrElements[$x]['id'] = $x;
                            
                            
    //-- Thumbnails
                            
    if ($objSettings->thumbnails)
                            {
                                
    $arrElements[$x]['thumb_src'] = $this->getImage($objElements->src '/' $subfile$arrSlideshow2ThumbSize[0], $arrSlideshow2ThumbSize[1]); 
                                
    $arrElements[$x]['thumb_size'] = $arrSlideshow2ThumbSize;
                            }
                            
                            
    //-- Image resizing
                            
    if ($objElements->img)
                            {
                                
    $arrElements[$x]['img_size'] = unserialize($objElements->img_size);
                                
    $arrElements[$x]['src'] = $this->getImage($objElements->src '/' $subfile$arrElements[$x]['img_size'][0], $arrElements[$x]['img_size'][1]);
                            }
                            else
                            {
                                
    $arrElements[$x]['img_size'] = array($objFile->width,$objFile->height);
                                
    $arrElements[$x]['src'] = $objElements->src '/' $subfile;
                            }
                            
                            
    //-- Link
                            
    $arrElements[$x]['url']          = $objElements->url;
                            
                            if (
    $objElements->url_link && $objElements->url)
                            {
                                
    $arrElements[$x]['url_link']         = ($objElements->url_link);
                                
    $arrElements[$x]['url_title']        = $objElements->url_title;
                                
    $arrElements[$x]['url_window']        = $objElements->url_window;
                                
                                
    $arrElements[$x]['url_fullsize']     = false;
                                
                                
    $url_link true;
                            }
                            elseif (
    $objElements->url_fullsize && $objElements->url)
                            {
                                
    $arrElements[$x]['url_link']         = $objElements->src '/' $subfile;
                                
    $arrElements[$x]['url_fullsize']     = true;
                                
                                
    $url_fullsize true;
                            }
                            
                            
    // Description and alt 
                            
    if ($objSettings->captions_meta)
                            {
                                
    //-- Use Typolight Function to parse meta
                                
    $this->parseMetaFile($objElements->src);
                                
    $arrMeta $this->arrMeta[$objFile->basename];
                                
                                
    // Take filename if there is no meta info for that file
                                
    if ($arrMeta[2] == '')
                                    
    $arrMeta[0] = str_replace('_'' 'preg_replace('/^[0-9]+_/'''$objFile->filename));
                                    
                                
    $arrElements[$x]['description'] = $arrMeta[0];
                                
    $arrElements[$x]['alt'] = $arrMeta[0];    
                            }
                            else
                            {
                                
    $arrElements[$x]['description'] = $objElements->description;
                                
    $arrElements[$x]['alt'] = $objElements->alt;
                            }
                                                
                            
    //-- count image
                            
    $x++;
                        }
                    }

                    continue;
                }

             
    /** --------------------------------------------------------------------
              * img_src is File
              * -------------------------------------------------------------------- */
                
                
    if (is_file(TL_ROOT '/' $objElements->src))
                {
                    
    $objFile = new File($objElements->src);
        
                    if (
    $objFile->isGdImage)
                    {
                        
    //-- Imagenumber
                        
    $arrElements[$x]['id'] = $x;
                        
                        
    //-- Thumbnails
                        
    if ($objSettings->thumbnails)
                        {
                            
    $arrElements[$x]['thumb_src'] = $this->getImage($objElements->src$arrSlideshow2ThumbSize[0], $arrSlideshow2ThumbSize[1]); 
                            
    $arrElements[$x]['thumb_size'] = unserialize($objSettings->thumbnails_size);
                        }
                        
                        
    //-- Image resizing
                        
    if ($objElements->img)
                        {
                            
    $arrElements[$x]['img_size'] = unserialize($objElements->img_size);
                            
    $arrElements[$x]['src'] = $this->getImage($objElements->src$arrElements[$x]['img_size'][0], $arrElements[$x]['img_size'][1]);
                        }
                        else
                        {
                            
    $arrElements[$x]['img_size'] = array($objFile->width,$objFile->height);
                            
    $arrElements[$x]['src'] = $objElements->src;
                        }
                        
                        
    //-- Link
                        
    $arrElements[$x]['url'] = $objElements->url;
                        
                        if (
    $objElements->url_link && $objElements->url)
                        {
                            
    $arrElements[$x]['url_link']         = ($objElements->url_link);
                            
    $arrElements[$x]['url_title']        = $objElements->url_title;
                            
    $arrElements[$x]['url_window']        = $objElements->url_window;
                            
                            
    $arrElements[$x]['url_fullsize']     = false;
                            
                            
    $url_link true;
                        }
                        elseif (
    $objElements->url_fullsize && $objElements->url)
                        {
                            
    $arrElements[$x]['url_link']         = $objElements->src;
                            
    $arrElements[$x]['url_fullsize']     = true;
                            
                            
    $url_fullsize true;
                        }
                        
                        
    //echo dirname($objElements->src);
                        
                        // Description with or without meta file
                        
    if ($objSettings->captions_meta)
                        {
                            
    //-- Use Typolight Function to parse meta
                            
    $this->parseMetaFile(dirname($objElements->src));
                            
    $arrMeta $this->arrMeta[$objFile->basename];

                            
    //print_r($arrMeta);
                            
                            // Take filename if there is no meta info for that file
                            
    if ($arrMeta[2] == '')
                                
    $arrMeta[0] = str_replace('_'' 'preg_replace('/^[0-9]+_/'''$objFile->filename));
                                    
                            
    $arrElements[$x]['description'] = $arrMeta[0];
                            
    $arrElements[$x]['alt'] = $arrMeta[0];    
                        }
                        else
                        {
                            
    $arrElements[$x]['description'] = $objElements->description;
                            
    $arrElements[$x]['alt'] = $objElements->alt;
                        }
                        
                        
    //-- count image
                        
    $x++;
                    }
                }
            }

            
         
    /** --------------------------------------------------------------------
          * CSS Template
          * --------------------------------------------------------------------*/ 
        
            /* Create CSS Template */
            
    $objTplCSS = new FrontendTemplate($objSettings->template_css);
            
            
    $objTplCSS->id                         $objSettings->id;
            
    $objTplCSS->arrSlideshow2Size         $arrSlideshow2Size;
            
    $objTplCSS->arrSlideshow2ThumbSize     $arrSlideshow2ThumbSize;
            
    $objTplCSS->totalElements            count($arrElements)+1;
            if (
    $objSettings->controls)         $objTplCSS->controls true;
            if (
    $objSettings->captions)         $objTplCSS->captions true;
            if (
    $objSettings->thumbnails
            {
                
    $objTplCSS->thumbnails true;
                
    $objTplCSS->ThumbsAdditionalHeight 10;
                
    $objTplCSS->thumbnails_overlay = ($objSettings->thumbnails_overlay)? true false ;
            }
            
            if (
    $objSettings->play_image)
            {
                    
    $play_number = ($objSettings->play_random)? mt_rand(0count($arrElements)-1) : ;
                    
    $objTplCSS->play_image $arrElements[$play_number]['src'];
            }         
            
            
    //print_r($objTplCSS);
            
            /* Add CSS in HTML head */
            
    $GLOBALS['TL_HEAD'][] ='<style type="text/css" media="screen">
    <!--/*--><![CDATA[/*><!--*/
    str_replace(array("\r\n""\n""\r""\t"), ""$objTplCSS->parse())   . '
    /*]]>*/--></style>'
    ;



         
    /** --------------------------------------------------------------------
          * JS Template
          * --------------------------------------------------------------------*/

            //-- Create Image Array
            
    $elementsTotal count($arrElements); 
            
    $x 1;
            
            foreach (
    $arrElements as $element)
            {
                
    //-- Additional image data (Thumbnail and link)
                
    if ($objSettings->thumbnails$imgExtended ",thumbnail:'" $element['thumb_src'] . "'";
                
    //if ($objSettings->thumbnails) $imgExtended = ",thumbnail:'1'";
                
    if ($objElements->url_link && $objElements->url$imgExtended .= ",href:'" $element['url_link'] . "'";
                
                
    $imgElements .= "'" .  $element['src']. "':{caption:'" str_replace('/''\/'$element['description']) . "'" $imgExtended "}";
                
                if (
    $x != $elementsTotal$imgElements .= ","
                
                
    $x++;    
            }
            
    //-- Type
            
    if ($objSettings->effect_type != 'Alpha')
            {
                
                
    $EffectType '.' $objSettings->effect_type;
                
    $GLOBALS['TL_JAVASCRIPT'][] = 'plugins/slideshow2/js/slideshow.' strtolower($objSettings->effect_type) . '.js';
            }
            
            
    //-- Extended
            
    if ($objSettings->effects_extended)
            {
                
    $EffectsExtended 'transition: \'' strtolower($objSettings->effect_transition) . ':' $objSettings->effect_ease '\',';
            }

            
    //-- Create JS Template 
            
    $objTplJS = new FrontendTemplate($objSettings->template_js);
            
            
    $objTplJS->id                     $objSettings->id;

            
    $objTplJS->imgElements             $imgElements;
            
    $objTplJS->arrSlideshow2Size     $arrSlideshow2Size;
            
    $objTplJS->EffectType             $EffectType;
            
    $objTplJS->effect_duration         $objSettings->effect_duration;
            
    $objTplJS->EffectsExtended         $EffectsExtended;
            
    $objTplJS->rotation_interval     $objSettings->rotation_interval;
            
    $objTplJS->controls_type        $objSettings->controls_type;

             
    $objTplJS->play_loop    = ($objSettings->play_loop)?     'false' 'true' ;
            
    $objTplJS->play_paused    = ($objSettings->play_paused)?     'true' 'false' ;
            
    $objTplJS->play_random    = ($objSettings->play_random)?     'true' 'false' ;
            
    $objTplJS->controls        = ($objSettings->controls)?     'true' 'false' ;
            
    $objTplJS->thumbnails    = ($objSettings->thumbnails)?     'true' 'false' ;
            
    $objTplJS->captions        = ($objSettings->captions)?     'true' 'false' ;

            
    $objTplJS->thumbnails_overlay = ($objSettings->thumbnails_overlay)? true false ;
        
            
    // Add Lightbox if only lightbox links are in array 
            
    if (!$url_fullsize && $url_link || $url_fullsize && $url_link)
            {
                
    $objTplJS->linked 'linked: true,';
            }
            else if (
    $url_fullsize && !$url_link)
            {
                
    $objTplJS->linked 'linked: true,';
                
    $objTplJS->fullsize true;
            }    

            
    /* Add JS in HTML head */
            
    $GLOBALS['TL_HEAD'][] = "<script type=\"text/javascript\">
    <!--//--><![CDATA[//><!--
    window.addEvent('domready',function(){" 
    .  str_replace(array("\r\n""\n""\r""\t"), ""$objTplJS->parse()) . "});
    //--><!]]>
    </script>"
    ;        


         
    /** --------------------------------------------------------------------
          * mod_slideshow2 template
          * -------------------------------------------------------------------- */
            
            
    $objTemplate->fullsize1 $url_fullsize;
            
    $objTemplate->id1 $objSettings->id;
            
    $objTemplate->element1 $arrElements[0];
        
                
    $arrArticles[] = $objTemplate->parse();
            }

            return 
    $arrArticles;
        } 
    Dann nur noch das Template anpassen und es funktioniert.
    HTML-Code:
    <div class="layout_full block<?php echo $this->class; ?>">
    <h1><?php echo $this->newsHeadline; ?></h1>
    <div class="text">
    <?php echo $this->text; ?>
    <?php if ($this->enclosure): ?>
    <div class="enclosure">
    <?php foreach ($this->enclosure as $enclosure): ?>
    <p><!--<img src="<?php echo $enclosure['icon']; ?>" width="18" height="18" alt="<?php echo $enclosure['title']; ?>" class="mime_icon" />--> <a href="<?php echo $enclosure['href']; ?>" title="<?php echo $enclosure['title']; ?>"><?php echo $enclosure['link']; ?> <span class="size">(<?php echo $enclosure['filesize']; ?>)</span></a></p>
    <?php endforeach; ?>
    </div>
    <?php endif; ?>
    </div>
    <div class="videoGalerie">
    <div class="mod_videobox">
    <?php echo $this->videos; ?>
    </div>
    <?php if($this->element1): ?>
    <div class="ce_slideshow2 block">
    <div id="show<?php echo $this->id1; ?>" class="slideshow">
    <div class="slideshow-images">
    <?php if ($this->fullsize): ?><a rel="lightbox" href="<?php echo $this->element1['src']; ?>"><?php endif; ?>
    	<img id="slide<?php echo $this->id1; ?>-<?php echo $this->element1['id']; ?>" src="<?php echo $this->element1['src']; ?>" width="<?php echo $this->element1['img_size'][0]; ?>" height="<?php echo $this->element1['img_size'][1]; ?>" alt="<?php echo $this->element1['alt']; ?>" />
    <?php if ($this->fullsize1): ?></a><?php endif; ?>
    </div>
    </div>
    </div>
    <?php endif; ?>
    </div>
    </div>
    lg Jürgen

  9. #9
    Contao-Fan Avatar von Schlauchbeutelmaschine
    Registriert seit
    16.06.2009.
    Ort
    Wiesbaden
    Beiträge
    668

    Standard

    Danke für das Beispiel, Jürgen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •