پشتیبانی و فارسی کردن آدرس ها در WHMCS [ SEO Friendly URLs ]
به دلیل عدم پشتیبانی SEO Friendly URLs از زبان فارسی در WHMCS امکان بهینه سازی آدرس ها نیست، همچنین چون به دلیل Core Class و کد بودن آن امکان دسترسی و ادیت آن هم نیست به همین دلیل روشی آماده کردیم که با چند مرحله ساده میتوانید Pattern دلخواه و آدرس بهینه همراه با پشتیبانی از زبان فارسی بسازید.
ابتدا فایل .htaccess را باز کنید و اگر از دستور شرطی <IfModule mod_rewrite.c> استفاده شده بعد از آن (یا قبل از بسته شدن </IfModule>) قرار دهید :
RewriteRule ^post\/(\d+)(\/(.*))?$ announcements.php?id=$1 [L]
پترن ما به شکل زیر خواهد بود :
https://my.mellicloud.com/knowledgebase/3/پشتیبانی و فارسی کردن آدرس ها در WHMCS.html
سپس به پوشه قالب خود مراجعه کرده و فایل announcements.tpl را باز کنید و در المان های HTML آن دنبال تگ های a باشید که آدرس آن ها معمولا به شکل های زیر قرار گرفته است :
{$smarty.server.PHP_SELF}?id={$announcement.id}
{if $seofriendlyurls}{$WEB_ROOT}/announcements/{$announcement.id}/{$announcement.urlfriendlytitle}.html{else}{$smarty.server.PHP_SELF}?id={$announcement.id}{/if}
بعد از پیدا کردن تگ ها آدرس آن ها را به شکل زیر تغییر دهید :
<a href="/post/{$announcement.id}/{$announcement.title|replace:' ':'-'}">
برای بهینه سازی آدرس ها در بالا با استفاده از متد Replace در اسمارتی Whitespace ها را با - در آدرس جایگزین کردیم و در آخر فایل را ذخیره کنید.
نمایش لیست اخبار:
همچنین اگر نیاز دارید در یک قسمت از قالب خود لیست اخبار را با URL پترن بهینه شده به قالب پاس دهید، یک فایل با نام news.php در مسیر includes/hooks بسازید و داخل آن قرار دهید :
use Illuminate\Database\Capsule\Manager as Capsule;
function hook_footerAnnouncements($vars){
$output = null;
$data = Capsule::table('tblannouncements')
->select('*')
->where('published', '=', 1)
->limit('7')
->orderBy('date', 'desc')
->get();
foreach($data as $new) {
$id = $new->id;
$date = $new->date;
$title = $new->title;
$titleU = str_replace(' ', '-', $title);
$announcement = $new->announcement;
$date = fromMySQLDate($date);
$output .= '<li><a href="/post/'.$id.'/'.$titleU.'/"><i class="material-icons">panorama_fish_eye</i> '.$title.'</a></li>';
}
return array("footerannouncements" => $output);
}
add_hook("ClientAreaPage", 1, "hook_footerAnnouncements");
همکنون در در قالب خود میتوانید با اضافه کردن {footerannouncements} لیست آخرین اخبار ها را با SEO Friendly URLs نمایش دهید.