[첫화면으로]UseModWiki소스수정/사용자정의CSS

마지막으로 [b]

사용자정의 CSS

## config.pl
## 아래의 변수 추가.
$UserCSS1 = '../wiki.css';                                              # 사용자 스타일시트 설정.
$UserCSS2 = '../jof.css';
$UserCSS3 = '../nosmoke.css';

## wiki.pl
use vars qw(@RcDays @HtmlPairs @HtmlSingle
....
## 변수추가
$UserCSS1 $UserCSS2 $UserCSS3 );
## 변수추가

sub GetHtmlHeader {
....
        ## 적절히 수정.
        if ($StyleSheet ne '') {
                if (!(($UserID eq "113") || ($UserID eq "112") || ($UserID eq "")) && ($UserData{'cssstyle'} == 0)) {
                        $html .= qq(<LINK REL="stylesheet" HREF="$UserCSS1">\n);
                } elsif ($UserData{'cssstyle'} == 1) {
                        $html .= qq(<LINK REL="stylesheet" HREF="$UserCSS2">\n);
                } elsif ($UserData{'cssstyle'} == 2) {
                        $html .= qq(<LINK REL="stylesheet" HREF="$UserCSS3">\n);
                } else {
                        $html .= qq(<LINK REL="stylesheet" HREF="$StyleSheet">\n);
                }
        }
        ## 적절히 수정.
....
}

sub DoEditPrefs {
....
        print '<br>', &GetFormCheck('linkrandom', 0,
                        T('Add "Random Page" link to link bar'));

        ## 사용자 CSS스타일 (적절히 수정.)
        print '<br>', T('CSS Style:'), ' ';
        %csss = (0=>T('PiWD Style'), 1=>T('Jof Style'),
                           2=>T('Nosmoke Style'));
        print $q->popup_menu(-name=>'p_cssstyle',
                         -values=>[0,1,2], -labels=>\%csss,
                         -default=>&GetParam("cssstyle", $UserData{'cssstyle'}));
        ## 사용자 CSS스타일(적절히 수정.)

        print '<br>', $q->submit(-name=>'Save', -value=>T('Save')), "\n";
        print "<hr>\n";
....
}

sub DoUpdatePrefs {
....
        &UpdatePrefNumber("editrows", 1, 1, 999);
        &UpdatePrefNumber("editcols", 1, 1, 999);
        ## CSS (적절히 수정)
        &UpdatePrefNumber("cssstyle", 1, 0, 2);
        ## CSS (적절히 수정)
        print T('Server time:'), ' ', &TimeToText($Now-$TimeZoneOffset), '<br>';
....
}
DoEditPrefs에 하드코딩된부분을 적절히 수정해주면 무난하게 쓸수 있을것 같습니다. 노스모크 같이 경로를 직접 치는거 보다는 저런식으로 하는게 더 나아보일것 같네요.
-- Bab2 2003-2-12 5:55 pm

Notes

푸웃~ 구현은 둘째치고 전 이런 것의 필요성은 전혀 못 느끼고 있었는데.. 아이디어가 샘솟으시네요. ^_^ 이 패치는 제 홈페이지에는 적용할 생각이 없군요. 개인 홈페이지에 테마씩이나... NoSmokePalmWiki, 폐인월드 등에는 딱이겠습니다~ 근데 하루에 몇 시간이 달라 붙으시는 거예요? :-) 아니면 하루 30분이면 패치 하나 나온다..는 걸지도? ^_^
-- Raymundo 2003-2-12 10:32 pm
졸업을 앞두고 놀고있거든요. ^^; (퍼억)
-- Bab2 2003-2-12 11:00 pm
NoSmoke같은 경우는 로그인한 사용자가 자신이 원하는 CSS를 입력해서 볼 수 있습니다. 자기 홈페이지에 CSS를 올려놓고 그걸 사용해서 볼 수도 있죠. 사실 저도 그렇게 고쳐볼까 했으나 CSS 만들기가 구찮아서... -_-
-- 조프 2003-2-13 12:15 am
그래서 얻어와버렸습죠.. 'v'a 사실은 모인처럼 따로 입력폼도 두게 할려고 했는데 귀찮아서 ㅜㅡa
-- Bab2 2003-2-13 12:51 am

sub GetHtmlHeader 함수를 아래와 같이 변경하였습니다.
## 변경
#               if ($UserData{'cssstyle'} == 0) {
                if (!(($UserID eq "113") || ($UserID eq "112") || ($UserID eq "")) && ($UserData{'cssstyle'} == 0)) {
##
해쉬변수 'cssstyle'이 존재하지 않을때(로긴하지 않았을 때) 이 값이 0으로 간주되는 것을, 익명일 때는 바로 $StyleSheet 구문으로 내려가도록 바꿨습니다.
위키위키분류

마지막 편집일: 2007-1-8 12:19 pm (변경사항 [d])
1273 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기