³o¬O½Ķ©x¤è´£¨Ñªº FAQ, ½ÐªáÂI®É¶¡¬Ý¬Ý, ©Î¹J¨ì°ÝÃD®É¨Ó³o§ä§ä¬Ý¦³¨S¦³¸Ñ¨M¤èªk. ¦w¸Ë ¦w¸Ë CPG ©Ò»Ý°t³Æ
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±ªº¹Ï¤ù:
CPG ¦w¸Ë¨BÆJ ¸ò¦w¸Ë¤â¥U¸Ì±ªº¨BÆJ¬Û¦P:
¦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:
³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.
¥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 ¨ì¥Ø«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.The system returned: Zero Sized Reply Reason: The remote server did not reply any data for this request. Please try again later ¥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:
n«ç»ò½s¿è/²¾°£ "Powered by Coppermine"? CPG ªºª©Åv°T®§¬Oµ´¹ï¤£¯à²¾°£ªº! ³oÓ¬Ûï¤w¸g§K¶OÅý§A¨Ï¥Î¤F§AÁÙ¨D¤°»ò©O? ¦pªG§A¯uªº·Qn§ï, Ä´¦p»¡§ïÅÜÃC¦â, ¦r«¬µ¥µ¥, §A¥i¥H§ï¥¦ªº CSS ¼Ë¦¡, themes/yourtheme/style.css. ¦ý¬Oª©Åvªº¦r«¬ÃC¦â¤£¯à¸ò§AªºI´ºÃC¦â¬Û¦P. §Ú·Qn¶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«á§ä§An²¾°£ªº¥\¯à, µM«á¥[¤W html µù¸Ñ. ¨Ò¦p: §A·Qn²¾°£ ecard ªº¥\¯à, Find: µ{¦¡½X:
<td align="center" valign="middle" class="navmenu" width="48"> Replace with:<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> µ{¦¡½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§An¥[¤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§An¥[¤W°ÊºAªººô¶ (¹³ php µ{¦¡½X)¡A½s¿è /themes/yourtheme/theme.php¡C ¦pªG§A¥un×§ï¬Û諸ÃC¦â©Î¨ä¥¦ªº¢ë¢û¢û¼Ë¦¡¡A½s¿è /themes/yourtheme/style.css¡C ¦pªG§AÀ´ php ¦Ó¥B·Qn¥Î php includes¡A¦b /themes/yourtheme/theme.php ¸Ì±§ä function pageheader µM«á·Ó¤U±ªº¤èªk×§ï: µ{¦¡½X:
function pageheader($section, $meta = '') ³Ì«á§A»Ýn¦b template.html Àɮפº¥[¤W {CUSTOM_HEADER}¡C{ 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); } ¸Ó¦p¦ó«Ø¥ß¤@Ó¬ÛïÅý¤j®a¤W¶Ç¹Ï¤ù? (°²³]§A¤w¸g«Ø¥ß¤F¦Ü¤Ö¤@ÓÃþ§O©M¤@Ó¬Ûï¨Ó¦s©ñ¹Ï¤ù):
¸Ó¦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:
/************************************************************************** «e±¥[¤W:* Local functions definition **************************************************************************/ µ{¦¡½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 ±N www.yourdomain.com §ï¦¨§Aªººô§}. ¤W±ªº¤èªk¥u¯à¥Î¦b linux/unix ¥D¾÷, ¦pªG¥D¾÷¤¹³\ªº¸Ü.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> ¦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¨¥?
¤£¯à¥Î¤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ªº±Æ§Ç
¤£¯à¥Î 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
¬°¤°»ò§Ú¤£¯àµ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«ç»ò±Æ§Ç¬Ûï¡H ¬Û諸±Æ§Ç¬O¥H«Ø¥ßªº¤é´Á¨Óqªº¡A¦pªGn§ïÅÜ¥i¥H¥Î¤U±ªº¤èªk¡G
§Ú¤£·Q¥Î¤¤¯Å¹Ï¤ù¡An«ç»ò§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§An¥ý¦b albums ¥Ø¿ý¤U«Ø¥ß¤@Ó·sªº¥Ø¿ý¡A¦ý¤£¯à¦b userpics ¸Ì±¡C §A¥i¥H«Ø¥ß¥ô¦ó¼Æ¶qªº¥Ø¿ý©M¤l¥Ø¿ý¡A¤]¥i¥H¥Î¥ô¦ó¦WºÙ¡C ·í§A¥Î §å¶q¤W¶Ç ªº¥\¯à¡ACPG ·|°Ý§An§â¹Ï¤ù©ñ¨ìþÓ¬Ûï¡A¦ý¬O¥D¾÷¤ºªº¹Ï¤ù¦ì§}¤£·|§ïÅÜ¡C Add-ons / Modifications / Hacks ·í½s¿è¹Ï¤ù®É¡An«ç»ò§ïÅÜ¥¦ªº±Æ§Ç¡H ·í§A½s¿è¹Ï¤ù®É¡A¹w³]¬O¥H¦r¥À¨Ó±Æ§Ç¡C¦pªGn¥Î¤é´Á¨Ó±Æ§Ç¡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¤¸¡Cn«ç»ò¦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); ¥¼´ú¸Õ¹L¡A¤]¥i¯à¤£¯à¥Î¡C$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'])); } n¦p¦ó¦b "Powered by Coppermine" «e±¿é¥X¸ê®Æ¡H ½s¿è /themes/yourtheme/theme.php¡G Find: µ{¦¡½X:
echo $template_footer Add before (§An¿é¥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
¨Ó·½¡Ghttp://coppermine.sourceforge.net/faq.php | |||||||||||||
|
| |||||||||||||






