¥Ø«e¦³ ¦ì°ÑÆ[ªÌ³X°Ý¦¹¯¸¡Asince 2006/07/12 ¡A google µû¦ô¤§ºô­¶­«­n©Ê¬° : Search Engine Optimization
§K¶Oµù¥U ©¯¹B¯ó¬Ûï blog¥Ó½Ð µuºô§} ¸U¦~¾ä bbs²á¤Ñ«Ç±Ð¾Ç webbbs ©_·Q¦è¥d ªð¦^­º­¶
¥Ø«e½u¤W: 2
ftp¤½§i
ºî¦X¤½§i
¬Û綠§i
bbs¤½§i
blog¤½§i
¦n±d³ø³ø
©¯¹B¯ó¤§Åʺô¸ôªA°È / [±Ð¾Ç] cpg©x¤èF&Q
[±Ð¾Ç] cpg©x¤èF&Q
2006-07-14          «ö³o¸Ì: 19660
[±Ð¾Ç] cpg©x¤èF&Q
{©x¤è} CPG FAQ
« ©ó: ¤Q¤G¤ë 28, 2004, 06:49:13 pm »
¤Þ¥Î¦^ÂÐ

³o¬O½Ķ©x¤è´£¨Ñªº FAQ, ½ÐªáÂI®É¶¡¬Ý¬Ý, ©Î¹J¨ì°ÝÃD®É¨Ó³o§ä§ä¬Ý¦³¨S¦³¸Ñ¨M¤èªk.

¦w¸Ë

¦w¸Ë CPG ©Ò»Ý°t³Æ
  • ¥ô¦ó Web ¦øªA¾¹, «ØÄ³¨Ï¥Î Apache (CPG ¥i¥Î©ó Apache, IIS, Roxen, WebServer, Abyss, JanaServer)
  • PHP 4.1.0 ©Î¥H¤W
  • GD lib ©Î ImageMagick
  • MySQL 3.23.23 ©Î¥H¤W («ØÄ³¨Ï¥Î 4.x). ½Ð°Ï¤À Client API ª©¥» (¥i¦b phpinfo ¬Ý¨ì) ¸ò MySQL ª©¥»!


GD ¬O¤°»ò, ­n«ç¼Ë¤~¯à¥Î?
GD ¬O¤@ºØ¹Ï¤ù½s¿èªºÂX¥R¥\¯à, ¥¦¥i¥HÅý PHP »s§@¹Ï¤ù. ±z¥i¥H¨ì www.boutel.com/gd/ ¤U¸ü. ¨Ì±zªº (L)Unix ¥D¾÷³]©wªº±¡ªp¦Ó©w, ±z¥i¯à­n­«·s½sĶ PHP ©Î Apache. ¸û·sªº PHP ª©¥»¤w¥]¬A GD - ®M¥óªºª©¥» (package). ³q±` Windows ¥D¾÷¥u»Ý­n¦b php.ini Àɮ׸̥´¶} GD ¤ä´©. ·íµM¦pªG¥D¾÷¬O§Aªº¸Ü, ¦pªG¤£¬O, °Ý±zªººÞ²z­û¬O§_¦³¤ä´© GD, ¦pªG¨S¦³¤]¤£¥´ºâ¤ä´©¨º³Ì¦n¬O´«¤H°µ°µ¬Ý).


ImageMagick ¬O¤°»ò, ­n«ç¼Ë¤~¯à¥Î?
ImageMagick ¬O¤@ºØ¹Ï¤ù½s¿èªºªºµ{¦¡. §A¥i¥H¨ì imagemagick.org ¤U¸ü. ©x¤è´£¨Ñ¤F Unix, Linux, Mac ©M Windows ªº°õ¦æµ{¦¡, ©Mµ¹¨ä¥L§@·~¨t²Îªº½sĶ®M¥ó. §A¥u¥i¥H¦w¸Ë ImageMagick ¦pªG¥D¾÷¬O§A¦Û¤vªº.


­n«ç»òª¾¹D§Úªº PHP ¬O¤°»òª©¥»?
·s«Ø¤@­Ó info.php ªºÀÉ®×, ¿é¤J <?php phpinfo(); ?>, Àx¦s¤§«á¤W¶Ç¨ì§Aªº¥D¾÷¤º. µM«á°õ¦æ (http://yourwebsite.com/info.php). ¦bºô­¶ªº³Ì¤W¤è§A·|¬Ý¨ì "PHP Version X.Y.Z", ¨º´N¬O§Aªº PHP ª©¥». ½Ðª`·N§â info.php ¯d¦b§Aªººô¯¸¤º¥i¯à·|¦³¦w¥þ©Êªº°ÝÃD, ©Ò¥H¥Î§¹¤§«á§â¥L§R°£, ©Î²¾¨ì»Ý±K½Xµn¤Jªººô§}.
CPG 1.3.0 ©Î¥H¤W¦³´£¨Ñ phpinfo, ¦b CPG ªºÀÉ®×§¨¸Ì (¦ý¬O§A¥²¶·¬OºÞ²z­û¤~¯à¬Ýªº¨ì) - µM«á¨ì http://yourwebsite.com/cpg_dir/phpinfo.php.


­n«ç»òª¾¹D§Úªº GD ¬O¤°»òª©¥»
·Ó¤W­±ªº¤èªk«Ø¥ß¤@­Ó phpinfo ÀÉ®×. ¦b phpinfo ªººô­¶¸Ì§ä gd §A·|¬Ý¨ì¤U­±³o­Ó:

½Ðª`·N§â info.php ¯d¦b§Aªººô¯¸¤º¥i¯à·|¦³¦w¥þ©Êªº°ÝÃD, ©Ò¥H¥Î§¹¤§«á§â¥L§R°£, ©Î²¾¨ì»Ý±K½Xµn¤Jªººô§}.
CPG 1.3.0 ©Î¥H¤W¦³´£¨Ñ phpinfo, ¦b CPG ªºÀÉ®×§¨¸Ì (¦ý¬O§A¥²¶·¬OºÞ²z­û¤~¯à¬Ýªº¨ì) - µM«á¨ì http://yourwebsite.com/cpg_dir/phpinfo.php.


GD1 ¸ò GD2 ªº¤£¦P
GD2 »s§@ªº¹Ï¤ù¤ñ¸û²M·¡. ½Ð¬Ý¤U­±ªº¹Ï¤ù:
GD 1.8.4: GD 2.0.1:
ImageCreate ImageCreateTrueColor
ImageCopyResized ImageCopyResampled
128x96 pixels 128x96 pixels
¦b GD ¤É¯Å¤§«e©Ò¤W¶Çªº¹Ï¤ù¤£·|¦]¦¹§ïÅÜ, ¥u¦³·s¤W¶Çªº¹Ï¤ù¤~·|¤ñ¸û²M·¡. §A¤£¯à¤É¯Å©Î¦w¸Ë GD °£«D§A¬O¥Î¦Û¤vªº¥D¾÷.


CPG ¦w¸Ë¨BÆJ
¸ò¦w¸Ë¤â¥U¸Ì­±ªº¨BÆJ¬Û¦P:
  • ¤U¸ü CPG ¥Dµ{¦¡
  • ¸ÑÀ£ÁY
  • ¤W¶Ç¥þ³¡ÀÉ®×
  • §ïÅÜ "include" ©M "albums" ªºÅv­­¨ì 777 ©Î 755
  • ¨ì http://yourwebsite.com/cpg_dir/install.php µM«á¿é¤J¥D¾÷¸ê®Æ
  • ¦w¸Ë§¹¦¨¤§«á±N install.php §R°£
  • ¨ì http://yourwebsite.com/cpg_dir/ µM«áµn¤JºÞ²z±b¸¹
  • ¶}©l³]©w CPG
  • ¦b§Aªººô§}¥[¤W CPG ªº³sµ²


¦p¦ó¦w¸Ë ImageMagick ©Î GD?
§A¥i¥H¦w¸Ë ImageMagick ©Î GD ¦pªG§A¥Îªº¬O¦Û¤vªº¥D¾÷. ¦pªG¤£¬O½Ð¥s§Aªº¥D¾÷ºÞ²z­ûÀ°§A¦w¸Ë.


I'm short on webspace. Is there a "minimum install"?
...skipped...



¤W¶Ç

¤@¯ëºÃÃø±Æ¸Ñ
·í¶i¦æºÃÃø±Æ¸Ñªº°Ê§@®É, «ØÄ³§A¦b¸s²Õ¸Ìªº '¤W¶Ç®æ¦¡³]©w' ³]©w¬° '¤W¶Ç¤@­ÓÀÉ®×', µM«á¶}±Ò³]©w¸Ìªº '±Ò°Ê°£¿ù¼Ò¦¡'. ³o¼Ë¥i¥H¥ý±Æ°£¤@¨Ç¿ù»~.

²Ä¤@½Ð¥ýÀˬd /albums, /albums/userpics, ©M /albums/edit ÀÉ®×§¨ªºÅv­­. Åv­­¥²¶·¬O 777 ©Î 755. ¦pªG§A¤£ª¾¹D«ç»ò³]©w Unix ¥D¾÷ªºÅv­­, ½Ð¥Î Google ´M§äÅv­­ªº±Ð¾Ç. Windows ¥D¾÷¤]¦³¬Û¦PªºÅv­­³]©w, ³q±`¥Î FTP ³nÅé´N¥i¥H³]©w.

ÀɮפW¶Ç¬O¥Î PHP ªº³]©w¨Ó±±¨îªº.

µM«áÀˬd:
  • max_input_time - 60¬í¬OÀɮפW¶Çªº­­¨î, ¤]¬O PHP ªº¹w³]­È.
    ¤W¶Ç­­¨î¥]¬A¤W¶Çªº®É¶¡, ¦pªG¤W¶Ç¶W¹L³o­Ó­­¨î, ÂsÄý¾¹´N¤£·|¦³¦^À³, Àɮפ]µLªk¤W¶Ç. ¸Ñ¨M¿ìªk¬O¤W¶Ç¸û¤pªºÀɮשΥμeÀW¤W¶Ç. ³Ì¦nªº¿ìªk¬O±N¤W¶Çªº®É¶¡­­¨î¼W¥[°ª©ó60¬í.
  • upload_max_filesize - 2MB ¬O¨C­ÓÀɮתº­­¨î, ¤]¬O PHP ªº¹w³]­È.
  • post_max_size - 8MB ¬O post ªº¦^À³­­¨î, ¤]¬O PHP ªº¹w³]­È.
  • memory_limit - 8MB ¬O°O¾ÐÅ骺­­¨î, ¤]¬O PHP ªº¹w³]­È
  • LimitRequestBody - 512KB ¬O PHP ªº¹w³]­È. ³q±` upload_max_filesize < post_max_size < memory_limit ¤~¯à¦¨¥\¤W¶ÇÀÉ®×. CPG ·|ĵ§i§A¦pªGÀɮפj¤p¤j©ó upload_max_size, ¦ý¬OµLªk§i¶D§A¦pªG¥þ³¡ÀÉ®×¶W¹L post ­­¨î©Î°O¾Ð­­¨î.
  • file_uploads - ³o­Ó¨M©w PHP ¬O§_¤¹³\ÀɮפW¶Ç, ¥²¶·¬O 'On'.
  • upload_tmp_dir - ³o­Ó¨M©w PHP ¼È®ÉÀx¦sÀɮתºÀÉ®×§¨.

³q±`¤W¶Çªº°ÝÃD³£¬O¦]¬° open_basedir ªºÄµ§i. ¦pªG¬O, ¨º¬O¦]¬°§Aªº¥D¾÷ºÞ²z­û¥u¤¹³\ PHP ¤W¶ÇÀɮרì¬Y­ÓÀÉ®×§¨. ¦pªG¦b open_basedir ªº­­¨î¤º¤£³]©w¤@­Ó¼È®ÉªºÀÉ®×§¨, PHP ·|¥Î§@·~¨t²Îªº¼È®ÉÀÉ®×§¨, ³o¼Ë¤W¶Ç¥\¯à´N·|¥Î open_basedir ªº½w½Ä­­¨î.

¤@¨Ç CPG ¨Ï¥Îªº¤W¶Ç¤èªk:
CPG ´£¨Ñªº¦hÀɤW¶Ç¥\¯à¬O¹ï¤pÀɮ׳]­pªº, ­­¨î¬O10­ÓÀÉ®×. ©Ò¥H¨Ã¤£¾A¦X¤W¶Ç¤jªºÀɮצpªG§A¤£¯à±±¨î§Aªº php.ini ³]©w.
¦pªG§A·Q¤@¦¸¤W¶ÇªºÀɮצh©ó10­Ó, «ØÄ³§A¥Î '¾ã§å¥[¤J¹Ï¤ù' ¥\¯à©ÎªÌ¬O XP Publisher ³nÅé. ¨âºØ¤èªk¦³¥¦ªº¦n³B©MÃa³B.
'¾ã§å¥[¤J¹Ï¤ù' ¤ñ¸û§Ö, ¦ý¬O¤ñ¸û±`µo¥Í¶W¹L­­¨îªº°ÝÃD. XP Publisher ¤ñ¸ûºC, ¦ý¬O¹ï¥D¾÷ªº­t²ü¸û¤Ö. ÁÙ¦³¥iÁ×§K¤@¨Ç¿ù»~ªº php.ini ³]©w¦]¬°¥¦¬O¥Î³æ¤@ªº post ­n¨D.



¿ù»~°T®§

¦w¸Ë®É¹J¨ì¤F Fatal error: Call to undefined function: imagecreateformjpeg() in /include/picmgmt.inc.php on line 168.
³o­Ó°T®§ªí¥Ü¦w¸Ëªº PHP ¤£¤ä´© GD.
¦pªG§A¦³ ImageMagick §A¥i¥H¥Î¨º­Ó¥N´À, ©Î½Ð§Aªº¥D¾÷ºÞ²z­ûÀ°§A½sĶ GD ¤ä´© (GD ¤w¥]§t¦b·sªº PHP ª©¥»). CPG ¥²¶·­n¦³ GD ©Î ImageMagick ¤~¯à¨Ï¥Î.


¦w¸Ë®É¹J¨ì¤F Warning: mkdir(dummy) [function.mkdir]: Permission denied in /your/path/to/coppermine/install.php on line 126.
«ü¥O½X¥²¶·¦³¥iŪ¼g©M§R°£ªºÅv­­.
  • *nix/linux ¥D¾÷:
    ³]©w CPG ÀÉ®×§¨ (©M¤lÀÉ®×§¨) 755 (rwxr-xr-x) ªºÅv­­. Åv­­ªº±Ð¾Ç½Ð¨ìºô¸ô´M§ä.
  • Windows/IIS:
    Àˬd°õ¦æ«ü¥O½Xªº¥Î¤á (³q±`¬O IUSR) ¬O§_¦³Åª/¼g/§ïÅÜ/§R°£ CPG ÀÉ®×§¨ªºÅv­­. Windows ¥D¾÷ªºÅv­­±Ð¾Ç½Ð¨ìºô¸ô´M§ä.
  • Windows/Apache:
    Àˬd¨Ï¥Î Apahce ªº¥Î¤á¬O§_¦³¥¿½TªºÅv­­


¥X²{¿ù»~ "Warning: Empty Delimiter in search.inc.php line 33".
½s¿èÀÉ®× include/search.inc.php
Find:
µ{¦¡½X:
$charset = $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'];
Replace with:
µ{¦¡½X:
$charset = $CONFIG['charset'] == 'language file' ? $GLOBALS['lang_charset'] : $CONFIG['charset'];


¦w¸Ë®É¥X²{ "Zero Sized Reply".
¤§«e¦³¨Ç·|­û¦b¦w¸Ë CPG ®É¹J¨ì¤U­±ªº¿ù»~:
µ{¦¡½X:
While trying to retrieve the URL: http://yoursite.com/coppermine/install.php
The system returned:
Zero Sized Reply
Reason:
The remote server did not reply any data for this request.
Please try again later
¨ì¥Ø«e¬°¤îÁÙ¥¼§ä¨ì¸Ñ¨Mªº¿ìªk, ¦pªG§A¹J¨ì³o­Ó¿ù»~, «Ü©êºp§A¤£¯à¥Î CPG. ¦pªG§Aª¾¹D¬°¤°»ò·|¥X²{³o­Ó¿ù»~, ©Î¬O¦³¸Ñ¨Mªº¿ìªk, ½Ð¨ì©x¤èªº½×¾Â©Î¦b³o³qª¾ª©¥D.


¥X²{¿ù»~ "Warning: Undefined index: SCRIPT_NAME in /www.yourwebsite.com/include/init.inc.php on line 90."
¥´¶} include/init.inc.php:
Find:
µ{¦¡½X:
$PHP_SELF = isset($HTTP_SERVER_VARS['REDIRECT_URL']) ? $HTTP_SERVER_VARS['REDIRECT_URL'] : $HTTP_SERVER_VARS['SCRIPT_NAME'];
Replace with:
µ{¦¡½X:
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];


·í·|­û¤W¶Ç·Ó¤ù®É¥X²{¿ù»~°T®§ "Impossible to move somepic.jpg to albums/userpics/ | Warning: move_uploaded_file(/tmp/phpezCYKr) [funciton.move-uploaded-file]: failed to create stream: Operation not permitted."
¦pªG¹J¨ì³o­Ó°ÝÃD, §A¥²¶·³qª¾¥D¾÷ªººÞ²z­û. §A¨S¿ìªk§ïÅܼȮÉÀÉ®×§¨ªº¦ì§} (¥²¶·¦b php.ini ¸Ì§ï).
¦pªG§Aªº¥D¾÷¦³ open_basedir ªº­­¨î, ¼È®ÉÀÉ®×§¨ªº¦ì§}¥²¶·¬O§A¥i¥HŪ¼gªº¦ì§}.


·í¤W¶Ç®É¥X²{¿ù»~°T®§ "Warning: Undefined variable: HTTP_POST_VARS in include/init.inc.php on line 43."
Àˬd§Aªº PHP ª©¥»¬O§_¥i¦w¸Ë CPG. ¦pªGª©¥»¬O°ª©ó 4.1.0 ¨º§Aªº¥D¾÷¥i¯à³]©w¿ù»~. ¦pªG¥D¾÷¤£¬O§Aªº, §A¥i¥H¥Î¤U­±ªº¤èªk (¦³°ÝÃD¦Û­t):
¥´¶} init.inc.php:
Find:
µ{¦¡½X:
$PHP_SELF = isset($HTTP_SERVER_VARS['REDIRECT_URL']) ? $HTTP_SERVER_VARS['REDIRECT_URL'] : $HTTP_SERVER_VARS['SCRIPT_NAME'];
Replace with:
µ{¦¡½X:
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];



³]©w / ºÞ²z

­n¦p¦ó¦b¬Û虜²Ð©Î¬O¹Ï¤ù¼ÐÃD¤º¥[¤W³sµ²?
CPG ¥i¥H¦b¬Û虜²Ð©M¹Ï¤ù¤¶²Ð¤º¨Ï¥Î¤U­±ªº BBCode:
µ{¦¡½X:
[b]bold text[/b]
[i]italic[/i]
[url=http://www.foo.com/bar.html]URL text[/url]
[email]user@domain.tld[/email]


§Ú¤£·Q¦b­º­¶Åã¥Ü³Ì·s¤W¶Çªº¹Ï¤ù, ­n«ç¼Ë¤~¯à½s¿è­º­¶Åã¥ÜªºªF¦è©O?
µn¤J¬Û諸ºÞ²z±b¸¹, µM«á¨ìºÞ²z­¶­±.
¦b '¥D­¶ªº¤º®e' §A¥i¥H¿é¤J¤U­±ªºÃöÁä¦r:
  • breadcrumb: ¦b¬Û鷺ªº³sµ²Åã¥Ü¤èªk (¨Ò¦p: "­º­¶ > Ãþ§O > ¤lÃþ§O > ¬Ûï")
  • catlist: Ãþ§O¦Cªí
  • alblist: ¬Ûï¦Cªí
  • random: ÀH¾÷¹Ï¤ù (¦pªG§A¦³«Ü¦h·Ó¤ù, ¦b¥D­¶Åã¥ÜÀH¾÷·Ó¤ù¥i¯à·|­t²ü§Aªº¥D¾÷.)
  • lastup: ³Ì·s¤W¶Ç
  • topn: ¼öªù¹Ï¤ù
  • toprated: ³Ì¦hµû»ù
  • lastcom: ³Ì·s¯d¨¥
  • lasthits: ³Ì«áÆ[¬Ýªº¹Ï¤ù
  • anycontent: ¿é¤J PHP ªº°ÊºA¸ê®Æ, ¸ê®Æ¥²¶·¬O¦b 'anycontent.php' Àɮפº. ¥i¥H¥Î¨Ó¨Ï¥ÎÃþ¦ü¼s§iªº«ü¥O½X(½d¨Ò: catlist/alblist/random,2/lastup,2 ªí¥Ü¦b¥D¤]Åã¥Ü "Ãþ§O¦Cªí, ¬Ûï¦Cªí, ¨â¦æªºÀH¾÷¹Ï¤ù, ¨â¦æªº³Ì«á¤W¶Ç¹Ï¤ù")


­n«ç»ò½s¿è/²¾°£ "Powered by Coppermine"?
CPG ªºª©Åv°T®§¬Oµ´¹ï¤£¯à²¾°£ªº! ³o­Ó¬Ûï¤w¸g§K¶OÅý§A¨Ï¥Î¤F§AÁÙ¨D¤°»ò©O? ¦pªG§A¯uªº·Q­n§ï, Ä´¦p»¡§ïÅÜÃC¦â, ¦r«¬µ¥µ¥, §A¥i¥H§ï¥¦ªº CSS ¼Ë¦¡, themes/yourtheme/style.css. ¦ý¬Oª©Åvªº¦r«¬ÃC¦â¤£¯à¸ò§Aªº­I´ºÃC¦â¬Û¦P.


§Ú·Q­n¶R CPG ªºª©ÅvµM«á²¾°£ "Powered by Coppermine" °T®§
CPG ¬Ûïµ{¦¡¬O¤@­Ó¦Û¥Ñ³nÅé, ¨Ï¥Îªº¬O GNU/GPL ±ÂÅv¦X¬ù. §A¥i¥H½s¿èµ{¦¡½X, ¦ý¬O¤£¯à¥X°â³o­Óµ{¦¡. ©Ò¥H©x¤è¤£·|§â CPG ½æµ¹§Aªº. ¸Ô±¡½Ð¬Ý CPG ¥Ø¿ý¸Ìªº COPYING ÀÉ®×.


§Ú¤£·Q¥Î CPG ´£¨Ñªº¬Y­Ó¥\¯à, ­n«ç»ò²¾°£?
§A¥u»Ý­n²¾°£¥\¯àªº³sµ². ¥´¶} /themes/yourtheme/theme.php µM«á§ä§A­n²¾°£ªº¥\¯à, µM«á¥[¤W html µù¸Ñ.
¨Ò¦p: §A·Q­n²¾°£ ecard ªº¥\¯à,
Find:
µ{¦¡½X:
<td align="center" valign="middle" class="navmenu" width="48">
<a href="{ECARD_TGT}" title="{ECARD_TITLE}">
<img src="images/ecard.gif" width="16" height="16" border="0" align="absmiddle" alt="{ECARD_TITLE}"></a>
</td>
Replace with:
µ{¦¡½X:
<!--<td align="center" valign="middle" class="navmenu" width="48">
<a href="{ECARD_TGT}" title="{ECARD_TITLE}">
<img src="images/ecard.gif" width="16" height="16" border="0" align="absmiddle" alt="{ECARD_TITLE}"></a>
</td>-->


­n«ç»ò¥[¤W¦Û»sªº¼ÐÃD/µù¸}?
¦pªG§A­n¥[¤WÀRºAªº html ¤º®e¡AÄ´¦p»¡ºô¯¸ logo¡A½s¿è /themes/yourtheme/template.html - µM«á¶i¦æ­×§ï¡A¦ý¬Oª`·N¤£­n§R°£¥ô¦ó¬A¸¹¤ºªº°T®§¡C
¦pªG§A­n¥[¤W°ÊºAªººô­¶ (¹³ php µ{¦¡½X)¡A½s¿è /themes/yourtheme/theme.php¡C
¦pªG§A¥u­n­×§ï¬Û諸ÃC¦â©Î¨ä¥¦ªº¢ë¢û¢û¼Ë¦¡¡A½s¿è /themes/yourtheme/style.css¡C
¦pªG§AÀ´ php ¦Ó¥B·Q­n¥Î php includes¡A¦b /themes/yourtheme/theme.php ¸Ì­±§ä function pageheader µM«á·Ó¤U­±ªº¤èªk­×§ï:
µ{¦¡½X:
function pageheader($section, $meta = '')
{
   global $CONFIG, $THEME_DIR;
   global $template_header, $lang_charset, $lang_text_dir;

   if(empty($custom_header)){
      include('/path/your_file.php');
      static $custom_header = ob_get_contents();
      ob_clean();
   }

   header('P3P: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"');
   user_save_profile();

   $template_vars = array(
      '{LANG_DIR}' => $lang_text_dir,
      '{TITLE}' => $CONFIG['gallery_name'].' - '.$section,
      '{CHARSET}' => $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'],
      '{META}' => $meta,
      '{GAL_NAME}' => $CONFIG['gallery_name'],
      '{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
      '{MAIN_MENU}' => theme_main_menu(),
      '{ADMIN_MENU}' => theme_admin_mode_menu(),
      '{CUSTOM_HEADER}' => $custom_header,
   );

   echo template_eval($template_header, $template_vars);
}
³Ì«á§A»Ý­n¦b template.html Àɮפº¥[¤W {CUSTOM_HEADER}¡C


¸Ó¦p¦ó«Ø¥ß¤@­Ó¬ÛïÅý¤j®a¤W¶Ç¹Ï¤ù?
(°²³]§A¤w¸g«Ø¥ß¤F¦Ü¤Ö¤@­ÓÃþ§O©M¤@­Ó¬Ûï¨Ó¦s©ñ¹Ï¤ù):
  • µn¤JºÞ²z±b¸¹
  • ºÞ²z¼Ò¦¡
  • ¸s²Õ
  • ¦b¸s²Õ "anonymous" ¸Ìµ¹°tÃB©M¤W¶ÇÅv­­
  • ÂI¬Ûï¥Ø¿ý
  • ¿ï¾ÜÃþ§O
  • ÂI¬Ûï®ÇÃ䪺ÄÝ©Ê
  • ±N '³X«È¥i¤W¶Ç¹Ï¤ù' §ï¬° '¬O' µM«á§ó·s
  • ³Ì«á´£¨Ñ¤W¶Çªº³sµ²¨ì¿ï³æ¤º (¥i¥[¦b /themes/yourtheme/theme.php)


¸Ó¦p¦ó³Æ¥÷ CPG ªº¸ê®Æ®w
CPG ¨S¦³¤º«Øªº³Æ¥÷¥\¯à, ¥¼¨Ó¥i¯à·|´£¨Ñ. ¦b¥¼´£¨Ñ«e§A¥i¥H¥Î FTP ±N CPG ¥Ø¿ý³Æ¥÷¨ì§Aªº¹q¸£¸Ì, µM«á¥Î phpMyAdmin ¨Ó³Æ¥÷¸ê®Æ®w.


·íÂI¤¤¯Å¹Ï¤ù®É§¹¾ã¤j¤pªº¹Ï¤ù¤£·|¼u¥X, ¬°¤°»ò?
§A¥i¯à¦b template.html §²¾°£¤F¤£¸Ó²¾°£ªºªF¦è. ¸Ì­±¥²¶·¥]¬A <script type="text/javascript" src="scripts.js"></script>. template.html ¸Ì­±ªº <head> ¼ÐÅÒ¥²¶·¸ò¤U­±¤@¼Ë:
µ{¦¡½X:
<head>
<title>{TITLE}</title>
<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
{META}
<link rel="stylesheet" href="themes/default/style.css" />
<script type="text/javascript" src="scripts.js"></script>
</head>


¹ï¥¼µù¥Uªº¨Ï¥ÎªÌÅã¥ÜÁY¹Ï, ¤£Åã¥Ü§¹¾ã¹Ï¤ù
­×§ï displayimage.php µM«á·Ó¤U­±­×§ï:
´M§ä:
µ{¦¡½X:
/**************************************************************************
* Local functions definition
**************************************************************************/
«e­±¥[¤W:
µ{¦¡½X:
if (!USER_ID) cpg_die(ERROR, 'You need to register to access this page', __FILE__, __LINE__);


­n¦p¦ó¨¾¤î¨ä¥Lºô­¶³sµ²§Úªº¹Ï¤ù?
­n¨¾¤îµs³s§A¥i¥H«Ø¥ß¤@­Ó .htaccess ÀÉ®×, ¦b¬ÛïÀÉ®×§¨¸Ì­±:
µ{¦¡½X:
SetEnvIfNoCase Referer "^http://www.yourdomian.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://yourdomain.com/" locally_linked=1
SetEnvIf Referer "^$" locally_linked=1
<FilesMatch "\.(gif|png|jpe?g)$">
  Order Allow,Deny
  Allow from env=locally_linked
</FilesMatch>
±N www.yourdomain.com §ï¦¨§Aªººô§}. ¤W­±ªº¤èªk¥u¯à¥Î¦b linux/unix ¥D¾÷, ¦pªG¥D¾÷¤¹³\ªº¸Ü.


¦b³]©w­¶­±¤º¤£¯à§ïÅÜ»y¨t?
§A¥i¯à³]©w¤F "¤å¦r½s½X" ¬° UTF-8. ·í¿ï¾Ü UTF-8 ®É, CPG ·|¥HÂsÄý¾¹ªº³]©w¨Ó³]©w§Aªº»y¨t, µM«áÀx¦s¦b cookie ¸Ì­±. ³o·|Âл\§A¦b³]©w­¶­±©Ò¿ïªº»y¨t.
¸Ñ¨M¿ìªk:


­n«ç»òÅý¥¼µù¥Uªº¨Ï¥ÎªÌ¤]¯à¯d¨¥?
  • µn¤JºÞ²z±b¸¹
  • ºÞ²z¼Ò¦¡
  • ¸s²Õ
  • "anonymous" ªº "¤¹³\¶K¥X¯d¨¥" ¿ï "¬O"
¦pªG­n§ïÅܲ{¦³ªº¬Ûï:
  • µn¤JºÞ²z±b¸¹
  • ºÞ²z¼Ò¦¡
  • Ãþ§O¦Cªí¤ºÂI¬Ûï
  • ÂIÄÝ©Ê
  • ¬ÛïÅv­­->³X«È¥iµoªí¯d¨¥ ¿ï "¬O"


¤£¯à¥Î¤W¶Ç¥\¯à¤W¶Ç¹Ï¤ù
¦pªG§A¬Ý¨ìªº¿ù»~°T®§¬O "No picture was uploaded. If you have really selected a picture to upload, check that the server allows file uploads..." ½Ð¥ýÀˬd¥D¾÷ªº http ¤W¶Ç¬O§_¦³°ÝÃD - ¥D¾÷³]©w¦³¥i¯àÃö³¬¤W¶Ç¥\¯à©Î³]©w¿ù»~. ¬Ý§Aªº phpinfo() ªº "file_uploads" ¬O¤£¬O ON, "upload_max_filesize" ¤j©ó 2M ©Î "upload_tmp_dir" ¬O§_¥¿½Tªº¸ê®Æ§¨.


­n¦p¦ó§ïÅÜÃþ§Oªº±Æ§Ç
  • µn¤JºÞ²z±b¸¹
  • ºÞ²z¼Ò¦¡
  • Ãþ§O
  • ÂI¤W©Î¤Uªº½bÀY


¤£¯à¥Î FTP §R°£¬Û¤ù?
³o¤£¬OCPGªº°ÝÃD¡A¬O§A¥D¾÷ªº³]©w¤£¤¹³\§A¥Î FTP §R°£¹Ï¤ù¡C¸ÕµÛ¥ÎCPGªº¤¶­±§R°£¹Ï¤ù¡C
¦pªG¥D¾÷¤ºªºPHP¬O¦w¸Ë©ónobodyªºÅv­­¡A¥ô¦óPHP«Ø¥ßªºÀÉ®×´N·|¦³nobodyªºÅv­­¡C³o­Ó¨S¦³¿ìªk§ïÅÜ¡C


¬°¤°»ò§Ú¤£¯à¤W¶Ç¤j«¬¹Ï¤ù¡H
¹Ï¤ùªº¤W¶Ç­­¨î¬O­­¨î©ó«Ü¦h¦a¤è¡A¦pªG§A¤£¯à¤W¶Ç¹Ï¤ù¡A½ÐÀˬd¤U­±ªº³]©w¡G
  • ½T©w¥D¾÷ÁÙ¦³ÃB¥~ªºªÅ¶¡ (°Oªº¥²¶·®e³\¤W¶Çªº¹Ï¤ù¡A¤¤¯Å¹Ï¤ù¡A©MÁY¹Ï)
  • Àˬd¸s²Õªº¤W¶Ç°tÃB
  • ÂsÄý¾¹¤W¶Ç¹O®É¡A¯S§O¬O IE¡C¦pªG§Aªº¹Ï¤ù¤W¶Ç¤Ó¤[¥i¯à·|¥X²{¹O®Éªº¿ù»~¡C
  • PHP ¤º¥i¥H³]©w¤W¶Ç¥\¯à¡C¦pªG§Aªº¥D¾÷¤£¬O¦Û¤vªº¡A½Ð³qª¾§AªººÞ²z­û¡C¦pªG¬O¦Û¤vªº½ÐÀˬd php.ini ¤ºªº LimitRequestBody - ³o¬O¥Î¨Ó­­¨î php/html ¥i¤W¶ÇªºÀɮפj¤p¡C


¬°¤°»ò§Ú¤£¯àµn¤J CPG¡H
³o¥i¯à¬O cookie ªº°ÝÃD¡CIE ¥i¥HÅý§A³]©w cookie¡A½ÐÀˬd¬O§_¦³»~¡C©Î¬OÀˬd¥i¯à§«Ãª cookie ªº³nÅé¡A¹³¨¾¬r³nÅé¡A¨¾¤õÀðµ¥µ¥¡C


­n«ç»ò²¾°Ê¬Ûï¨ì§OªºÃþ§O¡H
  • µn¤JºÞ²z±b¸¹
  • ÂIÃþ§O
  • ÂI­n²¾°Êªº¬Û諸ÄÝ©Ê
  • ¦b¬Ûï®Çªº¤U©Ô¦¡¿ï³æ¥i¥H¿ï­n²¾°Ê¨ìªºÃþ§O
  • ÂI§ó·s


­n«ç»ò±Æ§Ç¬Ûï¡H
¬Û諸±Æ§Ç¬O¥H«Ø¥ßªº¤é´Á¨Ó­qªº¡A¦pªG­n§ïÅÜ¥i¥H¥Î¤U­±ªº¤èªk¡G
  • µn¤JºÞ²z±b¸¹
  • ºÞ²z¼Ò¦¡
  • ¬Ûï
  • ¿ï¾ÜÃþ§O
  • ÂI¬Ûï¤@¤U
  • ¥Î¤W¸ò¤Uªº¤p¹Ï¥Ü¨Ó§ïÅܱƧÇ
  • ³Ì«á§ïÅܳ]©w


§Ú¤£·Q¥Î¤¤¯Å¹Ï¤ù¡A­n«ç»ò§R°£¡H


CPG ªº¬Ûï©M¥Ø¿ý»¡©ú
·í§A¦b CPG ªº¤¶­±«Ø¥ß¬Ûï®É¡ACPG ¨Ã¤£·|¦b§Aªº¥D¾÷¤º«Ø¥ßÀɮץؿý¡C
¤W¶Çªº¹Ï¤ù¦ì§}§¹¥þ¬O¥H¸ê®Æ®w¨Ó¨M©w¡A¹Ï¤ù¤W¶Ç¨ì§Aªº¥D¾÷«á¤£·|³Q²¾°Ê¡C
¦pªG§A¬O¥Î CPG ªº¤¶­±¤W¶Ç¹Ï¤ù¡ACPG ·|§â¹Ï¤ù©ñ¸m¦b userpics ¥Ø¿ý¡C
¦pªG§A¬O¥Î FTP ¤W¶Ç¹Ï¤ù¡A§A­n¥ý¦b albums ¥Ø¿ý¤U«Ø¥ß¤@­Ó·sªº¥Ø¿ý¡A¦ý¤£¯à¦b userpics ¸Ì­±¡C
§A¥i¥H«Ø¥ß¥ô¦ó¼Æ¶qªº¥Ø¿ý©M¤l¥Ø¿ý¡A¤]¥i¥H¥Î¥ô¦ó¦WºÙ¡C
·í§A¥Î §å¶q¤W¶Ç ªº¥\¯à¡ACPG ·|°Ý§A­n§â¹Ï¤ù©ñ¨ì­þ­Ó¬Ûï¡A¦ý¬O¥D¾÷¤ºªº¹Ï¤ù¦ì§}¤£·|§ïÅÜ¡C



Add-ons / Modifications / Hacks

·í½s¿è¹Ï¤ù®É¡A­n«ç»ò§ïÅÜ¥¦ªº±Æ§Ç¡H
·í§A½s¿è¹Ï¤ù®É¡A¹w³]¬O¥H¦r¥À¨Ó±Æ§Ç¡C¦pªG­n¥Î¤é´Á¨Ó±Æ§Ç¡A½s¿è editpics.php¡G
Find:
µ{¦¡½X:
$result = db_query("SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE aid = '$album_id' ORDER BY filename LIMIT $start, $count");
Replace with:
µ{¦¡½X:
$result = db_query("SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE aid = '$album_id' ORDER BY pid LIMIT $start, $count");


­n¦p¦ó¦b¬Ûï¥kÃäÅã¥Ü¥\¯à¿ï¶µ¡H
·íºô­¶¶}±Ò template.html ®É¡A¥¦·|³Q¤À¬°¨â¥b¡C¥X²{¦b {GALLERY} ¤§«eªº°T®§¬O¨ç¦¡ pageheader ªº¿é¥X¡C
¤§«áªº°T®§¬O pagefooter ¨ç¦¡¡C
¦pªG§Aªº¥\¯à¿ï¶µ¬O¥X²{¦b footer ¸Ì­±¡A½s¿è theme.php¡G
Find:
µ{¦¡½X:
   $template_vars = array(
      '{LANG_DIR}' => $lang_text_dir,
      '{TITLE}' => $CONFIG['gallery_name'].' - '.$section,
      '{CHARSET}' => $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'],
      '{META}' => $meta,
      '{GAL_NAME}' => $CONFIG['gallery_name'],
      '{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
      '{MAIN_MENU}' => theme_main_menu(),
      '{ADMIN_MENU}' => theme_admin_mode_menu()
   );

   echo template_eval($template_header, $template_vars);

Replace with:
µ{¦¡½X:
   $template_vars = array(
      '{LANG_DIR}' => $lang_text_dir,
      '{TITLE}' => $CONFIG['gallery_name'].' - '.$section,
      '{CHARSET}' => $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'],
      '{META}' => $meta,
      '{GAL_NAME}' => $CONFIG['gallery_name'],
      '{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
   );

   echo template_eval($template_header, $template_vars);

Find:
µ{¦¡½X:
echo $template_footer;

Replace with:
µ{¦¡½X:
   $template_vars = array(
      '{MAIN_MENU}' => theme_main_menu(),
      '{ADMIN_MENU}' => theme_admin_mode_menu()
   );

   echo template_eval($template_footer, $template_vars);


­n¦p¦ó±N·|­û¦bµn¤J«áª½±µ±a¨ì¥Lªº¨p¤H¬Ûï¡H
½s¿è login.php
Find:
µ{¦¡½X:
pageheader($lang_login_php['login'],"<META http-equiv=\"refresh\" content=\"3;url=$referer\">");

Add before:
µ{¦¡½X:
$referer = 'index.php?cat='.(FIRST_USER_CAT+$USER_DATA['user_id']);


­n¦p¦óÁ×§K¥¼µn¤Jªº·|­ûÂsÄý¬Ûï¡H
½s¿è displayimage.php¡G
Find:
µ{¦¡½X:
require('include/init.inc.php');

Add after:
µ{¦¡½X:
if (USER_ID){

} else {
{
   $redirect = $redirect . "login.php";
   header("Location: $redirect");

   exit();
        }
}


­n¦p¦ó¦b¹Ï¤ù¸ê°T¸Ì­±Åã¥Ü¤W¶Çªº·|­û¦WºÙ¡H
½s¿è displayimage.php¡G
Find:
µ{¦¡½X:
$info[$lang_picinfo['Filename']] = htmlspecialchars($CURRENT_PIC_DATA['filename']);

Add after:
µ{¦¡½X:
$info[$lang_picinfo['Username']] = htmlspecialchars($CURRENT_PIC_DATA['user_name']);

½s¿è /include/functions.inc.php¡G
¦b function get_pic_date() ¸Ì¡G
Find:
µ{¦¡½X:
if($select_columns != '*') $select_columns .= ', title, caption';

Replace with:
µ{¦¡½X:
if($select_columns != '*') $select_columns .= ', title, caption, user_name';

Find:
µ{¦¡½X:
$result = db_query("SELECT $select_columns from {$CONFIG['TABLE_PICTURES']} WHERE aid='$album' $approved $ALBUM_SET ORDER BY $sort_order $limit");

Replace with:
µ{¦¡½X:
$result = db_query("SELECT $select_columns from {$CONFIG['TABLE_PICTURES']} AS p LEFT JOIN {$CONFIG['TABLE_USERS']} AS u ON u.user_id = p.owner_id WHERE p.aid='$album' $approved $ALBUM_SET ORDER BY $sort_order $limit")

½s¿è /lang/yourlang.php¡G
Find:
µ{¦¡½X:
$lang_picinfo = array(

Add after:
µ{¦¡½X:
'Username' => 'Username',

³Ì«á¦b¸ê®Æ®w°õ¦æ¤U­±ªº¸ê®Æ (¥i¥H¥Î phpMyAdmin)¡G
µ{¦¡½X:
ALTER TABLE 'cpg11d_pictures' ADD INDEX ('owner_id');
§ïÅÜ cpg11d ¦¨§A¦Û¤vªº CPG «e¸m¦r¤¸¡C


­n«ç»ò¦b¦Û­qªºÄæ¦ì¸Ì¤¹³\¥iÂIªº³sµ²¡H
½s¿è displayimage.php¡G
Find:
µ{¦¡½X:
$info[$CONFIG['user_field'.$i.'_name']] = make_clickable($CURRENT_PIC_DATA['user'.$i]);

Replace with:
µ{¦¡½X:
$info[$CONFIG['user_field'.$i.'_name']] = bb_decode($CURRENT_PIC_DATA['user'.$i]);

²{¦b§A¥i¥H¦b¦Û­qÄæ¦ì¸Ì¥Î¤U­±ªº¤èªk¨Ó¿é¤J³sµ²¡G
µ{¦¡½X:
[url]http://example.com[/url]
[url=http://example.com]This is an example[/url]


­n¦p¦ó¥H¦Û­qÄæ¦ì¨Ó±Æ§ÇÁY¹Ï¡H
½s¿è /includes/functions.inc.php¡G
Find:
µ{¦¡½X:
$sort_array = array('na' => 'filename ASC', 'nd' => 'filename DESC', 'da' => 'pid ASC', 'dd' => 'pid DESC');

Replace with:
µ{¦¡½X:

   $sort_array = array(
      'na' => 'filename ASC',
      'nd' => 'filename DESC',
      'da' => 'pid ASC',
      'dd' => 'pid DESC',
      'f1a' => 'user1 ASC',
      'f1d' => 'user1 DESC',
      'f2a' => 'user2 ASC',
      'f2d' => 'user2 DESC',
      'f3a' => 'user3 ASC',
      'f3d' => 'user3 DESC',
      'f4a' => 'user1 ASC',
      'f4d' => 'user1 DESC'
   );

½s¿è /themes/yourtheme/theme.php¡G
Find:
µ{¦¡½X:
   // The sort order options are not available for meta albums
   if ($sort_options){

      $param = array(
         '{ALBUM_NAME}' => $album_name,
         '{AID}' => $aid,
         '{PAGE}' => $page,
         '{NAME}' => $lang_thumb_view['name'],
         '{DATE}' => $lang_thumb_view['date'],
         '{SORT_NA}' => $lang_thumb_view['sort_na'],
         '{SORT_ND}' => $lang_thumb_view['sort_nd'],
         '{SORT_DA}' => $lang_thumb_view['sort_da'],
         '{SORT_DD}' => $lang_thumb_view['sort_dd'],
         );

Replace with:
µ{¦¡½X:
   // The sort order options are not available for meta albums
   if ($sort_options){

      $param = array(
         '{ALBUM_NAME}' => $album_name,
         '{AID}' => $aid,
         '{PAGE}' => $page,
         '{NAME}' => $lang_thumb_view['name'],
         '{DATE}' => $lang_thumb_view['date'],
         '{SORT_NA}' => $lang_thumb_view['sort_na'],
         '{SORT_ND}' => $lang_thumb_view['sort_nd'],
         '{SORT_DA}' => $lang_thumb_view['sort_da'],
         '{SORT_DD}' => $lang_thumb_view['sort_dd'],
         // Exxodus Sorting
         '{FIELD1}' => $CONFIG['user_field1_name'],
         '{FIELD2}' => $CONFIG['user_field2_name'],
         '{FIELD3}' => $CONFIG['user_field3_name'],
         '{FIELD4}' => $CONFIG['user_field4_name'],
         // Exxodus Sorting
         );

Find:
µ{¦¡½X:
$template_thumb_view_title_row

Replace with:
µ{¦¡½X:
// HTML template for title row of the thumbnail view (album title + sort options)
// Exxodus (Adding Sorting by UserField)
$template_thumb_view_title_row = <<<EOT

         <table width="100%" cellpadding="0" cellspacing="0">
         <tr>
            <td width="100%" class="statlink"><h2>{ALBUM_NAME}</h2></td>
            <td><img src="images/spacer.gif" width="1"></td>
            <td class="sortorder_cell">
               <table height="100%" cellpadding="0" cellspacing="0">
               <tr>
                  <td class="sortorder_options">{NAME}</td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=na" title="{SORT_NA}">&+&</a>/</span></td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=nd" title="{SORT_ND}">&-&</a></span></td>
               </tr>
               <tr>
                  <td class="sortorder_options">{DATE}</td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=da" title="{SORT_DA}">&+&</a>/</span></td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=dd" title="{SORT_DD}">&-&</a></span></td>
               </tr>
               </table>
            </td>
            <td><img src="images/spacer.gif" width="10"></td>
            <td class="sortorder_cell">
               <table height="100%" cellpadding="0" cellspacing="0">
               <tr>
                  <td class="sortorder_options">{FIELD1}</td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f1a">&+&</a>/</span></td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f1d">&-&</a></span></td>
               </tr>
               <tr>
                  <td class="sortorder_options">{FIELD2}</td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f2a">&+&</a>/</span></td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f2d">&-&</a></span></td>
               </tr>
               </table>
            </td>
            <td><img src="images/spacer.gif" width="10"></td>
            <td class="sortorder_cell">
               <table height="100%" cellpadding="0" cellspacing="0">
               <tr>
                  <td class="sortorder_options">{FIELD3}</td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f3a">&+&</a>/</span></td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f3d">&-&</a></span></td>
               </tr>
               <tr>
                  <td class="sortorder_options">{FIELD4}</td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f4a">&+&</a>/</span></td>
                  <td class="sortorder_options"><span class="statlink">
                  <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f4d">&-&</a></span></td>
               </tr>
               </table>
            </td>
         </tr>
         </table>

EOT;


­n¦p¦ó¶}±Ò IPTC ªº¤ä´©¡H
½s¿è /includes/picmgmt.inc.php¡G
Find:
µ{¦¡½X:
$imagesize = getimagesize($image);

Replace with:
µ{¦¡½X:
$imagesize = getimagesize($image,&$info);
$iptc = iptcparse($info["APP13"]);
if (is_array($iptc)) {
$caption.=$iptc['2#120'][0];
$title.=$iptc['2#105'][0];
(is_array($iptc['2#025'])) && ($keywords.=implode(" ", $iptc['2#025']));
}
¥¼´ú¸Õ¹L¡A¤]¥i¯à¤£¯à¥Î¡C


­n¦p¦ó¦b "Powered by Coppermine" «e­±¿é¥X¸ê®Æ¡H
½s¿è /themes/yourtheme/theme.php¡G
Find:
µ{¦¡½X:
echo $template_footer

Add before (§A­n¿é¥Xªº¸ê®Æ):
µ{¦¡½X:
print '<span class="footer"><a href="http://www.mylink.com/foo.htm">My Link</a></span>';


¥i¥H§â template.html §ï¦¨ template.php µM«á¥[¤J php µ{¦¡½X¶Ü¡H
¤£¯à¡ACPG ¥Î template.html ¬O¬°¤FÅý½s¿è¯à°÷²³æÂI¡C
template.html ¤£·|¸ò .php ªºÀɮפ@¼Ë¨Ó³B²z¡C
¤]¤£¯à§â php ©ñ¦b template.html ¸Ì­±¡C


­n¦p¦óÁ×§K³X«ÈÀx¦s§Úªº¹Ï¤ù¡H
¦pªG¹Ï¤ù¥X²{¦b³X«ÈªºÂsÄý¾¹¤º¡A¬O¨S¦³¿ìªk§¹¥þÁ×§KÀx¦sªº¡C
¦pªG¯uªº¤£·QÅý¨ä¥L¤HÀx¦s§Aªº¹Ï¤ù¡A³Ì¦nªº¤èªk´N¬O¤£­n©ñ¦bºô¸ô¤W¡A©Î¥Î¤U­±ªº¤èªk¡G
  • ¤W¶Ç¹Ï¤ù«e¥[¤W watermark¡C
  • ¨ì©x¤è½×¾Âªº Watermark hack ª©­±§ä¾A¦X§Aªº watermark ¥\¯à¡C
    °O±o¨º¨Ç¥~±¾¬O¦b³X«ÈÂsÄý¹Ï¤ù®É¥[¤W watermark¡A©Ò¥H¥D¾÷ªº­t²ü¥i¯à·|¥[¤j¡C
  • Á×§K IE Åã¥ÜÀx¦s¹Ï¤ùªº¥\¯à (·í·Æ¹«²¾¨ì¹Ï¤ù¤W®É)¡C
    ½s¿è themes/yourtheme/template.html¡A<head> ¸Ì­±¥[¤W <meta http-equiv="imagetoolbar" content="no" />¡C
  • ©Î¥ÎÁ×§K¥kÁ䪺 javascript¡A³o¨Ç¥i¥H¨ìºô¸ô¤W§ä¡C

¨Ó·½¡Ghttp://coppermine.sourceforge.net/faq.php
³d¥ô½s¿è: segaa
Emailµ¹ªB¤Í ¦C¦L¥»¤å
¦pªG§A·Q¹ï¸Ó¤å³¹µû¤À, ½Ð¥ýµn¤J, ¦pªG§A¤´¥¼µù¥U,½Ð«ö³o¸Ìµù¥U³sµ²µù¥U¦¨¬°¥»¯¸·|­û.
¥­§¡±o¤À 0, ¦@ 0 ¤Hµû¤À
1 2 3 4 5 6 7 8 9 10
Copyright © 2006
©¯¹B¯ó¤§Åʺô¸ôªA°È

All rights reserved.
Powered by: segaa.net