متشكر جدا اخى العزيز - samry على ردك
بس بهذة الحالة لو طبقنا هذا الكلام سوف نقوم بتحويل كل وصلات الاسكربت والتى تكون غالبا كثيرة وتحتاج مجهود لتغيير كل وصلة بالطريقة الجديدة .
فعل يوجد طريقة برمجية لتحويل وصلات الاسكربت كلها من الشكل القديم إلى الجديد ؟
وسؤال أخر : إذا اردنا إضافة خاصية فى لوحة التحكم لكى تجعل الوصلات كروابط صديقة أو تغييرها مرة أخرى إلى الشكل العادى . بمعنى خاصية لتشغيل الروابط الصديقة أو أيقافها
فى هذا الشكل
سوف أحتاج إلى أن أعمل شرط إذا كانت الخاصية تفعيل الروابط الصديقة مفعلة حول وصلات الاسكربت إلى الروابط الصديقة وإذا كانت غير مفعلة أتركها بشكلها القديم .
وهذة أيضا طريقة متعبة لاننى سوف أضيف هذا الشرط على كل وصلة موجودة فى الاسكربت .
فهل هذا ايضا صحيح ؟
توجد طريقتين واحده سهلة والثانية ايضا سهلة بس تحتاج التعديل على جميع الروابط
سنضيف هذا في ملف config.php
كود PHP:
$rewrite_mod = true;
تفعيل او تعطيل الروابط الصديقه
لتنشيط true او 1
لتعطيل false او 0
اسفل منه اضف التالي
كود PHP:
function rewrite()
{
$contents = ob_get_contents();
ob_end_clean();
$rewrite_out = array(
"projects/index/\\1"
);
$rewrite_in = array(
"'(?<!/)index.php\?usr=([0-9]*)'"
);
$rewrite = preg_replace($rewrite_in, $rewrite_out, $contents);
echo $rewrite;
}
ولكي يعمل معي يجب وضع الكود
كود PHP:
if ($rewrite_mod) rewrite();
في اسفل الصفحه ( الفوتر )
وهذا مثال يعمل بكفائه
كود PHP:
<?php
ob_start();
$rewrite_mod = true;
function rewrite()
{
$contents = ob_get_contents();
ob_end_clean();
$rewrite_out = array(
"projects/index/\\1"
);
$rewrite_in = array(
"'(?<!/)index.php\?usr=([0-9]*)'"
);
$rewrite = preg_replace($rewrite_in, $rewrite_out, $contents);
echo $rewrite;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<a href="index.php?usr=10">Click Here</a>
<a href="index.php?usr=145">Click Here</a>
<a href="index.php?usr=12">Click Here</a>
<a href="index.php?usr=12546">Click Here</a>
<a href="index.php?usr=12546546">Click Here</a>
<a href="index.php?usr=87">Click Here</a>
<a href="index.php?usr=87">Click Here</a>
<a href="index.php?usr=66">Click Here</a>
<a href="index.php?usr=66">Click Here</a>
<a href="index.php?usr=66">Click Here</a>
<a href="index.php?usr=9">Click Here</a>
<a href="index.php?usr=8">Click Here</a>
<a href="index.php?usr=6">Click Here</a>
<a href="index.php?usr=147">Click Here</a>
<a href="index.php?usr=22">Click Here</a>
<a href="index.php?usr=22">Click Here</a>
<a href="index.php?usr=22">Click Here</a>
<a href="index.php?usr=22">Click Here</a>
<a href="index.php?usr=22">Click Here</a>
<a href="index.php?usr=22">Click Here</a>
<a href="index.php?usr=22">Click Here</a>
</body>
</html>
<?php if ($rewrite_mod) rewrite();?>
انتهى
الطريقة الثانية
اضافة الفونكشن في الملفات الرئيسية
كود PHP:
function my_url_seo($id)
{
global $rewrite_mod;
if ($rewrite_mod) {
return 'projects/index/' . $id;
} else {
return 'index.php?usr=' . $id;
}
}
واستبدال الروابط القديمة
كود PHP:
<a href="index.php?usr=10">Click Here</a>
استبدالها بهذا الشكل
كود PHP:
<a href="<?php echo my_url_seo(10) ?>">Click Here</a>
لتعطيله او تفعيله عبر
كود PHP:
$rewrite_mod = true;
انتهى
طبعا الحل الاول هو الاسرع والاسهل لك اي لاتحتاج تعديل الروابط
اذا واجهتك مشكله ضع هنا اسم السكربت المستخدم لديك واعطيك الطريقة الصحيحه لعمله على السكربت