Contao-Camp 2024
Ergebnis 1 bis 5 von 5

Thema: Contao\CoreBundle\Image\Studio\Studio nutzen

  1. #1
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.788

    Frage Contao\CoreBundle\Image\Studio\Studio nutzen

    In einem ContentElement-Klasse will ich Contao\CoreBundle\Image\Studio\Studio verwenden. Aber egal, wie ich Contao\CoreBundle\Image\Studio\Studio einbinde: es kommt immer "You have requested a non-existent service"

    Klasse Person.php
    PHP-Code:
    <?php

    namespace Schachbulle\ContaoSpielerregisterBundle\ContentElements;

    class 
    Person extends \ContentElement
    {

        
    /**
         * Template
         * @var string
         */
        
    protected $strTemplate 'ce_spielerregister_person';

        
    /**
         * Generate the module
         */
        
    protected function compile()
        {

            
    // Person aus Datenbank laden, wenn ID übergeben wurde
            
    if($this->spielerregister_id)
            {
                
    $objPerson $this->Database->prepare("SELECT * FROM tl_spielerregister WHERE id=?")
                                            ->
    execute($this->spielerregister_id);

                
    // Adresse gefunden
                
    if($objPerson->numRows)
                {
                    
    // Überschrift auf Platzhalter %s prüfen
                    
    $pos strpos($this->headline'%s');
                    if(
    $pos !== false)
                    {
                        
    // Überschrift ändern
                        
    $this->headline sprintf($this->headline$objPerson->firstname1.' '.$objPerson->surname1);
                    }

                    
    $this->Template->addImage false;
                    
    $this->Template->addBefore false;

                    
    // Add an image
                    
    if ($this->addImage)
                    {
                        
    $figure = \System::getContainer()
                            ->
    get(\Contao\CoreBundle\Image\Studio\Studio::class)
                            ->
    createFigureBuilder()
                            ->
    from($this->singleSRC)
                            ->
    setSize($this->size)
                            ->
    setMetadata($this->objModel->getOverwriteMetadata())
                            ->
    enableLightbox((bool) $this->fullsize)
                            ->
    buildIfResourceExists();

                        if (
    null !== $figure)
                        {
                            
    $figure->applyLegacyTemplateData($this->Template$this->imagemargin$this->floating);
                        }
                    }

                    
    // Daten aus tl_content in das Template schreiben
                    
    $this->Template->headline      $this->headline;
                    
    $this->Template->name          $objPerson->firstname1.' '.$objPerson->surname1;
                    
    $this->Template->lebensdaten   = \Schachbulle\ContaoSpielerregisterBundle\Klassen\Helper::getLebensdaten($objPerson->birthday$objPerson->birthplace$objPerson->death$objPerson->deathday$objPerson->deathplace);
                    
    $this->Template->kurzinfo      $objPerson->shortinfo;
                    
    $this->Template->langinfo      $objPerson->longinfo;


                }
            }

            return;

        }

    }
    Versucht habe ich schon:
    \Contao\CoreBundle\Image\Studio\Studio
    Contao\CoreBundle\Image\Studio\Studio
    \CoreBundle\Image\Studio\Studio
    \Image\Studio\Studio
    \Studio\Studio
    \Studio

    Immer derselbe Fehler.

    EDIT: Die Anleitung unter https://docs.contao.org/dev/framewor...-figurebuilder scheint für Core-Entwickler geschrieben worden zu sein, denn Aufrufe z.B. von System ohne \ davor funktionieren in Erweiterungen nicht.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    https://docs.contao.org/dev/framewor.../image-studio/

    This feature is available in Contao 4.10 and later.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Zitat Zitat von Samson1964 Beitrag anzeigen
    EDIT: Die Anleitung unter https://docs.contao.org/dev/framewor...-figurebuilder scheint für Core-Entwickler geschrieben worden zu sein, denn Aufrufe z.B. von System ohne \ davor funktionieren in Erweiterungen nicht.
    Nein, die Beispiele wurden nur abgekürzt (also ohne use Statements). Die Class-Aliases im Root Namespace sind deprecated und solltest du nicht verwenden.
    » sponsor me via GitHub or PayPal or Revolut

  4. #4
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.788

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    This feature is available in Contao 4.10 and later.
    Okay danke, habe ich übersehen.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  5. #5
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.124

    Standard

    Ich greif das mal auf

    Contao Version aktuelle 4.13.

    PHP-Code:
    use Contao\CoreBundle\Image\Studio\Studio;

    /**
     * @FrontendModule("fs_tour_archiv",
     *     category="fansite-manager-core", 
     *   template="mod_fs_tour_archiv"
     * )
     */
    class FsTourArchivController extends AbstractFrontendModuleController {
        
        public function 
    __construct(private readonly Studio $studio)   {    }
            
        protected function 
    getResponse(Template $templateModuleModel $modelRequest $request) : ? Response {

    .... 
    Erzeugt

    Code:
    Too few arguments to function WEBROXX\FansiteManagerCore\Controller\FrontendModule\FsTourArchivController::__construct(), 0 passed in /www/htdocs/w01a598e/dev.die-aerzte-archiv.de/var/cache/dev/ContainerRJFQshE/getContao_Fragment_Contao_FrontendModule_FsTourArchivService.php on line 25 and exactly 1 expected
    services.yml

    Code:
    services:
        _defaults:
            autowire: true
            autoconfigure: true
    EDIT:
    hatte wohl die argumentsl vergessen, so kommt zumindest kein Fehler mehr

    Code:
        
    WEBROXX\FansiteManagerCore\Controller\FrontendModule\FsTourArchivController:
            arguments: ['@Contao\CoreBundle\Image\Studio\Studio']
    Okay so läuft das jetzt, sofern man noch html5 templates nutzt reicht das auch oder? bzw wie lange ist applyLegacyTemplateData noch ok?
    PHP-Code:
                        $metadata = new Metadata([
                            
    Metadata::VALUE_ALT => $title,
                            
    Metadata::VALUE_TITLE => $title
                        
    ]);
                        
                        
    $size StringUtil::deserialize($model->imgSize);
                        
    $figureBuilder $this->studio->createFigureBuilder();
                        
                        
    $figureBuilder
                          
    ->fromUuid($objTour->file)
                          ->
    setSize([$size[0], $size[1], $size[2]])
                          ->
    setMetadata($metadata);
                                            
                        
    $figure $figureBuilder->build();
                        
    $figure->applyLegacyTemplateData($objTemplate); 
    Geändert von WebRoxx (29.11.2022 um 21:24 Uhr)
    Liebe Grüße
    WebRoxx


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
  •