سیستم قالب نویسی وبلاگ

شروع موضوع توسط pilevar ‏28 نوامبر 2008 در انجمن برنامه‌نویسی با PHP

کلمات کلیدی:
  1. pilevar

    pilevar Member

    ارسال‌ها:
    94
    تشکر شده:
    5
    امتیاز دستاورد:
    6
    سلام

    خسته نباشید

    میخواستم بدونم که سیستم هایی مثل بلاگفا و میهن بلاگ و... چطوری برای کد قالبشون نوشتن؟

    مثلا وقتی توی قالبشون از کد زیر استفاده بشه
    HTML:
    <post-title>
    درواقع برای نمایش از کد زیر مثلا استفاده میشه:
    PHP:
    <?php echo $row_post['title']; ?>
    ممنون میشم راهنماییم کنید.

    با تشکر فراوان از شما
     
    نوشته شده توسط pilevar در ‏28 نوامبر 2008
  2. ziXet

    ziXet مدیر انجمن PHP/MYSQL

    ارسال‌ها:
    1,707
    تشکر شده:
    979
    امتیاز دستاورد:
    36
    اساس کار همشون replace کردن تگ با محتویات هست. ساده ترینشم str_replace هست.
     
    نوشته شده توسط ziXet در ‏28 نوامبر 2008
    pilevar از این پست تشکر کرده است.
  3. parsiteam

    parsiteam Member

    ارسال‌ها:
    336
    تشکر شده:
    130
    امتیاز دستاورد:
    16
    سلام . عزیزم از تابع str_replace باید استفاده کنی . برای اطلاعات بیشتر به php.net برو اسم تابع رو سرچ کن .


    موفق باشی .
     
    نوشته شده توسط parsiteam در ‏28 نوامبر 2008
  4. parsiteam

    parsiteam Member

    ارسال‌ها:
    336
    تشکر شده:
    130
    امتیاز دستاورد:
    16

    ببخشید استاد من زمانی که مینوشتم نوشته ی شما نبود , قصد جسارت نداشتم . وقتی زدم دیدم شما هم جواب دادید .
     
    آخرین ویرایش: ‏28 نوامبر 2008
    نوشته شده توسط parsiteam در ‏28 نوامبر 2008
  5. pilevar

    pilevar Member

    ارسال‌ها:
    94
    تشکر شده:
    5
    امتیاز دستاورد:
    6
    دوستان

    من str_replace استفاده کردم

    مثلا در کد زیر:
    PHP:
    <?php
    $txt="omid <post-title> 123";
    echo str_replace("<post-title>","<?php echo 'pilevar'; ?>",$txt);
    ?>
    خروجی نمایشی توی مرورگر اینه:
    [LTR]omid 123[/LTR]

    و Source خروجی در مرورگر:
    کد (Text):
    omid <?php echo 'pilevar'; ?> 123
     
    نوشته شده توسط pilevar در ‏28 نوامبر 2008
  6. pilevar

    pilevar Member

    ارسال‌ها:
    94
    تشکر شده:
    5
    امتیاز دستاورد:
    6
    البته دوستان اینو توجه داشته باشید که توی پست قبلی که نوشتم:
    PHP:

    ...st-title>","<?php echo 'pilevar'; ?>"...
     
    منظورم از <?php echo 'pilevar'; ?> این بود یه کد پی اچ پی بیاد اینجا.
    مثلا کد زیر بیاد جاش:
    PHP:
    for(int $i=1;$i<=10;$i++){
     
    نوشته شده توسط pilevar در ‏28 نوامبر 2008
  7. ziXet

    ziXet مدیر انجمن PHP/MYSQL

    ارسال‌ها:
    1,707
    تشکر شده:
    979
    امتیاز دستاورد:
    36
    من اصلا منظور شما رو متوجه نمی شم!
    str_replace کارش خیلی سادس! توی یک متن جستجو میکنه و جای دو تا کلمه یا حرف رو با هم عوض میکنه! همین!
    شما خودت باید تعمیمش بدی به اون چیزی که میخوای! شما باید درک مناسب از برنامه داشته باشی
    مثلا مثل این:
    PHP:

    $txt = read(Ghaleb); //for ex
    $title = $row['title'];
    echo str_replace("<post-title>",$title,$txt);
     
    نوشته شده توسط ziXet در ‏28 نوامبر 2008
    pilevar از این پست تشکر کرده است.
  8. shnoit

    shnoit Well-Known Member

    ارسال‌ها:
    532
    تشکر شده:
    397
    امتیاز دستاورد:
    63
    میشه یه چنتا نمونه رو همراه با بانک اطلاعاتی خودشون با مثال ذکر کنی !!!!!
     
    آخرین ویرایش: ‏28 نوامبر 2008
    نوشته شده توسط shnoit در ‏28 نوامبر 2008
  9. pilevar

    pilevar Member

    ارسال‌ها:
    94
    تشکر شده:
    5
    امتیاز دستاورد:
    6
    خوب دوست عزیز درسته،
    ولی.....


    ولی اگر بخواهیم اصلا بگیم که اول شروع حلقه باشه،
    مثلا اینجوری که بخوایم مطالب پشت سر هم باشه، که برنامه نویس قالب بالا و پایین قسمت مقالات رو مشخص کنه
    مثلا برای شروع از دستور <start-content> و برای پایان از دستور <end-content> استفاده کنه.

    و برای پردازش که همونجوری که فرمودین اگر از دستور Strt_replace استفاده کنیم، نمیتونیم شروع و پایان یک حلقه رو قرار بدیم :shock:

    ممنون میشم بیشتر راهنمایی بفرمایید:rose:
     
    نوشته شده توسط pilevar در ‏28 نوامبر 2008
  10. mosi20

    mosi20 Active Member

    ارسال‌ها:
    1,296
    تشکر شده:
    220
    امتیاز دستاورد:
    36
    شما چند روزه با php آشناشدی؟
    من قبلا یه سیستم وبلاگدهی نوشتم ولی متاسفانه به دلایل مشکلات هاست نتونستم خیلی روش مانور بدم الان هم مشکل هاستی داره و نمیتونی خود سایت را ببینی.
    یه بخش از کدهاش را میزارم خودت ببین .
    هم بانک اطلاعاتی داره و هم حلقه و همه چیز به شرطی که خودت روش چند دقیقه فکر کنی.

    PHP:

            if( preg_match("'\[temp\](.*?)\[/temp\]'i",  $GLOBALS['c_page_category'] )){
                $MY_PAGE_OUTPUT=my_sql( $f_5_r['page_category'], 1 , 1 , 0 , 0 ,'decode',1 );
            }else{
                $MY_PAGE_OUTPUT=$GLOBALS['c_page_category'];
            }
            $my_weblog_page_title=''.$my_weblog_page_title.'-بخش های وبلاگ';
            if( preg_match("#<mainpages>(.*?)</mainpages>#s", $MY_PAGE_OUTPUT  , $match)){
                $my_page_source_old=$match[1];
                $my_page_source='';
                $f_8 = mysql_query("SELECT * FROM `$db_53` WHERE `weblog_id`='{$w_id}'  ORDER BY `id` DESC") or die(mysql_error());
                while($my_item = mysql_fetch_assoc($f_8)){
                    $my_this_part=$my_page_source_old;
                    $my_this_part=str_replace("<id>", $my_item['id'], $my_this_part);
                    $my_this_part=str_replace("<title>", my_sql( $my_item['title'], 1 , 1 , 0 , 0 ,'decode',1 ), $my_this_part);
                    $my_this_part=str_replace("<url>", ''.c_weblog_ur.'/post/c-'.$my_item['id'].'/1.html', $my_this_part);
                    if (strpos("$my_this_part","<pic>") !== false)      {
                        if($my_item['pic']=='' || $my_item['pic']=='http://'){
                            $my_this_part=str_replace("<pic>", '', $my_this_part);
                        }else{
                            $my_this_part=str_replace("<pic>", my_sql( $my_item['pic'], 1 , 1 , 0 , 0 ,'decode',1 ), $my_this_part);
                        }
                    }
                    $my_this_part=str_replace("<note>", my_sql( $my_item['note'], 1 , 1 , 0 , 0 ,'decode',1 ), $my_this_part);
                    if (strpos("$my_this_part","<posts>") !== false)        {
                        $f_10 = mysql_query("SELECT  COUNT(*)  FROM `$db_52` WHERE `cat_id`='{$my_item['id']}'  AND `sh`='1' ") or die(mysql_error());
                        $r_10 = mysql_result($f_10 ,  0);
                        $my_this_part=str_replace("<posts>", $r_10, $my_this_part);
                    }
                    $my_page_source.=$my_this_part;
                }
                $MY_PAGE_OUTPUT=str_replace($my_page_source_old, $my_page_source, $MY_PAGE_OUTPUT);
            }


     
     
    نوشته شده توسط mosi20 در ‏28 نوامبر 2008
    pilevar از این پست تشکر کرده است.
  11. ziXet

    ziXet مدیر انجمن PHP/MYSQL

    ارسال‌ها:
    1,707
    تشکر شده:
    979
    امتیاز دستاورد:
    36
    من همون اول گفتم ساده ترین شکلش اینه که از str_replace استفاده کنی ولی برای درست کردن تگ های start و end یا تگ هایی که پارامتر هم بگیرن شما باید از عبارات باقاعده استفاده کنی که اول همه تگ ها رو تجزیه تحلیل کنی و بعد بر اساس اون نمایش بدی...

    http://ir.php.net/regex
    البته کار کردن با regex کار آسونی نیست.

    موفق باشید
     
    نوشته شده توسط ziXet در ‏28 نوامبر 2008

به اشتراک بگذارید