باسلام، متاسفانه به دلیل عدم پشتیبانی SEO Friendly URLs از زبان فارسی در WHMCS امکان بهینه سازی آدرس ها نیست، همچنین چون به دلیل Core Class و کد بودن آن امکان دسترسی و ادیت آن هم نیست به همین دلیل روشی آماده کردیم که با چند مرحله ساده میتوانید Pattern دلخواه و آدرس بهینه همراه با پشتیبانی از زبان فارسی بسازید.
ابتدا فایل .htaccess را باز کنید و اگر از دستور شرطی <IfModule mod_rewrite.c> استفاده شده بعد از آن (یا قبل از بسته شدن </IfModule>) قرار دهید :
کد:
RewriteRule ^post\/(\d+)(\/(.*))?$ announcements.php?id=$1 [L]
پترن ما به شکل زیر خواهد بود :
کد:
https://www.faranevis.com/post/17/آموزش-بهینه-سازی-آدرس/
سپس به پوشه قالب خود مراجعه کرده و فایل 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 نمایش دهید.
همچنین با ماژول نقشه سایت داینامیک همراه با لینک دستی [ WHMCS Sitemap ] که به صورت رایگان توسط فرانویس منتشر شده است می توانید WHMCS خود را به صورت قوی SEO کنید.
کد:
http://www.webhostingtalk.ir/showthread.php?t=191171