CSS in modulo personalizzato
Sto provando l'uso dei CSS in un modulo personalizzato.
Ho letto vari articoli su Drupal.org e fatto ricerche.
Ho seguito le indicazioni ma non mi funziona.
Di seguito quello che ho fatto
In module/custom/udf oltre ai vari file ho scritto il file udf.libraries.yml
udf: version: 1.x css: base: css/udf.css: {}
In module/custom/udf creata cartella css ed al suo interno scritto il file udf.css
h1 { color: red; text-align: center; } p { color: green; text-align: center; } #linkHomePage { color: orange; text-align: center; }
Nella cartella controller ho il file HomeController.php
<?php /** * @return * Contains \Drupal\udf\Controller\FirstPageController. */ namespace Drupal\udf\Controller; use Drupal\Core\Controller\ControllerBase; /** * Provides route responses for the DrupalBook module. */ class HomeController extends ControllerBase { /** * Returns a simple page. * * @return array * A simple renderable array. */ public function content() { $Pagina = '<center>' . '<h1>PROVA</h1>' . '<p> </p>' . '<hr />' . '<p> </p>' . "<p>Procedure utilizzabili dall'Utente</p>" . '<p><em><strong><a href="/prova">Prova</a></strong></em></p>' . '</center>' ; return [ '#type' => 'markup', '#markup' => $this->t( $Pagina ), ]; }
}Non ho capito se devo caricare il css e dove
Gaetano
Risposte
https://www.drupal.org/docs/c
https://www.drupal.org/docs/creating-custom-modules/adding-stylesheets-c...
qualcosa del genere:
$elem = [];
$elem['testo'] = [
'#type' => 'markup',
'#markup' => $Pagina
];
$elem['testo']['#attached']['library'][] = 'udf/udf';
return $elem;
Scritto questo
Scritto questo codice
Se remmo la riga della libreria funziona, altrimenti mi ritorna errore.
Scusa la domanda, se ho capito il codice, aggancerà la libreria solo per quel campo.
Avendo inserito, nel file library.yml questo codice
Non mi dovrebbe sare la possibilità di utilizzarlo su tutto il modulo?
Devi agganciare la libreria
Devi agganciare la libreria all'elemento che l'utilizza, non è un tema ma un modulo.
Che errore restituisce sui log?
Errore sull'attach del
Errore sull'attach del libreria
Si è verificato un errore inatteso. Riprova più tardi, grazie.
Drupal\Core\Asset\Exception\InvalidLibraryFileException: Invalid library definition in modules/custom/udf/udf.libraries.yml: Unexpected characters near " dependencies: - core/jquery - core/jquery.once" at line 10 (near " - core/jquery.once"). in Drupal\Core\Asset\LibraryDiscoveryParser->parseLibraryInfo() (line 352 of core\lib\Drupal\Core\Asset\LibraryDiscoveryParser.php).
Symfony\Component\Yaml\Parser->parseValue('{} dependencies: - core/jquery - core/jquery.once', 2, 'mapping') (Line: 395)
Symfony\Component\Yaml\Parser->doParse('js/udf.js: {}
dependencies:
- core/jquery
- core/jquery.once
', 2) (Line: 517)
Symfony\Component\Yaml\Parser->parseBlock(6, 'js/udf.js: {}
dependencies:
- core/jquery
- core/jquery.once
', 2) (Line: 373)
Symfony\Component\Yaml\Parser->doParse(Array, 2) (Line: 517)
Symfony\Component\Yaml\Parser->parseBlock(1, 'version: 1.x
css:
base:
css/udf.css: {}
js:
js/udf.js: {}
dependencies:
- core/jquery
- core/jquery.once
', 2) (Line: 373)
Symfony\Component\Yaml\Parser->doParse('udf:
version: 1.x
css:
base:
css/udf.css: {}
js:
js/udf.js: {}
dependencies:
- core/jquery
- core/jquery.once
// Pagina di riferimento https://www.drupal.org/docs/creating-custom-modules/adding-stylesheets-c...
', 2) (Line: 142)
Symfony\Component\Yaml\Parser->parse('udf:
version: 1.x
css:
base:
css/udf.css: {}
js:
js/udf.js: {}
dependencies:
- core/jquery
- core/jquery.once
// Pagina di riferimento https://www.drupal.org/docs/creating-custom-modules/adding-stylesheets-c...
', 2) (Line: 37)
Drupal\Component\Serialization\YamlSymfony::decode('udf:
version: 1.x
css:
base:
css/udf.css: {}
js:
js/udf.js: {}
dependencies:
- core/jquery
- core/jquery.once
// Pagina di riferimento https://www.drupal.org/docs/creating-custom-modules/adding-stylesheets-c...
') (Line: 35)
Drupal\Component\Serialization\Yaml::decode('udf:
version: 1.x
css:
base:
css/udf.css: {}
js:
js/udf.js: {}
dependencies:
- core/jquery
- core/jquery.once
// Pagina di riferimento https://www.drupal.org/docs/creating-custom-modules/adding-stylesheets-c...
') (Line: 348)
Drupal\Core\Asset\LibraryDiscoveryParser->parseLibraryInfo('udf', 'modules/custom/udf') (Line: 115)
Drupal\Core\Asset\LibraryDiscoveryParser->buildByExtension('udf') (Line: 87)
Drupal\Core\Asset\LibraryDiscoveryCollector->getLibraryDefinitions('udf') (Line: 66)
Drupal\Core\Asset\LibraryDiscoveryCollector->resolveCacheMiss('udf') (Line: 149)
Drupal\Core\Cache\CacheCollector->get('udf') (Line: 44)
Drupal\Core\Asset\LibraryDiscovery->getLibrariesByExtension('udf') (Line: 58)
Drupal\Core\Asset\LibraryDiscovery->getLibraryByName('udf', 'udf') (Line: 54)
Drupal\Core\Asset\LibraryDependencyResolver->doGetDependencies(Array) (Line: 31)
Drupal\Core\Asset\LibraryDependencyResolver->getLibrariesWithDependencies(Array) (Line: 104)
Drupal\Core\Asset\AssetResolver->getLibrariesToLoad(Object) (Line: 116)
Drupal\Core\Asset\AssetResolver->getCssAssets(Object, 1) (Line: 315)
Drupal\Core\Render\HtmlResponseAttachmentsProcessor->processAssetLibraries(Object, Array) (Line: 161)
Drupal\Core\Render\HtmlResponseAttachmentsProcessor->processAttachments(Object) (Line: 94)
Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments(Object) (Line: 45)
Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond(Object, 'kernel.response', Object)
call_user_func(Array, Object, 'kernel.response', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.response', Object) (Line: 191)
Symfony\Component\HttpKernel\HttpKernel->filterResponse(Object, Object, 1) (Line: 173)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Qualcosa non va nel tuo file
Qualcosa non va nel tuo file yml dove definisci le librerie: ricorda che le indentazioni sono significative (dependencies deve essere allo stesso livello di css / js / version) e che i commenti iniziano con # (non con // o /*)
Problema sui commenti non
Problema sui commenti non avevo fatto caso ai doppi slash
grazie.
Mi sa che il file css è meglio se lo rendo disponibile per tutto il sito.
Probabilmete dovrò inserire la cartella CSS all'interno della cartella theme. Ho già letto qualcosa approfondirò