[whem][4images] تغيير شكل الروابط إلى عنوان القسم أو الصورة
السلام عليكم
تحية طيبة اخواني الكرام
هذا الهاك خاص لتحويل الروابط إلى اسم القسم أو اسم الصورة في الفور ايميج
ومع المثال تتضح الفكرة :
http://wh-em.com/test/4images/cat-1-مناظر%20طبيعية
لاحظوا تم اضافة اسم القسم إلى جانب رقمه
في الحقيقة قمت بعمل عدة تجارب
ولكن لم استطع ان اجد طريقة ليكون الرابط مثلا بهذا الشكل
كود HTML:
http://wh-em.com/test/4images/مناظر%20طبيعية أين دون ظهور كلمة cat أو رقم القسم
والسبب انه لابد من وجود كلمة cat أو img للتمييز بين كو نالرابط للقسم أو للصورة ..
والرقم لابد من وجوده لأنه يستخدم لجلب بيانات القسم أو الصورة
من استطاع الحصول على نتائج افضل فليشاركنا جزاكم الله خير
الآن طريقة التركيب سهلة جدا
لكن إذا كنت قد ركبت هاك اختصار الروابط إلى html فيجب ازالة الأكواد تماما ثم اتبع التالي :
افتح الملف
includes/sessions.php
ابحث عن :
كود PHP:
function url ( $url , $amp = "&" ) {
global $l ;
$dummy_array = explode ( "#" , $url );
$url = $dummy_array [ 0 ];
if ( $this -> mode == "get" && ! preg_match ( "/" . SESSION_NAME . "=/i" , $url )) {
$url .= preg_match ( "/\?/" , $url ) ? "$amp" : "?" ;
$url .= SESSION_NAME . "=" . $this -> session_id ;
}
if (!empty( $l )) {
$url .= preg_match ( "/\?/" , $url ) ? "$amp" : "?" ;
$url .= "l=" . $l ;
}
$url .= (isset( $dummy_array [ 1 ])) ? "#" . $dummy_array [ 1 ] : "" ;
return $url ;
}
function url ( $url , $amp = "&" ) {
global $l ;
$dummy_array = explode ( "#" , $url );
$url = $dummy_array [ 0 ];
if ( $this -> mode == "get" && ! preg_match ( "/" . SESSION_NAME . "=/i" , $url )) {
$url .= preg_match ( "/\?/" , $url ) ? "$amp" : "?" ;
$url .= SESSION_NAME . "=" . $this -> session_id ;
}
if (!empty( $l )) {
$url .= preg_match ( "/\?/" , $url ) ? "$amp" : "?" ;
$url .= "l=" . $l ;
}
$url .= (isset( $dummy_array [ 1 ])) ? "#" . $dummy_array [ 1 ] : "" ;
return $url ;
}
استبدله بـ :
كود PHP:
function url ( $url , $amp = "&" ) {
global $l , $user_info ;
$dummy_array = explode ( "#" , $url );
$url = $dummy_array [ 0 ];
$url = str_replace ( '&' , '&' , $url );
if (! defined ( 'IN_CP' )) {
if ( strstr ( $url , 'index.php' )) {
$url = str_replace ( 'index.php' , '' , $url );
}
elseif ( strstr ( $url , 'search.php' )) {
if ( strstr ( $url , 'page=' )) {
preg_match ( '#page=([0-9]+)&?#' , $url , $matches );
if (isset( $matches [ 1 ])) {
$split = explode ( '?' , $url );
$url = $split [ 0 ];
$query = @ $split [ 1 ];
$url = str_replace ( 'search.php' , 'search.' . $matches [ 1 ]. '.htm' , $url );
$query = str_replace ( 'page=' . $matches [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&page=' . $matches [ 1 ], '' , $query );
$query = str_replace ( 'page=' . $matches [ 1 ], '' , $query );
if (!empty( $query )) {
$url .= '?' . $query ;
}
}
}
else {
$url = str_replace ( 'search.php' , 'search.htm' , $url );
}
}
elseif ( strstr ( $url , 'lightbox.php' )) {
if ( strstr ( $url , 'page=' )) {
preg_match ( '#page=([0-9]+)&?#' , $url , $matches );
if (isset( $matches [ 1 ])) {
$split = explode ( '?' , $url );
$url = $split [ 0 ];
$query = @ $split [ 1 ];
$url = str_replace ( 'lightbox.php' , 'lightbox.' . $matches [ 1 ]. '.htm' , $url );
$query = str_replace ( 'page=' . $matches [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&page=' . $matches [ 1 ], '' , $query );
$query = str_replace ( 'page=' . $matches [ 1 ], '' , $query );
if (!empty( $query )) {
$url .= '?' . $query ;
}
}
}
else {
$url = str_replace ( 'lightbox.php' , 'lightbox.htm' , $url );
}
}
elseif ( strstr ( $url , 'categories.php' )) {
if ( strstr ( $url , 'cat_id=' ) && strstr ( $url , 'page=' )) {
preg_match ( '#cat_id=([0-9]+)&?#' , $url , $matches1 );
preg_match ( '#page=([0-9]+)&?#' , $url , $matches2 );
if (isset( $matches1 [ 1 ]) && isset( $matches2 [ 1 ])) {
$split = explode ( '?' , $url );
$url = $split [ 0 ];
$query = @ $split [ 1 ];
$url = str_replace ( 'categories.php' , '' . $matches1 [ 1 ]. '.' . $matches2 [ 1 ]. '' , $url );
$query = str_replace ( 'cat_id=' . $matches1 [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&cat_id=' . $matches1 [ 1 ], '' , $query );
$query = str_replace ( 'cat_id=' . $matches1 [ 1 ], '' , $query );
$query = str_replace ( 'page=' . $matches2 [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&page=' . $matches2 [ 1 ], '' , $query );
$query = str_replace ( 'page=' . $matches2 [ 1 ], '' , $query );
if (!empty( $query )) {
$url .= '?' . $query ;
}
}
}
elseif ( strstr ( $url , 'cat_id=' )) {
preg_match ( '#cat_id=([0-9]+)&?#' , $url , $matches );
if (isset( $matches [ 1 ])) {
$split = explode ( '?' , $url );
$url = $split [ 0 ];
$query = @ $split [ 1 ];
$cat_url = get_category_url ( $matches [ 1 ]);
$url = str_replace ( 'categories.php' , '' . $cat_url . '' , $url );
$query = str_replace ( 'cat_id=' . $matches [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&cat_id=' . $matches [ 1 ], '' , $query );
$query = str_replace ( 'cat_id=' . $matches [ 1 ], '' , $query );
if (!empty( $query )) {
$url .= '?' . $query ;
}
}
}
else {
$url = str_replace ( 'categories.php' , 'cat.htm' , $url );
}
}
elseif ( strstr ( $url , 'details.php?image_id=' )) {
if ( strstr ( $url , 'image_id=' ) && strstr ( $url , 'mode=' )) {
preg_match ( '#image_id=([0-9]+)&?#' , $url , $matches1 );
preg_match ( '#mode=([a-zA-Z0-9]+)&?#' , $url , $matches2 );
if (isset( $matches1 [ 1 ]) && isset( $matches2 [ 1 ])) {
$split = explode ( '?' , $url );
$url = $split [ 0 ];
$query = @ $split [ 1 ];
$url = str_replace ( 'details.php' , 'img' . $matches1 [ 1 ]. '.' . $matches2 [ 1 ]. '.htm' , $url );
$query = str_replace ( 'image_id=' . $matches1 [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&image_id=' . $matches1 [ 1 ], '' , $query );
$query = str_replace ( 'image_id=' . $matches1 [ 1 ], '' , $query );
$query = str_replace ( 'mode=' . $matches2 [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&mode=' . $matches2 [ 1 ], '' , $query );
$query = str_replace ( 'mode=' . $matches2 [ 1 ], '' , $query );
if (!empty( $query )) {
$url .= '?' . $query ;
}
}
}
else {
preg_match ( '#image_id=([0-9]+)&?#' , $url , $matches );
if (isset( $matches [ 1 ])) {
$split = explode ( '?' , $url );
$url = $split [ 0 ];
$query = @ $split [ 1 ];
$url = str_replace ( 'details.php' , '' . get_image_url ( $matches [ 1 ]). '' , $url );
$query = str_replace ( 'image_id=' . $matches [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&image_id=' . $matches [ 1 ], '' , $query );
$query = str_replace ( 'image_id=' . $matches [ 1 ], '' , $query );
if (!empty( $query )) {
$url .= '?' . $query ;
}
}
}
}
elseif ( strstr ( $url , 'postcards.php?image_id=' )) {
preg_match ( '#image_id=([0-9]+)&?#' , $url , $matches );
if (isset( $matches [ 1 ])) {
$split = explode ( '?' , $url );
$url = $split [ 0 ];
$query = @ $split [ 1 ];
$url = str_replace ( 'postcards.php' , 'postcard.img' . $matches [ 1 ]. '.htm' , $url );
$query = str_replace ( 'image_id=' . $matches [ 1 ]. '&' , '' , $query );
$query = str_replace ( '&image_id=' . $matches [ 1 ], '' , $query );
$query = str_replace ( 'image_id=' . $matches [ 1 ], '' , $query );
if (!empty( $query )) {
$url .= '?' . $query ;
}
}
}
}
if ( $this -> mode == "get" && strstr ( $url , $this -> session_id )) {
$url .= strpos ( $url , '?' ) !== false ? '&' : '?' ;
$url .= SESSION_NAME . "=" . $this -> session_id ;
}
if (!empty( $l )) {
$url .= strpos ( $url , '?' ) ? '&' : '?' ;
$url .= "l=" . $l ;
}
$url = str_replace ( '&' , $amp , $url );
$url .= isset( $dummy_array [ 1 ]) ? "#" . $dummy_array [ 1 ] : "" ;
return $url ;
}
ايضا في نفس الملف في آخر وقبل علامة ؟>
ضع الكود :
كود PHP:
//Mod_bmollet && improve by nic_bck v0.1
$categoria_anterior ;
$url_categoria_anterior ;
function get_category_url ( $cat_id , $cat_url = '' )
{
global $site_db ;
global $categoria_anterior ;
global $url_categoria_anterior ;
if ( $categoria_anterior == $cat_id )
{
return $url_categoria_anterior ;
}
$sql = "SELECT cat_name,cat_parent_id FROM " . CATEGORIES_TABLE . " WHERE cat_id = '" . $cat_id . "'" ;
$result = $site_db -> query ( $sql );
$row = $site_db -> fetch_array ( $result );
$row [ 'cat_name' ] = strtr ( $row [ 'cat_name' ], "éèêàëâúóíáABCDEFGHIJKLMNOPQRSTUVWXYZ" , "eeeaeauoiaabcdefghijklmnopqrstuvwxyz" );
$cat_url = 'cat-' . $cat_id . '-' . str_replace ( '+' , '-' , $row [ 'cat_name' ]). $cat_url ;
// if you want full path of category in url, put next line in comment
$categoria_anterior = $cat_id ;
$url_categoria_anterior = $cat_url ;
return $cat_url ;
if( $row [ 'cat_parent_id' ] != 0 )
{
return get_category_url ( $row [ 'cat_parent_id' ], $cat_url );
}
else
{
return $cat_url ;
}
}
//Mod_bmollet && improve by nic_bck v0.1
$imagen_anterior ;
$url_imagen_anterior ;
function get_image_url ( $image_id )
{
global $site_db ;
global $imagen_anterior ;
global $url_imagen_anterior ;
//echo "imagen: " . $imagen_anterior;
if ( $imagen_anterior == $image_id )
{
return $url_imagen_anterior ;
}
$sql = "SELECT cat_id,image_name FROM " . IMAGES_TABLE . " WHERE image_id = '" . $image_id . "'" ;
$result = $site_db -> query ( $sql );
$row = $site_db -> fetch_array ( $result );
$row [ 'image_name' ] = strtr ( $row [ 'image_name' ], "éèêàëâúóíáABCDEFGHIJKLMNOPQRSTUVWXYZ" , "eeeaeauoiaabcdefghijklmnopqrstuvwxyz" );
// if you want comlpete path to image in url, remove comment from following line
//return get_category_url($row['cat_id']).'-'.str_replace('+','-',urlencode($row['image_name'])).'-'.$image_id;
$imagen_anterior = $image_id ;
$url_imagen_anterior = 'img-' . $image_id . '-' . str_replace ( '+' , '-' , $row [ 'image_name' ]). '' ;
return 'img-' . $image_id . '-' . str_replace ( '+' , '-' , $row [ 'image_name' ]). '' ;
}
في الملف
htaccess
ضع الكود :
كود PHP:
RewriteEngine On
RewriteRule ^ cat -([ 0 - 9 ]+)-(.*) categories . php ? cat_id =$ 1 &%{ QUERY_STRING }
RewriteRule ^ img -([ 0 - 9 ]+)-(.*) details . php ? image_id =$ 1 &%{ QUERY_STRING }
RewriteRule ^ search . htm $ search . php ?%{ QUERY_STRING }
RewriteRule ^ search .([ 0 - 9 ]+). htm $ search . php ? page =$ 1 &%{ QUERY_STRING }
لاتنسى ابدا ازالة الهاك السابق : هاك اختصار الروابط وتحويلها إلى html
واذا في اي مشكلة انا حاضر
المصدر :
قمت بتعريب الهاك وتغيير بعض الأمور ليظهر بشكل سليم للغة العربية
http://www.4homepages.de/forum/index.php?topic=17598.0
ولكم مني جزيل الشكر والتقدير
تحياتي
__________________
كل مالا يعطى يضيع
29-11-2008, 09:42 AM
يعطيك الله ويعافيك ربي
ورحم الله ولدينك يالغالي
ابي استفسر منك وحيد عن شغله
وهي ...
1- عندي الرابط هذا
http://www.x.com/pic/cat1.htm
حبيت اغيره للرابط التالي :
http://www.x.com/pic/c1
عن طريق التعديل في هاك المود رايتر يضبط ويتعدل بس المشكله في الرابط القديم
اذا دخلت عليه يعطيني رابط غلط
هل فيه طريقة اني اخلي الرابط القديم يدخلني على الرابط الجديد
ونفس الكلام بالنسبة روابط الصور
ولك تحياتي ...
__________________ ربي ارحمني واغفر لي .... -----------------------------------------------------------
29-11-2008, 01:04 PM
اخوى هل هذه الطريقه مفيده فعلا لتغير النتائج وزياده الارشفه فى محركات البحث ام لها استفاده اخرى
اتمنى توضيح فوائد هذه الحركه
29-11-2008, 06:05 PM
اخوي جروحي حيرتني معاك بالشكل النهائي اللي بتوصل له
على العموم هنا الكود الخاص بالتحويل
http://www.swalif.net/softs/swalif55/softs247939/
تحياتي لك ..
اخوي siktour منذ فترة كنت اقرا ان الروابط العربية تاخر عملية الارشفة
ولا أدري من صحة هذا تماما
لكن من تجربة شخصية
تحسنت الارشفة في المتحف بشكل كبير
واصبحت الزيارات من كلمات البحث جدا متلفة وكثيرة ومتنوعة يعني اصبح جوجل يشوف كل اقام موقعي بوضوح اكبر
وهذا صار لما ركبت هذا الهاك
وبالاخير كل الامور تنطبق على التجارب الدقيقة وكل واحد على حسب موقعه
تحياتي لكم جميعا
__________________
كل مالا يعطى يضيع
30-11-2008, 03:29 PM
جزاك الله خير اخى الكريم وفى انتظارك تطوير هاك عناوين الاقسام ليضم الوصف والكلمات المفتاحية الخاصه بكل صوره
03-12-2008, 01:34 PM
أهلين يالغالي ,,
شكراً لك على طرحك الرائع ..
ابغاك يالغالي بخدمة .. مادري اضفت الايميل ذا
info # wa7eed.com
هل يوجد به ماسنجر ولا لا .. لاني احتاج الى التحدث إليك
وذا ماسنجري
admin # e7sas.cc
أخوك
__________________ _vb_ سابقاً
انت الذي ولدتك امك باكيا ..
و الناس حولك يضحكون سرورا
فأعمل لنفسك ان تكون اذا بكوا
في يوم موتك ضاحكا مسرورا
04-12-2008, 05:08 AM
عضو مميز
#7
لا يمكنك ذلك سوي بتخصيص حقل جديد في قاعدة البيانات مع التصنيف
ما أن يتم إضافة قسم إلا ويتم فيه تحويل كل ما ليس حرف ل _ فمناظر طبيعية ستكون
مناظر_طبيعية أو مناظر-طبيعية حسب ما تريد وذلك بالإستبدال str_replace
ثم تخزينه في الحقل الجديد
ثم في كل مرة يتم فتح القسم يتم الإستعلام من الداتا بيز بهذا الإسم وليس برقم القسم
يعني بإختصار تحتاج لتعديلات علي البنية التحتية للبرمجية كلها في هذه النقطة
__________________
السيف أصدق أنباء من الكتب
04-12-2008, 07:14 AM
شكرآ مبدعنا الاستاذ امبراطور وحيد ,اضافه مميزه منك وهاك جميل
تحياتي لك
04-12-2008, 07:23 AM
شكرا يا وحيد اضافة ممتازة
04-12-2008, 08:13 AM
السلام عليكم ورحمة الله
اعتذر اخواني لتاخري في الرد عليكم ..
اخوي siktour اهلا فيك واعتذر فعلا متاخر في طرح النسخة الثانية من الهاك والله لظروف وانشغالاتي وان شاء الله ابشر اليوم سأطرحه لكم
هلا بالغالي _vb_ اضفتك اخوي على wh_em $ هوتميل
اخوي المجروح فعلا كلامك صحيح ، لكن كما قلت تحتاج إلى تعديل كبير في البرمجية .. وهذا صعب جدا .. لو ابدأ ابرمج السكريبت من جديد اسهل لي
الغالي احمد شرفتنا بتواجدك في الموضوع ، ومانسيت الهاك الخاص بالملف الشخصي باذن الله قريبا ..
اخوي m7mmad تسلم ياغالي ومنورنا بتواجدك
اخواني اود أن أنوه عن نقطة مهمة جدا بخصوص هذا الهاك ...
لمن قام بتركيب هاك اختصار الروابط وتحويلها إلى hmtl
طبعا في البداية سيقوم جوجل بفهرسة موقعك بالروابط الجديدة
وستكون الروابط متكررة
بالشكل القديم والجديد
الحل :
لازم تزيل الكود الخاص بالهاك القديم الموجود في الـ htaccess
بالتالي كل من يدخل على الرابط القديم يظلع له خطا 404
الان استخدم هذا الكود :
كود HTML:
RewriteRule ^cat(.*).htm$ http://%{HTTP_HOST}/mt7f-7r/cat-$1- [R=301,L]
RewriteRule ^img(.*).htm$ http://%{HTTP_HOST}/mt7f-7r/img-$1- [R=301,L] مع تغيير اسم المجلد الخاص بك بدلا من mt7f-7r
بالتالي يتم التحويل إلى الشكل الجديد
لكن بدون اسم القسم
وسيتم تدريجيا تصحيح وضع موقعك في فهرس جوجل
وبياخذ وقت على حسب عدد روابط وصفحات موقعك
لذلك انصح تعمل خريطة للموقع بشكل الروابط الجديد
بالتالي يعرف جوجل انك عملت تغيير لروابط الموقع وسيتم تغيير الفهرس في اسرع وقت ان شاء الله
عيب هذه الطريقة وهذا التحويل خصوصا للمواقع القديمة
خسارة البيج رانك
لان الروابط تتغير بالرغم من ان التحويل 301 لكن انا اغلب صفحاتي راح البيج رانك تبعها وهبط بشكل كبير
لذلك هالطريقة افضل للمواقع الجديدة الغير مؤرشفة نهائيا او للغير مهتمين بامور البيج رانك
لكن ان شاء الله يتعدل مع التحديث القادم والله اعلم
واذا اخطات في اي نقاط اتمنى احد يصححني فيها
تقبلوا تحياتي جميعا
اخوكم
وحيد
__________________
كل مالا يعطى يضيع
07-12-2008, 02:35 AM
الفكرة رهيبة
لكن مشكلة المسافة انها تظهر %20
المفروض تكون -
06-01-2009, 11:22 AM
إقتباس:
المشاركة الأصلية بواسطة
الإمبراطور وحيد السلام عليكم ورحمة الله
اعتذر اخواني لتاخري في الرد عليكم ..
اخوي siktour اهلا فيك واعتذر فعلا متاخر في طرح النسخة الثانية من الهاك والله لظروف وانشغالاتي وان شاء الله ابشر اليوم سأطرحه لكم
هلا بالغالي _vb_ اضفتك اخوي على wh_em $ هوتميل
اخوي المجروح فعلا كلامك صحيح ، لكن كما قلت تحتاج إلى تعديل كبير في البرمجية .. وهذا صعب جدا .. لو ابدأ ابرمج السكريبت من جديد اسهل لي
الغالي احمد شرفتنا بتواجدك في الموضوع ، ومانسيت الهاك الخاص بالملف الشخصي باذن الله قريبا ..
اخوي m7mmad تسلم ياغالي ومنورنا بتواجدك
اخواني اود أن أنوه عن نقطة مهمة جدا بخصوص هذا الهاك ...
لمن قام بتركيب هاك اختصار الروابط وتحويلها إلى hmtl
طبعا في البداية سيقوم جوجل بفهرسة موقعك بالروابط الجديدة
وستكون الروابط متكررة
بالشكل القديم والجديد
الحل :
لازم تزيل الكود الخاص بالهاك القديم الموجود في الـ htaccess
بالتالي كل من يدخل على الرابط القديم يظلع له خطا 404
الان استخدم هذا الكود : كود HTML:
RewriteRule ^cat(.*).htm$ http://%{HTTP_HOST}/mt7f-7r/cat-$1- [R=301,L]
RewriteRule ^img(.*).htm$ http://%{HTTP_HOST}/mt7f-7r/img-$1- [R=301,L] مع تغيير اسم المجلد الخاص بك بدلا من mt7f-7r
بالتالي يتم التحويل إلى الشكل الجديد
لكن بدون اسم القسم
وسيتم تدريجيا تصحيح وضع موقعك في فهرس جوجل
وبياخذ وقت على حسب عدد روابط وصفحات موقعك
لذلك انصح تعمل خريطة للموقع بشكل الروابط الجديد
بالتالي يعرف جوجل انك عملت تغيير لروابط الموقع وسيتم تغيير الفهرس في اسرع وقت ان شاء الله
عيب هذه الطريقة وهذا التحويل خصوصا للمواقع القديمة
خسارة البيج رانك
لان الروابط تتغير بالرغم من ان التحويل 301 لكن انا اغلب صفحاتي راح البيج رانك تبعها وهبط بشكل كبير
لذلك هالطريقة افضل للمواقع الجديدة الغير مؤرشفة نهائيا او للغير مهتمين بامور البيج رانك
لكن ان شاء الله يتعدل مع التحديث القادم والله اعلم
واذا اخطات في اي نقاط اتمنى احد يصححني فيها
تقبلوا تحياتي جميعا
اخوكم
وحيد
الي باللون الاحمر ما فهمته للعلم البرنامج على الروت وليس مجلد فرعي
__________________
لا اله الا الله
09-01-2009, 01:37 PM
اذا استخدم هذا الكود :
بالتوفيق
__________________
كل مالا يعطى يضيع
10-01-2009, 02:48 AM
اهلين امبراطور
تم حل %20 الى -
12-01-2009, 12:54 PM
إقتباس:
المشاركة الأصلية بواسطة
مزاجك بالعربي اهلين امبراطور
تم حل %20 الى -
وشو طريقة الحل بارك الله فيك ؟
13-01-2009, 07:20 PM
اخوي وحيد انت نسيت تضبط التعديل على البوست كارد
__________________
لا اله الا الله
14-01-2009, 01:25 PM