Style Theme Override - ajout fichier css au theme

Puisque mes commits ne passent pas je le partage sur le forum…
Pour ajouter vos propres fichiers css au theme activé mettez les dans le dossier css(il faut le créer) de votre theme (par exemple theme/eldy/css/custom.css)
Allez à la ligne 1209 du fichier main.inc.php et ajoutez ce bout de code :

Comme ça vous ne perdez plus vos relook après chaque mise à jour!
le fichier serait aussi chargé dans le header de la page de connexion et dans toutes les modules

2 « J'aime »

le même principe peut être adopter pour les modules (des fichiers css à ajouter dans un dossier /modulename/style/css/ par exemple)
pareil pour javascript…

Une version plus simplifiée

// Check if the /theme/nameoftheme/css folder exists and Add the contains css files to head if (file_exists(dirname(dol_buildpath($conf->css, 0))."/css")) { //browse the css dir and add the contains css files if ($handle = opendir(dirname(dol_buildpath($conf->css, 0))."/css")) { while (false !== ($entry = readdir($handle))) { list($filename, $extension) = explode(".", $entry); if ($entry !== '.' && $entry !== '..' && $extension == 'css') { print '<link rel="stylesheet" type="text/css" href="'.dirname(dol_buildpath($conf->css, 1))."/css/".$entry.'">'."\n"; } } closedir($handle); } }

Pour le module en cours à ajouter, juste après le code ci-dessus, le code suivant et créer le dossier /module/style dans le module où vous souhaitez surcharger vos fichiers css sans changer le code du module.

//Current modulepart css overload
// Check if the /module/style folder exists and Add the contains css files to head
$cur_modulepart = explode("/",$_SERVER["PHP_SELF"]);
if(is_array($cur_modulepart) && count($cur_modulepart)>0)
{
	foreach($conf->modules as $module)
	{
		if(in_array($module, $cur_modulepart))
		{
			if (file_exists(getcwd().DIRECTORY_SEPARATOR."style"))
			{
				//browse the css dir and add the contains css files
				if ($handle = opendir(getcwd().DIRECTORY_SEPARATOR."style"))
				{
					while (false !== ($entry = readdir($handle))) 
					{
						list($filename, $extension) = explode(".", $entry);
						if ($entry !== '.' && $entry !== '..' && $extension == 'css')
						{
							print '<link rel="stylesheet" type="text/css" href="'.dirname($_SERVER["PHP_SELF"])."/style/".$entry.'">'."\n";
						}
					}
					closedir($handle);
				}
			}
		}
	}
}

Bonjour,
Merci pour ce tuyau très intéressant sauf quand j’applique un css, il n’apparaît pas forcément. Peut être que je m’y prends mal.
La première fonctionne, la deuxième ne s’applique pas
.
.login_table {
background-color: rgba(255, 255, 255, 0.5);
}

.select2-selection__placeholder {
color: white;
}

.
Je vous remercie de m’orienter.

bonjour,
si tu veux changer le thème tu dois aller au code source thème -->style.css.php et non au niveau inspecter

Merci @minaa95
Le thème @eldy ne contient pas du CSS mais du PHP utilisé pour générer du CSS à priori.
Extrait :
//if (! defined(‹ NOREQUIREUSER ›)) define(‹ NOREQUIREUSER ›,‹ 1 ›); // Not disabled because need to load personalized language
//if (! defined(‹ NOREQUIREDB ›)) define(‹ NOREQUIREDB ›,‹ 1 ›); // Not disabled to increase speed. Language code is found on url.
if (!defined(‹ NOREQUIRESOC ›)) define(‹ NOREQUIRESOC ›, ‹ 1 ›);
//if (! defined(‹ NOREQUIRETRAN ›)) define(‹ NOREQUIRETRAN ›,‹ 1 ›); // Not disabled because need to do translations
if (!defined(‹ NOCSRFCHECK ›)) define(‹ NOCSRFCHECK ›, 1);
if (!defined(‹ NOTOKENRENEWAL ›)) define(‹ NOTOKENRENEWAL ›, 1);
if (!defined(‹ NOLOGIN ›)) define(‹ NOLOGIN ›, 1); // File must be accessed by logon page so without login
//if (! defined(‹ NOREQUIREMENU ›)) define(‹ NOREQUIREMENU ›,1); // We need top menu content
if (!defined(‹ NOREQUIREHTML ›)) define(‹ NOREQUIREHTML ›, 1);
if (!defined(‹ NOREQUIREAJAX ›)) define(‹ NOREQUIREAJAX ›, ‹ 1 ›);

Essaie d’ajouter !important et voir si la couleur change (aussi dans le code source CTRL+U regarde si ton fichier css est integré, aussi clique dessus pour voir si le lien pointe bien sur un ton fichier dans le bon emplacement)
.select2-selection__placeholder {
color: white!important;;
}

Ajouter !important a fait le job.
Sinon la page pointe bien sur le fichier css custom au bon endroit.

Merci beaucoupp @wdammak

Bonjour, je viens de trouver cette super astuce css sur le forum. Concernant l’insertion de code dans une V12 ou V13, avez-vous les numéros de lignes correspondants ? mieux : la phrase avant et après pour être sûr… Merci d’avance et bonne journée !

Bonsoir,

En prenant en compte la date du message de @wdammak et en comparant la version

avec la version 13 je dirais :

Mais je n’ai pas testé, par contre je suis intéressé par les retours et si besoin nous pourrions proposer une PR pour les futures versions.

Cordialement,
Gaëtan.

1 « J'aime »

Merci Gaëtan ! je teste ça très prochainement

Hello ! Ravi de trouver cette fonctionnalité ici, la version simplifiée de wdammak a fonctionnée pour moi avec un Doli 14.0.4.
Sachant que c’est surtout pour personnaliser la login page pour le moment.

Hello,

Ca serait pas plus simple de rajouter dans le coeur de Dolibarr une option dans config / divers du genre USE_CUSTOM_CSS = 1 et d’avoir un emplacement prédéfini pour coller ses fichiers CSS ?

Ca éviterait à chaque montée de version de bidouiller des fichiers.

Un truc du genre

if (defined('USE_CUSTOM_CSS')) {
				print '<!-- Includes custom CSS  -->'."\n";
				print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/custom/css/custom.css" />'."\n";
			}

Hello,

Dans les modules externes, on peut charger du CSS supplémentaire :

1 « J'aime »

On peut avoir besoin de charger (sur-charger, plutot) du CSS pour des besoins spécifiques sans avoir besoin / envie de déployer un module complet.

Je trouve assez fou que doli n’ait pas un éditeur CSS simple pour surcharger 2 ou 3 class, genre la couleur des fontawesome ou le dégradé sur la login page.

Mon idée est d’ouvrir l’accès au besoin à 1 fichier, qu’on ait pas besoin de rajouter à chaque update.

Ça a déjà été demandé, mais sans que personne prenne le sujet :

Si vous avez un peu de temps les PR sont bienvenus !

2 « J'aime »

Pour info, c’est en cours … début de PR

1 « J'aime »

@erics Bonjour et merci pour l’info; tu peux nous mettre un lien pour la PR stp ?
J’avais aussi ça dans ma todolist :wink:

1 « J'aime »

C’est la:

J’ai mis une capture d’écran et qq commentaires sur le ticket

3 « J'aime »