المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [4images] الصور المتشابهة


وحيد
04/10/2010, 10:55 AM
السلام عليكم ورحمة الله

اقدم لكم خطوات بسيطة لتنفيذ فكرة الصور المتشابهة


الطريقة سهلة وانا اختصرتها في خطوتين فقط لكنها تعتمد على نقطة مهمة جدا :

وهي وجود كلمات مفتاحية متشابهة ووصف متشابهة حتى تظهر الصور المتشابهة



الأولى :

افتح الملف : details.php

ابحث عن :



//-----------------------------------------------------
//--- Show Image --------------------------------------
//-----------------------------------------------------


أضف قبله :


//------------------------------------
//------- MOD Similar Images
//------------------------------------
$image_keywords = substr($image_row['image_keywords'], 0, 50); //keywords of actual image
$image_description = $image_row['image_description']; //description of actual image
$image_id_self = $image_row['image_id']; //id of actual image
$i_ids = 0;
$i_ids_max = 4; //max number of thumbs displayed
$image_ids = "";
$percent_limit = 80; //limit of similarity; vary to fit to your database!
$percent_minimum = 40; //minimum of similarity; vary to fit to your database!

//-- select all images and identify similar images
//-- write a string $image_ids with the set of id's, comma seperated
//-- if there are no similar images, descend $percent_limit and try once more
$sql = "SELECT image_id, image_name, image_description, image_keywords, image_active
FROM ".IMAGES_TABLE."
WHERE image_active = 1";
$result_allimages = $site_db->query($sql);

while (($i_ids == 0) && ($percent_limit > $percent_minimum)) {
while ($image_row_allimages = $site_db->fetch_array($result_allimages)){
similar_text ( $image_keywords, substr($image_row_allimages['image_keywords'], 0, 50), $percent );
// similar_text ( $image_description, substr($image_row_allimages['image_description'], 0, 50), $percent );
if (($percent > $percent_limit) && ($image_row_allimages['image_id'] != $image_id_self)) {
$i_ids = $i_ids + 1;
$image_ids .= $image_row_allimages['image_id'] . ", ";
}
}
$percent_limit = $percent_limit - 5;
}

//-- remove the last comma in $image_ids
if (strlen($image_ids) > 0) {
$image_ids = substr($image_ids, 0, strlen($image_ids)-2);
}
//-- set $i_ids to its maximum, for correct mysql statement below
if ($i_ids > 4) $i_ids = $i_ids_max;

//-- build table with thumbs of similar images (only if there are some, of course)
if ($i_ids == 0) {
$similar_images = "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\"><tr class=\"imagerow1\"><td>";
$similar_images .= "</td></tr></table>";
}
else {

//---- select similar images, there id's are in the set $image_ids now
//---- randomized and limited
$sql = "SELECT *
FROM ".IMAGES_TABLE."
WHERE image_id IN (" . $image_ids . ")
ORDER BY RAND()
LIMIT ".$i_ids;
$result_similarimages = $site_db->query($sql);
$num_rows_similarimages = $site_db->get_numrows($result_similarimages);

//---- build table and table-cells
if (!$num_rows_similarimages) {
$similar_images = "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\"><tr class=\"imagerow1\"><td>";
$similar_images .= "</td></tr></table>";
}
else {
$similar_images = "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\">";
$count = 0;
$bgcounter = 0;
while ($image_row_similarimages = $site_db->fetch_array($result_similarimages)){
if ($count == 0) {
$row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
$similar_images .= "<tr class=\"imagerow".$row_bg_number."\">\n";
}
$similar_images .= "<td width=\"".$imgtable_width."\" valign=\"top\">\n";

show_image($image_row_similarimages);
$similar_images .= $site_template->parse_template("thumbnail_bit");
$similar_images .= "\n</td>\n";
$count++;
if ($count == $config['image_cells']) {
$similar_images .= "</tr>\n";
$count = 0;
}
}

if ($count > 0) {
$leftover = ($config['image_cells'] - $count);
if ($leftover >= 1) {
for ($f = 0; $f < $leftover; $f++) {
$similar_images .= "<td width=\"".$imgtable_width."\">\n&nbsp;\n</td>\n";
}
$similar_images .= "</tr>\n";
}
}
$similar_images .= "</table>\n";
}
}

//-- register template-keys
$site_template->register_vars(array(
"similar_images" => $similar_images,
"lang_similar_images" => $lang['lang_similar_images']
));
unset($similar_images);
//------- End similar images---------
//------------------------------------





الثانية :



افتح القالب :
templates/default/details.html

وضع الكود التالي في المكان الذي تريده :

<br />
صور متشابهة : <br />
{similar_images}

ويمكنك تنسيقه كما تريده ان يظهر ويمكنك وضعه في اي مكان تريده ان يظهر .



اتمنى اني افدتكم
تحياتي


روابط تهمك :
مصدر الشرح بالانجليزية . (http://www.4homepages.de/forum/index.php?topic=26671.0)
مصدر الشرح بالعربية .
موقع السكريبت الرسمي .
(http://www.4homepages.de/)
الدعم الفني العربي للسكريبت (http://wh-em.com/d3m-7r)
مثال حي على استخدام السكريبت . (http://wh-em.com/mt7f-7r)

جُروح
04/10/2010, 05:21 PM
:thumbs_up: جميـل جداً ..’

ألف شكر لك على جهودك ’
و تسسلم ايديك يالغلا ..’



كل الود لك ’



،’
’،
،’

فتى الخفجي
08/03/2011, 06:45 AM
تسلم لي ياوحيد ولكن الطريقه ماظبطت مطبقهـأ 100%