ボタンまたはリンクをクリックしてサイトのスタイルシートを変更できるように、サイトの管理者用のインターフェイスを開発しようとしています。
Cookie に変更を適用することでスタイルシートを変更できることは知っていますが、それはコンピューターごとです。スタイルシートを永続的に変更できるようにする必要があるため、すべてのユーザーに対して変更され、それを変更できるのは管理者だけです。これを行う方法はありますか?私はまだコードを持っていません。
データベースを使用することに満足している場合は、スタイルシートの URL を格納するsettingsなどのテーブルを単純に作成し、ページで次の形式で何かを使用できます。
<link rel="stylesheet" type="text/css" href="<?= $stylesheet ?>">
$stylesheet
データベースへのクエリの結果はどこにありますか。
テーブルの場合、 という名前の列と という名前のkey
列value
があり、スタイルシートの行にはそれぞれ と という値がstylesheet_url
ありhttp://example.com/style.css
ます。
または、管理者が CSS ファイルを直接編集し、PHP を使用して変更をファイルに保存できるようにすることもできます。これにより、データベースが不要になり、パフォーマンスが向上する可能性があります。簡単に検索すると、これがいかに簡単かがわかります。
以下は、チャット ルーム用のテンプレートを使用する、PHP で生成されたスタイルシートです。自分の目的に合わせて調整できる例として投稿しているだけです。コンテンツ タイプを指定するヘッダーに注意してください。
header('Content-type: text/css');
//I forgot what v stands for, but it's an array of user defined styles.
$v['uid'] = 'u'.$id;
$v['msg_bg'] = 'FFFFFF';//background color of message window
$v['user_c'] = '0114A0';//color of user's name
$v['action_c'] = '990000';//color of enter/exit messages
$v['other_c'] = '270049';//color of the names of others
$v['text_c'] = '000000';//general text color
$v['font_s'] = '16';
$v[''] = '';
$v[''] = '';
$css = <<<EOTAAA
#userwindow{
margin: 0 0 20px 20px;
}
#messagewindow, #userwindow{
background-color: #%msg_bg%;
font-size: %font_s%px;
font-family: Tahoma, cx-bair, Arial, sans-serif;
}
#messagewindow p {
color: #%text_c%;
font-family: Tahoma, cx-bair, Arial, sans-serif;
}
#messagewindow p b, #userwindow p{
color: #%other_c%;
}
#messagewindow p.self b, p#%uid%{
color: #%user_c%;
}
#messagewindow p span{
color: #%action_c%;
text-transform: uppercase;
font-size: 12px;
}
EOTAAA;
//custom font filenames
$cx[] = "bair";
$cx[] = "century_gb";
$cx[] = "oakwood";
$cx[] = "plantc";
$cx[] = "salzburg-bold";
$cx[] = "sanskrit";
$cx[] = "timess";
$font_css = '';
$font_template = <<<EOTAAB
@font-face {
font-family: cx-%fontname%;
src: url("%url%fonts/%fontname%.eot");
}
@font-face {
font-family: cx-%fontname%;
src: url("%url%fonts/%fontname%.ttf");
}
EOTAAB;
foreach ($cx as $key => $value){
$font_css .= str_replace(array('%fontname%', '%url%'), array($value, base_url()), $font_template);
}
foreach ($v as $key => $value){
$search[] = '%'.$key.'%';
$replace[] = $value;
}
echo str_replace($search, $replace, $css).$font_css;
すでにページにスタイル シートがあり、ページ タイプごとに適切なグループでセレクタ (ID とクラス) のアーキテクチャを正しく設計します。
これにより、JavaScript (オプション) に集中しやすくなります。たとえば、ドロップダウン ボックスを使用して DOM の特定のセクションをリロードし、ページを更新することなく ID とクラスを変更する場合です。
また、PHP も必要ありません。PHP にバックエンド データを処理させ、このプロセスでスタイリングを制御します。
BLOBを介してデータベースに保存することは可能
です。