اسمارتی(Smarty) - از آغاز تا پایان

Goroop.ir

Member
سیاوش من فایل رو از سایت اسمارتی دانلود کردم و نصب کردم حتی یک دمو هم به من داد . و متوجه شدم که اسمارتثی چی هست .

سوال من اینه که حالا حتما باید تمام فایل هارو بزارم روی سایت تا بتونم از اسمارتی استفاده کنم یا باید چند تا رو ؟

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

siavashmusic

Active Member
شما میبایست دایرکتوری libs رو حفظ کنی بقیه حذف کن
 
آخرین ویرایش:

whiskey

New Member
مشکل فارسی می تواند از اسمازتی باشد؟

سلام دوستان.
این یکی از معدود تاپیکایی که گیر آوردم تا سؤالمو مطرح کنم.
من یه CMS رو که قالبش با Smarty طراحی شده، فارسی کردم. فایل های TPL و Database هم کاملاً برای زبان فارسی آماده شدن، و 90 درصد جاها مشکلی با فارسی نیست، اما یکی دو جا که فکر می کنم مربوط به Session ها و قسمت های دیگه ای که اطلاعات فارسی از بانک اطلاعاتی استخراج می شن، متأسفانه با کاراکترهای اجق وجق روبرو می شم.
اگر باید در Smarty اصلاحاتی انجام بشه، لطفاً راهنمایی کنید.
سپاسگزارم!
 

irlogo

Active Member
بچه ها من دقیق نمی دونم اسمارتی چیه

تو رو خدا یه جوری توضیح بدین بفهمیم چیه؟
اسمارتی که شما میگین همینه؟
smarti.net
Or
smarty.net?
 

NabiKAZ

Well-Known Member
سلام دوستان.
این یکی از معدود تاپیکایی که گیر آوردم تا سؤالمو مطرح کنم.
من یه CMS رو که قالبش با Smarty طراحی شده، فارسی کردم. فایل های TPL و Database هم کاملاً برای زبان فارسی آماده شدن، و 90 درصد جاها مشکلی با فارسی نیست، اما یکی دو جا که فکر می کنم مربوط به Session ها و قسمت های دیگه ای که اطلاعات فارسی از بانک اطلاعاتی استخراج می شن، متأسفانه با کاراکترهای اجق وجق روبرو می شم.
اگر باید در Smarty اصلاحاتی انجام بشه، لطفاً راهنمایی کنید.
سپاسگزارم!

تا اونجایی که بنده اطلاع دارم تنظیمات خاصی برای استفاده از زبان فارسی در اسمارتی وجود نداره.
اول باید عجق وجق رو ترجمه کرد ! باید دید این بهم ریختگی به چه شکله، ممکنه از ساختار بانک اطلاعاتی باشه یا از کدپیج و charset صفحتون باشه ...
 

NabiKAZ

Well-Known Member
بچه ها من دقیق نمی دونم اسمارتی چیه

تو رو خدا یه جوری توضیح بدین بفهمیم چیه؟
اسمارتی که شما میگین همینه؟
smarti.net
Or
smarty.net?

فکر میکنم در همین تاپیک به اندازه کافی در مورد کلیات اسمارتی بحث شده با این حال اگر مشخصاً سوالی دارید مطرح کنید شاید سوال ما هم باشه.
این هم سایت رسمیش:
http://www.smarty.net
 

NabiKAZ

Well-Known Member
سلام ،
تابع display قالب رو پردازش میکنه و نتیجه رو مستقیم به خروجی میفرسته.
چطور میشه نتیجه پردازش رو بجای ارسال به خروجی در یک متغییر ذخیره کرد.

تشکر
 
  • Like
Reactions: Mds

Mds

Active Member
منم همین رو می خوام بدونم

با تشکر از نبی جون
این مشگل من هم هست
اگر کسی می دونه بگه ممنونش میشم :)
 

NabiKAZ

Well-Known Member
از بافر (buffer) نمیتونی استفاده کنی؟
شاید بشه ولی اگرم بشه لقمه رو دور سر چرخوندنه، حتماً راه منطقی تری برای اینکار باید وجود داشته باشه.
ضمناً کاری که من میخوام بکنم بعیده با بافر راه بیافته.
من میخوام قالب پردازش شده رو ایمیل کنم ، پس باید اول متغییر باشه تا بفرستمش به تابع ایمیل...
 

tabib_m

Member
شاید بشه ولی اگرم بشه لقمه رو دور سر چرخوندنه، حتماً راه منطقی تری برای اینکار باید وجود داشته باشه.
اتفاقا من نظرم برعکسه.
مطمئنا اسمارتی اونقدر احمق نیست که بخوات خروجی قالب رو پس از این که به طور کلی ساخته شد, به خروجی بفرسته! این یعنی این که در حقیقت چیزی *جمع* نمیشه که بخوات به خروجی فرستاده بشه, یا توی یک متغیر ریخته بشه!
دقیقا مثل خروجی ساده ی یک کد php میمونه. یعنی هنگام پردازش, به خروجی فرستاده میشه.

طبیعتا تنها راه (که کاملا منطقی هم هست) برای جمع آوری خروجی توی یک متغیر همون بافر کردن هست.

من میخوام قالب پردازش شده رو ایمیل کنم ، پس باید اول متغییر باشه تا بفرستمش به تابع ایمیل...
مشکلت رو متوجه نمیشم!
اینجا
رو کامل خوندی؟ :)
مطمنا این یکی حتما کارت رو راه میندازه!

موفق باشید.
 

para2x

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

para2x

Member
ببخشيد اون كشيدن اطلاعت از ديتا بيس اينجوري مي خوام كه مثلا :
الان بدون اسمارتي ، حلقم يه جاهايي نياز هس كه يه تگ اچتمل رو نشون بده ، يه تيبل رو بسازه و اينا ، ....
حالا با اسمارتي تويه اين وضع رو مي خوام بدونم
 

para2x

Member
ببخشيد من واقعا نتوستم بگم چي مي خوام
منظورم معادل اسمارتي اين هست
PHP:
<?
while ($Row = mysql_fetch_array ($Result)) {
 $id=$Row[id];
  $read=$Row[reado];
   $type2=$Row[type];
?>
	

		<tr>
           <td width="20%"  class=quotecontent><font face="Tahoma" size="2"><?php if($read==0){
		   	echo stname("$Row[fromid]",$type2);
			   }else{
		    echo (stname("$Row[fromid]",$type2));
			}
			?></td>
          <td width="40%"   class=quotecontent
><font face="Tahoma" size="2"><A 
            onclick="LoadPage('pm/showpm.php?id=<?php echo ("$Row[id]");?>?AJAXED=1','center');return false;" 
            href="index.php/#"> <?php if($read==0){echo ("<b>$Row[subject]</b>");}else{ echo ("$Row[subject]");}?></td>
          <td width="30%"   class=quotecontent><font face="Tahoma" size="2"><?php echo ("$Row[dates]");?></td>
                   <td width="10%"   class=quotecontent>
          <A 
            onclick="LoadPage('pm/inbox.php?id=<?php echo ("$Row[id]");?>?AJAXED=1','center');return false;" 
            href="index.php/#">         
                
          <img border="0" src="multi/delete.gif" align="right" width="22" height="22"></td>
        </tr>
      
      <?
      }?>
   
  
</TR></TABLE>
 

NabiKAZ

Well-Known Member
ببخشيد من واقعا نتوستم بگم چي مي خوام
منظورم معادل اسمارتي اين هست


من فکر کنم متوجه منظورت شدم.
قبلش بگم که اگر کمی کدهات رو مرتب تر بنویسی بد نیست.



یه مثال عملی ساده میزنم فکر کنم متوجه بشی:

کد php :
PHP:
 while($rows = mysql_fetch_array($result))
{
 $rows_news[$n][id] = $rows[news_id];
 $rows_news[$n][subject] = $rows[news_subject];
 $n++;
}
$smarty->assign('rows_news', $rows_news);
کد smarty :
PHP:
 {if $rows_news}
 <ul>
 {* BEGIN rows news *}
 {foreach from=$rows_news item=row_news}
 <li><a href="/news/view/{$row_news.id}">{$row_news.subject}</a></li>
 {/foreach}
 {* END rows news *}
 </ul>
{else}
 <p class="NotFound">
 {$L_NOT_FOUND}</p>
{/if}

از همون روش آرایه دو بعدی که خودت اشاره کردی استفاده شده، که من خودم از این روش استفاده میکنم و مشکلی در ترتیب نمایش ندیدم.
شاید راه های دیگه ای هم باشه ولی من با این روش مشکل نداشتم.

موفق باشید
نبی
 

para2x

Member
نبي جون خيلي ازت ممنون
بدون كه من تورو يكي از با سواد تربن آدم هاي اين تالار مي دونم وخيلي دوست دارم
بازم تشكر
 

NabiKAZ

Well-Known Member
نبي جون خيلي ازت ممنون
بدون كه من تورو يكي از با سواد تربن آدم هاي اين تالار مي دونم وخيلي دوست دارم
بازم تشكر
خواهش میکنم ، خجالت میدید.
فکر کنم برای همین اینجا جمع شدیم که به هم کمک کنیم.
خوشحالم که مشکلت حل شد.
 
به نام او::

من چند تا سوال در زمینه اسمارتی دارم.

آقا من در یک کتاب خوندم که برای اینکه امکان نوشتن اطلاعات در شاخه های compile_dir و cache_dir فراهم بشه باید برای اسمارتی دسترسی نوشتن فعال بشه.باید در مسیر /user/local/apachi/conf/ فایلی با نام httod.conf رو ویرایش کنیم .خوب دسترسی به این فایل تا جایی که من میدونم مجاز نیست ؟

همچنین در اول بعضی از صفحاتی که با پسوند tpl هستند کد زیر رو میبینم::
{config_load file="test.conf"}

خوب این آیا هموان فایل هستش که باید مجوزها در اون نوشته بشه؟

چرا وقتی من اسمارتی رو روی هاستم فرستادم بدون اینکه تغییری در اون بدم هیچ خروجی به من نداد و هیچ اروری هم به من نداد؟

و یک جا هم خوندم افزودن کتابخانه اسمارتی به فایل php.ini که البته هیچ کدی هم اون طرف برای این حرفش نذاشته بود.میخواستم بدونم که آیا کسی در این رابطه چیزی شنیده یا نه؟
 

NabiKAZ

Well-Known Member
به نام او::

من چند تا سوال در زمینه اسمارتی دارم.

آقا من در یک کتاب خوندم که برای اینکه امکان نوشتن اطلاعات در شاخه های compile_dir و cache_dir فراهم بشه باید برای اسمارتی دسترسی نوشتن فعال بشه.باید در مسیر /user/local/apachi/conf/ فایلی با نام httod.conf رو ویرایش کنیم .خوب دسترسی به این فایل تا جایی که من میدونم مجاز نیست ؟

همچنین در اول بعضی از صفحاتی که با پسوند tpl هستند کد زیر رو میبینم::
{config_load file="test.conf"}

خوب این آیا هموان فایل هستش که باید مجوزها در اون نوشته بشه؟

چرا وقتی من اسمارتی رو روی هاستم فرستادم بدون اینکه تغییری در اون بدم هیچ خروجی به من نداد و هیچ اروری هم به من نداد؟

و یک جا هم خوندم افزودن کتابخانه اسمارتی به فایل php.ini که البته هیچ کدی هم اون طرف برای این حرفش نذاشته بود.میخواستم بدونم که آیا کسی در این رابطه چیزی شنیده یا نه؟
سلام دوست عزیز

- برای مجوز نوشتن در مورد شاخه هایی که فرمودید کافیه permission شاخه ها 777 بشه و تنظیمات دیگه ای نیاز نیست.

- اسمارتی یک کلاسه که طبیعتاً هیچ خروجیی نداره و باید اون رو به پروژه الحاق کنیم و با استفاده از توابع اون، خروجی ها رو تولید کنیم.

- در php.ini هم لازم به تغییری نیست.

موفق باشید
نبی
 
به نام او::

خوب من میخوام بدونم که اگه بخوام سطوح دسترسی رو تعریف کنم چطوری میتونم به دایرکتوری conf دسترسی داشته باشم؟

بعدش هم مگه وقتی وارد پوشه دمو برنامه بریم نباید خروجی تولید کنه؟
 

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

بالا