جوملا 1.0 مشکلات بسیاری در php 5.3.0 دارد که کاربران بسیاری این مشکلات را گزارش نموده اند.
هم اکنون برای وب سایت ها زمان آن رسیده به نسخه های بالاتر به روز رسانی شوند، زیرا نسخه 1.0 جوملا جزو نسخه هایی است که پشتیبانی نمی شود و باگ های بسیاری در آن وجود دارد. برای رویت آخرین نسخه جوملا به سایت رسمی http://joomla.org مراجعه نمایید.
پس از به روز رسانی نسخه php سرور به 5.3 و بالاتر مشکلات فراوانی در سایت جوملا نسخه 1.0 به وجود می آید که برای رفه مشکلات مواردی را در این مقاله برای شما بیان می نمایم. البته باز هم اعلام می نمایم که حتما جوملای خود را به آخرین نسخه به روز رسانی نمایید.
برای سازگاری جوملا 1.0 با php 5.3 موارد زیر را می بایست در سایت انجام دهید
در صورتی که مطالب در اکثر صفحات سایت نمایش داده نمی شود فایل Function.php موجود در آدرس /public_html/includes/Cache/Lite باز نموده.
جا گذاری نمایید:
$arguments = func_get_args();
با
$arguments = func_get_args();
$numargs = func_num_args();
for($i=1; $i < $numargs; $i++){
$arguments[$i] = &$arguments[$i];
}
برای رفع مشکل تماس با ما جوملا VCARD.CLASS.PHP ERROR کامپوننت COM_CONTACT نمایش به صورت سفید
برای رفع مشکل کامپوننت com_contact در صورتی که در سایت صفحه تماس با ما به صورت سفید نمایش داده می شود و در کنترل پنل خطای زیر را در تماس با ما مشاهده می نمایید:
Fatal error: Cannot redeclare quoted_printable_encode() in includes/vcard.class.php on line 74
فایل در آدرس includes/vcard.class.php را باز نموده و در خط 36 آن تابع quoted_printable_encode را بیابید. خطای اعلام شده تکرار تعریف این تابع می باشد برای جلوگیری از این اتفاق از تابع function_exists برای بررسی اینکه تابع قبلا تعریف شده و یا خیر استفاده نمایید.
if(!function_exists("quoted_printable_encode")) { // این بخش اضافه شود
function quoted_printable_encode($input, $line_max=76) {
/* ... */
}
} // این بخش اضافه شود
زمان جوملا
تغییر جدیدی که در php 5.3 به وجود آمده نحوه تعریف زمان می باشد.
بهترین روشی که برای این مورد پیشنهاد می نمایم استفاده از .htaccess جهت تعریف زمان پیش فرض می باشد. کد زیر را به htaccess سایت خود اضافه نمایید:
# set the server timezone
SetEnv TZ Australia/Victoria
DEPRECATED: FUNCTION EREGI() IS DEPRECATED IN INCLUDES/SEF.PHP ON LINE 533
در نسخه های جدید php علکرد تابع eregi با استفاده از تابع preg_match می باشد. بنابراین می بایست بخش هایی از سایت که از این مورد استفاده شده اصلاح گردد.
برای رفع مشکل تغییرات زیر را در فایل انجام دهید:
Line 370:
WAS:
if ($juri != "" && $juri != "/" && !eregi( "index\.php", $_SERVER["REQUEST_URI"] ) && !eregi( "index2\.php", $_SERVER["REQUEST_URI"] ) && !eregi( "/\?", $_SERVER["REQUEST_URI"] ) && $_SERVER["QUERY_STRING"] == "" ) {
BECOMES:
if ($juri != "" && $juri != "/" && !preg_match( "index\.php/i", $_SERVER["REQUEST_URI"] ) && !preg_match( "index2\.php/i", $_SERVER["REQUEST_URI"] ) && !preg_match( "/\?/i", $_SERVER["REQUEST_URI"] ) && $_SERVER["QUERY_STRING"] == "" ) {
-----------------------------------------
Line 388:
WAS:
if( $mosConfig_sef && $mosConfig_multilingual_support && $string!="index.php" && !eregi("^(([^:/?#]+):)",$string) && !strcasecmp(substr($string,0,9),"index.php") && !eregi("lang=", $string) ) {
BECOMES:
if( $mosConfig_sef && $mosConfig_multilingual_support && $string!="index.php" && !preg_match("^(([^:/?#]+):)/i",$string) && !strcasecmp(substr($string,0,9),"index.php") && !preg_match("lang=/i", $string) ) {
-----------------------------------------
Line 393:
WAS:
if ($mosConfig_sef && !eregi("^(([^:/?#]+):)",$string) && !strcasecmp(substr($string,0,9),"index.php")) {
BECOMES:
if ($mosConfig_sef && !preg_match("/^(([^\/:?#]+):)/i",$string) && !strcasecmp(substr($string,0,9),"index.php")) {
-----------------------------------------
Line 409:
WAS:
if (preg_match("@^[A-Za-z][A-Za-z0-9:_.-]*$@", $url["fragment"])) {
BECOMES:
if (preg_match("@^[A-Za-z][A-Za-z0-9:_.-]*$@/i", $url["fragment"])) {
-----------------------------------------
Line 533:
WAS:
eregi("^(https?:[\/]+[^\/]+)(.*$)", $mosConfig_live_site, $live_site_parts);
BECOMES:
preg_match("/^(https?:[\/]+[^\/]+)(.*$)/i", $mosConfig_live_site, $live_site_parts);
منبع:http://sitedesign.joomir.com/طراحی-سایت-جوملا/item/766-php-53-joomla-10.html
لیست کل یادداشت های این وبلاگ