نحوه اجرای loop هادر سیستم های وبلاگ

Domanjiri

Well-Known Member
سلام
الان چند روزه که به این فکر میکنم که ما مثلا وقتی برای یه سیستم وبلاگی قالب مینویسیم(حالا مثلا بلاگفا) ما یه باکس برای نمایش مطلبمون وسط صفحه میسازیم و بالای اون یه عکسی میزاریم و وسط این باکس تگ مربوط به اون سیستم رو وارد میکنیم .
حالا وقتی اون سیستم قالب ما رو اجرا میکنه واسه هر مطلب اون باکس رو میسازه و اون عکس رو هم بالاش نشون میده در حالی که ما هیچ جا نگفتیم که این باکس از اینجا شروع و اینجا تموم میشه!!

میخواستم بدونم این کار چجوری انجام میشه؟ و...
اگه منظورمو نفهمیدین بگین بیشتر توضیح بدم.
 

amir01

Well-Known Member
باز هم مبحث اضافی...
آقا یه سرچ کنی هستش...
همین دو سه تا مبحث قبل مبحث شما هستش....
اینا با استفاده از Template Engine امکان پذیره...
یاحق
 

Domanjiri

Well-Known Member
اینا با استفاده از Template Engine امکان پذیره..
نيست عزيزم نيست..
با smarty كه نميشه.اگه خوب سوالمو خونده باشي ميبيني كه ما هيچ جا اعلام نميكنيم كه اين حلقه از كجا شروع ميشه اصلا چرا او تمپليت اينجين يه باكس ديگه كه توش تگ نيت رو تكرار نميكنه ....لطفا يه نگاهي به قالب بعضي از اين سرويس دهنده ها بندازيد.

مرسي
 

firebird

Member
نيست عزيزم نيست..
با smarty كه نميشه.اگه خوب سوالمو خونده باشي ميبيني كه ما هيچ جا اعلام نميكنيم كه اين حلقه از كجا شروع ميشه اصلا چرا او تمپليت اينجين يه باكس ديگه كه توش تگ نيت رو تكرار نميكنه ....لطفا يه نگاهي به قالب بعضي از اين سرويس دهنده ها بندازيد.

مرسي
پس foreach و section تو smarty واسه‌ی چیه؟
 

Domanjiri

Well-Known Member
پس foreach و section تو smarty واسه‌ی چیه؟
ببينيد چيزي كه من گفتم واضحه..من خودم با دستورات اسمارتي آشنايي دارم.مثلا شما يه تگ براي نمايش مطالب آرشيو تو قالب ميذارين خوب اينجا واضحه كه با يه foreach يا...ميشه مطالب قبلي رو نمايش داد.

ولي چيزي كه من ميگم فرق ميكنه:
شما مثلا تو قالب يه وبلاگ مينويسيد {$archive}سلام
اينجا موتور اون سايت علاوه بر اينكه $archive رو تو حلقه قرار ميده سلام رو هم با هر بار اجراي حلقه چاپ ميكنه.
archive1سلام
archive2سلام
...

اگه ميخواين جواب بدين لطفا كامل بگين كه ديگه الكي اين مبحث طولاني نشه.
مرسي
 

amir01

Well-Known Member
آقا شما چه اصراری داری که نشه؟؟!!
میشه دیگه... من هم با اسمارتی این کارو کردم...
هم یه تمپلیت انجین خودم نوشتم که این کارو میکرد...
حالا هی شما بگو نمیشه!!!... خب نشه...
شما راه دیگه ای بلدی مطرح کنید بچه های اینجا هم یاد بگیرن...!
 

Domanjiri

Well-Known Member
آقا من هيچ اصراري ندارم.با توجه به اطلاعات ناقصم گفتم كه امكان پذير نيست.

الان هم خيلي خوشحال ميشم كه كدي رو كه نوشتين اينجا بذارين تا من و شايد بقيه دوستان هم استفاده كنيم.

ممنون ميشم.
 

www.nero.ir

Member
ایشون راست میگم شما یک تمپلیت وبلاگ رو ببنید توش نه لوپ داره نه اول آخره تیبل مشخص هستش اگه شما میگی میشه با اسمارتی کدش رو بزار ما هم ببنیم چطوری میشه ؟؟؟؟؟؟؟؟؟؟
 

farik

Well-Known Member
با سلام دوستان عزيز اگر دقت كرده باشيد در كدهاي قالبهاي وبلاگها ميتونين تگهايي رو كه به تگ هاي مادر معروفن پيدا كنينتنها كافي است كه يك جابجاي بين اون تگ مادر و تگ section مورد نظر انجام بشه.مشكلي بود در خدمتم...
 

www.nero.ir

Member
این کدی که میزارم ماله میهن بلاگ هستش قسمتی که قرار با هر پست تکرار بشه داخل یک تگ عجیب قرار گرفته چطری از این تگ استفاده میکنه
اگر لطف کنید یکم دربارش توضیح بدید ممنون میشم
HTML:
<section:context>
<table width="585" cellspacing="0" cellpadding="0">
  <tr>
    <td background="http://www.takp30.ir/myuploads/weblog_t/eshgh1/tb3a.gif" width="580" height="34" valign="top">
   <div align="center">&nbsp;<span class="style1"><a href="{-context:link-}"><font color="#FFFFFF">{-context:title-}</font></a></span>
     </div></td>
  </tr>
    <tr>
    <td background="http://www.takp30.ir/myuploads/weblog_t/eshgh1/tb3b.gif" width="580" height="165" valign="top">
    <br>
 <table width="550" height="150" align="center">
  <tr>
    <td>
 <p align="justify" class="style1" dir="rtl"><font color="#FFFFFF">
 <context:category> 
  موضوع پست :<a href="{-category:link-}"> {-category:text-} </a>
  </context:category>
   <br><br>{-context:entry-}<br><br>
  <context:more><a href="{-context:link-}#more">ادامه مطلب</a><br><br></context:more>
   </p>
 </td>
  </tr>
</table>
</td>
  </tr>
    <tr>
    <td background="http://www.takp30.ir/myuploads/weblog_t/eshgh1/tb3c.gif" width="580" height="26">
<div align="center" class="style1" dir="rtl"><a href="{-context:link-}" title="لينك ثابت"> + </a>نوشته شده در {-context:shortdate-} ، توسط<a href="{-context:authorlink-}"> {-context:author-} </a>.:.<a href="{-comment:sendlink-}"> نظرات : (<script>gc({-context:pid-})</script>) </a>
</div>
 </td>
  </tr>
</table><br></section:context>
 

farik

Well-Known Member
ba salam doost aziz ...
in code ehtemalan be zaban template engine mihanblog hast va ta vghti oon ro nabinam nemitoonam nazar kameli bedam vali ehtemalan in code ro ba code tamas vase har blog jab e ja mikone ...
(va masalan ba tag section)
TabOTabDesign
 
آخرین ویرایش:

www.nero.ir

Member
خوب چطور میشه همچین چیزی رو ساخت با php اسمارتی همچین چیزی رو نوشت .در اسمارتی چیزی وجود داره به نام {section} کسی نیست یک کدی بزاره یه مقدار توضیح در بارش بده روشن بشیم .
PHP:
<?php
$data = array(1000,1001,1002);
$smarty->assign('custid',$data);
?>  
The template that outputs the array
{* this example will print out all the values of the $custid array *}
{section name=customer loop=$custid}
  id: {$custid[customer]}<br />
{/section}
<hr />
{*  print out all the values of the $custid array reversed *}
{section name=foo loop=$custid step=-1}
  {$custid[foo]}<br />
{/section}
 
The above example will output: 
id: 1000<br />
id: 1001<br />
id: 1002<br />
<hr />
id: 1002<br />
id: 1001<br />
id: 1000<br />
 

farik

Well-Known Member
با سلام
دوست عزيز شما دو كار ميتونين بكنيد...
نكته اول اينكه باز هم گوشزد ميكنم اينه كه سايتهايي مثل mihanblog و blogfa خودشون يك template دارن....
نكته دوم...انكه خوب حالا شما ميخواي با اسمارتي اينكار رو بكني خوب ميتوني اينكارو بكني:
strreplace("your blck to start post or athers in templates","{section name=num loop=yourvalue}",text which you get it from user as template}
با تشكر تب و تاب ديزاين..
 

www.nero.ir

Member
با تشکر بابت جوابتون
منظور شما از اینکه "نكته اول اينكه باز هم گوشزد ميكنم اينه كه سايتهايي مثل mihanblog و blogfa خودشون يك template دارن....
" چیه یعنی هر کدوم از این سایت ها واسه خودشون یک تمپلیت انجین مخصوص دارن یک چیزه منحصر به فرد ؟
شما به غیر از smarty می تونید چیز دیگری رو به من معرفی کنید که همچین قابلیتی رو داشته باشه باهاش بشه همچین کاری رو انجام داد ؟
 

farik

Well-Known Member
من به شخصه ندارم ولي ديدم مثلا آقا امير از يك تمپليت اينجين تو CMS خودشون استفاده كردن به اسم fast cms ولي واسه نسخهها بعديش خودشون يك انجين نوشتن...و از اون استفاده كردن....
و....بگردي پيدا ميكن ولي من smarty رو ترجيح ميدم...
 

www.nero.ir

Member
من یک مقدار دیگه این کد ها رو بررسی کردم فکر می کنم که از template engine استفاده نشده داخلش تگ های جدیدی رو تعریف کردن .من یکی از template های بلاگ فا رو تو یک فیلد دیتابیس ریختم و با استفاده از تابع مقدار بین دو تگ رو در اوردم و با str_replace عوضشون کردم ولی فکر می کنم که باید یک استانداردی برای درست کردن این تگ ها وجود داشته یا اینکه بلاگفا هم با توابعه string این موضوع رو حل کرده
لطفا بنده رو راهنمایی کنید ؟
 

my friend

Member
کافیه با regex محتوای بین <tag> و <tag/> رو پیدا کنید...
بعد اونو توی حلقه بزارید و ...
کار ساده ای هست.
شاید 10 خط هم نشه.
سر فرصت یه نمونه مینویسم براتون میزارم.
 

www.nero.ir

Member
دوست عزیز من نوشتم که همین کار رو انجام می دم حالا از Regular Expression استفاده نکردم با یک فانکشن محتوای بین <tag> و <tag/> رو به دست اوردم .من یک راه ااساسی تر می کردم اخه جایی تو همچین چیزی نوشته بود
HTML:
  <mytag max="2"></mytag>

این 100% راهی باید فراتر از این Regular Expression داشته باشه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟​
 

جدیدترین ارسال ها

بالا