İti geceler herkese ben panelden header panel rengi menü rengi sol panellerin rengini yönetim panelinden güncellemek istiyorum fakat hangi yolu izleyeceğimi şaşırdım
1)style.php dosyası
2.Panelden güncellenebilen style.css dosyası
3.) inline css
3 bana seo açısından uygum gelmedi 1. de yazılım için sorun oluşturur.
2. seçenekte elimde örnek yok aklıma takılan diğer kısımsa yazma izni vermek sunucuyu savunmasız bırakırmı ?
Php'de dinamik css nasıl yapılır ?Hangi yol mantıklıdır?
14
●366
- 20-04-2022, 22:53:16peki hocam ben bunu nasıl kullanabilirim? Js bilgim mevcut css de orta seviye ama bunu nasıl kullanacağımın mamtığını anlatabişirsenz çok memnun olurumbedoso adlı üyeden alıntı: mesajı görüntüle
- 20-04-2022, 23:00:17<script>var defaulColor ="<?=$setting['theme_color'] ?>"; <!-- Burada veritabanına bağladığımız değişkeni çektik php çok bilmiyorum -->ismail03 adlı üyeden alıntı: mesajı görüntüle
document.documentElement.setAttribute('theme', defaulColor); <!-- burada da sayfa açıldığında kullanmak istediğimiz renk grubunu belirledik -->
</script>
:root,:root[theme='birinci-renk-paleti'] {--yazi-renk: #0592c6; }
:root,:root[theme='ikinci-renk-paleti'] {--yazi-renk: #0592c6; }
/* burada root kısmına tüm css de ortak kullanacağımız bir yazı rengi tanımladık */
p{
color: var(--yazi-renk);
}
/* burada yazı rengini roottan almasını sağladık */
anlatabildim mi bilmiyorum ama umarım anlayabilirsiniz
- 21-04-2022, 03:58:40Anladım denicem çok teşekkür ederimbedoso adlı üyeden alıntı: mesajı görüntüle
- 21-04-2022, 15:45:28Benim istediğim şey renk ataması yapabilmek bunda sınıflar tanımlıyoruzbedoso adlı üyeden alıntı: mesajı görüntüle
- 22-04-2022, 04:48:44Yazdıklarınızdan css bilginizin söylediğiniz gibi iyi olmadığına inanıyorum. Css dosyasını php üzerinden derlemeninde Seo ile ilgili en ufak bir ilgisi bulunmuyor.
CSS de "selector" ler vardır class,id v.b..
Yapacağınız işe örnek vermek gerekirse;
.color_default { color:black; } .color_red { color:red; } .color_blue { color:blue; } .color_orange { color:orange; } .color_yellow { color:yellow; } .color_green { color:green; }Düz Kullanım
<b class="color_red">Bu Kırmızı</b> <br> <b class="color_blue">Bu Mavi</b>
PHP Kullanım
<?php function html_color($color) { $available_colors = array('default','red','blue','orange','yellow','green'); if(in_array($color,$available_colors)) { return 'color_'.$color.''; } else { return 'color_default'; } } ?> <b class="<?php echo html_color('red'); ?>">Bu Kırmızı</b> <br> <b class="<?php echo html_color('blue'); ?>">Bu Mavi</b>
Buna ek olarak söylediğiniz gibi css dosyasını panelden düzenlenebilirde yapabilirsiniz. - 23-04-2022, 00:05:42İlginize teşekkür ederim fakat siz beni net olarak anlamamışsınız benim kastettiğim inline-css/inline-js google botları tarafından sevilmediği ve önerilmediği için sorma ihtiyacı duydum.Riga adlı üyeden alıntı: mesajı görüntüle
Bahsettiğimiz şekilde tabiiki yapabilirdim veya --root ile de tanımlayabilirdim fakat benim istediğim belirli renk şemasıyla değil Colorpicker ile seçilen renk kodunun direkt etki etmesi içindir.
Amacım birden fazla renkli bir tema yapmak değil kullanıcı seçimli (Colorpicker ile) bir tema geliştirmek(örnek uygulama) - 23-04-2022, 01:05:51Tamam aslında yukarıda verdiğim örnekler bunların bir parçasıydı.ismail03 adlı üyeden alıntı: mesajı görüntüle
Renk Seçimlerin kullanıcı taraflı olacağını düşünürsek.
İçeriğin bir adet Box ( Kutu ) ve Kutunun içerisindeki bir yazı içeriğinden oluştuğunu düşünelim.
custom.css dosyasını kullanıcının seçimine göre düzenlemeniz gerekir.
Ancak default bir css dosyanız olacak, kullanıcı seçimleri yapmazsa. ( Opsiyonel )
default.css
.box { width:100px; height:100px; background:#000000; } .box_p { color:#ffffff; }
Kullanıcı seçimlerini yapacak ve işleyecek sayfa
custom.php
<form action="#" method="post"> <fieldset> <legend>Kutu Stil Ayarları:</legend> <label>Genişlik:</label> <input type="text" name="customs[class][box][width]" value="100px"><br><br> <label>Yükseklik:</label> <input type="text" name="customs[class][box][height]" value="100px"><br><br> <label>Arkaplan Renk:</label> <input type="color" name="customs[class][box][background-color]"><br><br> <label>Yazı Renk:</label> <input type="color" name="customs[class][box_p][color]"><br><br> <input type="submit" value="Güncelle"> </fieldset> </form> <!-- Kullanım Örneği customs[selector_type][selector_name][attribute] // # (id) için Örnek: customs[id][box][background-color] --> <?php if($_POST) { $custom_css = ''; foreach($_POST['customs'] as $selector => $names) { $available_selectors = array('id','class'); $replace_selectors = array('#','.'); $selector = str_replace($available_selectors,$replace_selectors,$selector); foreach($names as $name => $attributes) { $completed_attributes = ''; foreach($attributes as $attribute => $value) { $completed_attributes.=''.$attribute.': '.$value.';'; } $custom_css.=''.$selector.''.$name.' { '.$completed_attributes.' }'.PHP_EOL; } } /* Örnek Çıktı şöyle birşey olacaktır: .box { width: 100px;height: 100px;background-color: #000000; } .box_p { color: #ffffff; } */ file_put_contents('custom.css',$custom_css); } ?>
Site sayfası index.php ( Örnek )
Zamanı bastırmamızın nedeni yapılan değişikliklerden sonra cachede kalmaması.
<!DOCTYPE html> <html lang="tr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Default</title> <link rel="stylesheet" href="default.css"> <link rel="stylesheet" href="custom.css?v=<?php echo time(); ?>"> </head> <body> <div class="box"><p class="box_p">Merhaba hoşgeldin.</p></div> </body> </html>
Bu yapıyla ister renk seçimi yaptırın ister genişlik, yükseklik v.b örnekleri geliştirmek size kalmış. Ben işi biraz daha geniş düşünerek hızlı şekilde yazdım kodları. Ben sizin için en iyi örnekleri verdim.
Umarım başka arkadaşlarında işine yarar.

