PDA

View Full Version : کلمات کلیدی



ayub_coder
چهارشنبه 06 بهمن 1389, 22:14 عصر
سلام دوستان
نمیدونستم این سوالو اینجا بپرسم یا بخش طراحی
چون php کار میکنم اینجا نوشتم

در کل سوالم اینه
کلمات کلیدی چی هستن؟ چطور ساخته می شن.؟ لینک های که بهشون نسبت داده میشه باید به کجا اشاره کنه (href)

منظورم همون کلماتی هستن تو سایتا زیر مطالب میذارن.
مثلا من یه کادری دارم که توش باید چند تا کلمه که مربوط به به مطلب جاری میشه نوشت
حالا بخش html این کلیمه ها رو چطور باید بسازم؟ یعنی کدای html اش به چه شکلی میشه؟ به کجا لینک بشن؟

binyaft
چهارشنبه 06 بهمن 1389, 22:41 عصر
اونا تگ هستن که یا به طور خودکار تولید میشن و یا کاربر اونا رو به صورت دستی مینویسه
باید به صفحه ارجاع داده بشن تا کلمه مورد نظر رو درون تگهای پستها جستجو کنه و نتایج رو بیاره

ayub_coder
چهارشنبه 06 بهمن 1389, 23:03 عصر
یعنی به همین صفحه ای که این تگ ها توش هستن باید لینک بدیم؟

UnnamE
چهارشنبه 06 بهمن 1389, 23:27 عصر
البته موضوع تگ هم به اين سادگي ها نيست
بايد طوري تگ رو پياده سازي كرد كه به عنوان يه رفتار در سيستم باشه
تگ واسه خودش خيلي بند و بساط داره و اگه در راه خدا پياده سازي بشه گذرش به هندوستان نميرسه

ayub_coder
چهارشنبه 06 بهمن 1389, 23:47 عصر
خوب منم می خوام راه درست پیاده سازیش رو یاد بیگرم. کسی هست بتونه کامل توضیح بده. مطمئنا به درد همه می خوره:لبخندساده:

binyaft
پنج شنبه 07 بهمن 1389, 08:01 صبح
یعنی به همین صفحه ای که این تگ ها توش هستن باید لینک بدیم؟
مثلا برای هر پست تعدادی تگ هست که لینک داده شده به tag.php ، حالا به صورت زیر

tag.php?name=php
شما name رو بگیر و تگهای بقیه پست هارو توسط یک Query بخون و پستهای مربوط رو نمایش بده!

پ.ن : من تا همین حد بلد بودم ، بقیه دوستان راه بهتری رو دیدن و یا میدونن حتما مطرح کنند :قلب:

farhadfery
پنج شنبه 07 بهمن 1389, 12:17 عصر
البته موضوع تگ هم به اين سادگي ها نيست
بايد طوري تگ رو پياده سازي كرد كه به عنوان يه رفتار در سيستم باشه
تگ واسه خودش خيلي بند و بساط داره و اگه در راه خدا پياده سازي بشه گذرش به هندوستان نميرسه

می شه شما توضیح بیشتری بفرمایید. تو پیاده سازی باید به چه چیزهایی توجه داشته باشیم. اگر یه article هم در این مورد معرفی کنید ممنون می شم.

امیـرحسین
پنج شنبه 07 بهمن 1389, 22:18 عصر
چگونگی عملکرد و رفتار تگها ثابت نیست.
کلماتی تعریف میشه که میشه با نگاه بهشون موضوع کلی مطلب رو متوجه شد. تقریبا در اکثر سیستمها، وقتی تگی کلیک میشه، لیست مطالبی که اون تگ رو دارند میاد.
باید قبل از فکر درباره لینک و HTML منطقش رو پیاده کنید.
برای بلاگها معمولا شبیه زیر عمل میشه: یک جدول برای پستها داریم، یک جدول برای خود تگها و یک جدول برای نسبت دادن تگها به پستها مثلا تگ شماره 5 به پست شماره 8 نسبت داده شده. برای نمایش مثلا پست شماره 10 به این جدول میایم ببینیم چه تگهایی برای پست 10 هست و از اونجا به جدول تگها متصل میشیم و نامشون رو میگیریم.
وقتی تگی کلیک میشه باید این کار رو برعکس انجام بدیم.
به نحوه اجرای این کار در وردپرس توجه کنید.

UnnamE
پنج شنبه 07 بهمن 1389, 22:45 عصر
خب ديگه وقتي اميرحسين ميگه، من چي بگم!
بله همونطور كه اميرحسين گفت در هر نوع سيستمي رفتار و پياده سازي تگ ها متفاوت هست
واسه بلاگ ها معمولا همون راهي كه اميرحسين گفت درسته هست و وردپرس هم به همين شكل پياده شده
واسه ديگر سيستم ها تفاوت هايي وجود داره

ayub_coder
جمعه 08 بهمن 1389, 00:34 صبح
اگه بخوایم این تگها از متن به صورت خودکار استخراج بشن چجوریه؟

binyaft
جمعه 08 بهمن 1389, 09:17 صبح
برای اینکار من قدیما یه کلاس داشتم اما الان گمش کردم :((

alasht
جمعه 08 بهمن 1389, 09:25 صبح
اگه بخوایم این تگها از متن به صورت خودکار استخراج بشن چجوریه؟



ساخت خود تگ کار دشواری نیست مهم کلمات و لینکهاشه که به نظر من باید وارد مبحث سئو (SEO) بشید و قواعدشو یاد بگیرید بعد دستتون میاد که چیکار کنید
به نظر من سیستم وردپرس نمونه خوبی میتونه باشه
اگه یخورده باهاش ور برید میتونید یه چیزایی یاد بگیرید

MMSHFE
شنبه 09 بهمن 1389, 09:41 صبح
با سلام، يك راه نسبتاً ساده تر هم وجود داره و اون اينكه توي جدولتون كه مطالب رو ذخيره ميكنيد، يك فيلد tags هم داشته باشيد و موقع واردكردن تگهاي مطلب از كاربر بخواين با يك كاركتر خاص مثلاً | يا , و... اونها رو جدا كنه و به همين شكل توي DB ذخيره كنيد. بعد موقعي كه كاربر دنبال يك تگ خاص ميگرده، با دستور زير مطالب مرتبط با اون تگ رو استخراج كنيد (فرض بر اينكه با | جدا كرده باشيم) :


$result=mysql_query("select *
from `articles`
where (`tags` like '%|$tag%'
or `tags` like '%$tag|%'
or `tags`='$tag')");
كه tag$ قبلاً از كاربر توسط يك فرم يا از طريق آدرس و كليك روي لينك تگهاي موجود گرفته شده. براي استخراج تگهاي موجود هم ميتونيد به راحتي عمل كنيد كه اگه نياز بود، بفرماييد تا يك سيستم تگ ساده و كامل براتون بنويسم و كدش رو بگذارم.
موفق و مؤيد باشيد.

ayub_coder
شنبه 09 بهمن 1389, 17:17 عصر
بله این کار راحته. این سوال اولم بود. حالا اگه بخوام از مطالبی که کاربر نوشته تگ استخراج کنم باید چکار کنم؟

MMSHFE
یک شنبه 10 بهمن 1389, 07:33 صبح
با سلام، براي اين كار هم راههاي مختلفي هست. يك راه كه معمولاً استفاده ميشه و از بقيه ساده تر هست اينه كه متني كه كاربر وارد كرده رو براساس كاركتر Space بشكنيد و به آرايه تبديل كنيد و توي فيلد tags ذخيره كنيد:


$tags=explode(' ',$_POST['body']);

حالا كافيه اين آرايه رو به همراه جداكننده مربوطه، به يك رشته تبديل كنيد:


$mytags='';
foreach($tags as $tag)
{
$mytags.="|$tag|";
}

و متغير mytags$ رو توي فيلد مربوطه ثبت كنيد.
موفق و مؤيد باشيد.

farhadfery
یک شنبه 10 بهمن 1389, 10:33 صبح
با سلام، براي اين كار هم راههاي مختلفي هست. يك راه كه معمولاً استفاده ميشه و از بقيه ساده تر هست اينه كه متني كه كاربر وارد كرده رو براساس كاركتر Space بشكنيد و به آرايه تبديل كنيد و توي فيلد tags ذخيره كنيد:


$tags=explode(' ',$_POST['body']);

حالا كافيه اين آرايه رو به همراه جداكننده مربوطه، به يك رشته تبديل كنيد:


$mytags='';
foreach($tags as $tag)
{
$mytags.="|$tag|";
}

و متغير mytags$ رو توي فيلد مربوطه ثبت كنيد.
موفق و مؤيد باشيد.

سلام. از پاسخ شما ممنون. اما بدین شکل که شما فرمودید هر کلمه ای که در آن متن باشه می شود کلمه کلیدی!! مثلا کلمه "اما" "ولی" که به نظر من لازم نیست اینها ذخیره بشوند.

MMSHFE
یک شنبه 10 بهمن 1389, 12:21 عصر
با سلام، من هم كه گفتم اين روش ساده ترين روش هست. شما ميتونيد همين روش رو كمي پيچيده تر كنيد. براي مثال، جدولي از حروف غيرمجاز براي كلمه كليدي تعيين كنيد و كلماتي كه نميخواين بعنوان كلمه كليدي باشن رو توي اون ثبت كنيد. حالا كافيه عناصر آرايه بدست آمده رو فقط وقتي بعنوان كلمه كليدي ثبت كنيد كه توي اين جدول نباشن. اين هم به راحتي قابل بررسي هست:


$found=mysql_query("select * from `illegal_tags` where (`value`='$tag')");
if(mysql_num_rows($result)===0)
{
//the tag is valid, so you can add it. put the addition code here
}

موفق و مؤيد باشيد.

farhadfery
یک شنبه 10 بهمن 1389, 12:45 عصر
با سلام، من هم كه گفتم اين روش ساده ترين روش هست. شما ميتونيد همين روش رو كمي پيچيده تر كنيد. براي مثال، جدولي از حروف غيرمجاز براي كلمه كليدي تعيين كنيد و كلماتي كه نميخواين بعنوان كلمه كليدي باشن رو توي اون ثبت كنيد. حالا كافيه عناصر آرايه بدست آمده رو فقط وقتي بعنوان كلمه كليدي ثبت كنيد كه توي اين جدول نباشن. اين هم به راحتي قابل بررسي هست:


$found=mysql_query("select * from `illegal_tags` where (`value`='$tag')");
if(mysql_num_rows($result)===0)
{
//the tag is valid, so you can add it. put the addition code here
}

موفق و مؤيد باشيد.

تشکر از شما.
میشه بفرمایید خود شما از چه روشی استفاده می کنید؟ بعید میدونم شما از این متد که فرمودید استفاده کنید. چون یه کاره حرفه ای نیست.

MMSHFE
دوشنبه 11 بهمن 1389, 07:47 صبح
با سلام، اين كد رو ببينيد:


<?PHP
require_once('config.php');
import_request_variables('p','p_');
mysql_connect($server,$name,$pass) or die('Connection Error');
mysql_select_db($db) or die('DB Error');
$result=mysql_query('select * from `invalid_tags` order by `id`');
if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_assoc($result))
{
$invalids[]=strtolower($row['value']);
}
$tags=explode(' ',$p_body);
foreach($tags as $tag)
{
if(!in_array($tag,$invalids))
{
$accepted[]=$tag;
}
}
}
else
{
$accepted=&$tags;
}
$mtags='';
foreach($accepted as $tag)
{
$mtags.="|$tag|";
}
$result=mysql_query('select * from `articles` order by `id` desc limit 1');
$id=0;
if(mysql_num_rows($result)>0)
{
$id=mysql_result($result,0,0);
}
$id++;
$result=mysql_query("inset into `articles` values('$id','$p_body','$mtags')");
echo((mysql_affected_rows()>0?'New article inserted<BR/>':mysql_error()));
?>

فكر نميكنم خيلي هم استفاده از اين روش غير حرفه اي باشه.
موفق و مؤيد باشيد.