رفتن به مطلب

آموزش : مرتب (راست چین) نمودن بخش اطلاعات کاربری در تاپیک ها


ارسال‌های توصیه شده

  • مدیر کل بازنشسته سایت

سلام

 

برحسب نیاز که تعدادی از کاربران سعی بر مرتب و راست چین نمودن اطلاعات کاربری داشتند این آموزش تهیه گردید....

 

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

post-1632-0-70572900-1388152911.jpg          post-1632-0-66995900-1388152916.jpg  

 

 

برای این کار کدهای زیر را در انتهای کدهای استایل قالب( ipb_styles ) که در مسیر زیر است  قرار دهید و ذخیره کنید.

Look & Feel  >>  Manage Skin Sets & Templates  >>  انتخاب قالب  >> CSS >> ipb_styles
/********************************UserInfo style****************************************/

.UserInfo {
font-size: 11px;
background-color: rgb(241,241,241);
padding: 4px 0px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
}

.Justified {
margin: 2px 0 0;
border-bottom: 1px dashed #8F8F8F;
overflow: hidden;
line-height: 1.5;
}

.Justified dt {
font-size: 11px!important;
float: right;
padding-left: 2px;
text-align: left;
max-width: 100%;
color: rgb(55, 134, 216);
}

.Justified dd {
float: left;
font-size: 10px!important;
text-align: right;
max-width: 100%;
padding-right: 2px;
}

خوب حالا از قسمت تمپلت قالب Template بخش Global Templates  بیت userInfoPane انتخاب کنید و کدزیر را سرچ کنید و تا انتها کدها را پاک کنید

<if test="postCount:|:$author['member_id']">

بعد کدهای زیر را انتهای کدهای userInfoPane  اضافه کنید و ذخیره کنید.

<!--  *************** -- UserInfo -- ***************  -->

<!--  *************** -- قسمت تعداد پست های ارسالی -- ***************  -->
  <div class="UserInfo">
		<if test="postCount:|:$author['member_id']">		
		   <dl class="Justified">
			<dt>ارسال</dt>
<dd>{parse expression="$this->registry->getClass('class_localization')->formatNumber( intval( $author['posts'] ) )"}</dd>
		</dl>
		</if>
<!--  *************** -- تاریخ عضویت -- ***************  -->
        <dl class="Justified">
<dt>{$this->lang->words['m_joined']}</dt>
<dd>{parse date="$author['joined']" format="joined"}</dd>
        </dl>
<!--  *************** -- امتیاز هشدار -- ***************  -->

<if test="authorwarn:|:$author['show_warn']">
	<dl class="Justified">
		<dt>امتیاز هشدار</dt>
			<dd><a href='{parse url="app=members&module=profile&section=warnings&member={$author['member_id']}&from_app={$this->request['app']}&from_id1={$contentid}&from_id2={$options['id2']}" base="public"}' id='warn_link_{$contentid}_{$author['member_id']}' title='{$this->lang->words['warn_view_history']}'>{parse expression="sprintf( $this->lang->words['warn_statuss'], $author['warn_level'] )"}</a></dd>
	</dl>
   </if>
<!--  *************** -- بخش فیلدهای تعریف شده -- ***************  -->
	<if test="authorcfields:|:$author['custom_fields'] != """>
                        <foreach loop="customFieldsOuter:$author['custom_fields'] as $group => $data">
				<foreach loop="customFields:$author['custom_fields'][ $group ] as $field">
                                               <if test="$field != ''">
                                            <dl class="Justified">
							{$field}
                                             </dl>
					  </if> 
				</foreach>
			</foreach>
	          </if> 

		</div>
	</ul>
</div> 

توضیحات فارسی نوشتم تا اگر قصد حذف کدرن قسمتی داشته باشید مشکلی نباشد.

 

فقط یک نکته  : برای اینکه همین استایل برای فیلدهای تعریف شده اعمال شود(مثلا : محل سکونت،ویندوز و....) باید یک تغییر کوچک در بخش Custom Profile Fields  برای فیلدی که تعریف کرده اید انجام دهید ، پس به آدرس مقابل رفته   Members >> Custom Profile Fields    و فیلدی که ایجاد کرده اید را انتخاب کنید

از قسمت انتهای فرم بخش Topic View Format?  کد را به شکل زیر اصلاح کنید 

 

کد موجود :

<span class='ft'>{title}</span><span class='fc'>{content}</span>

کد تصحیح شده :

<dt>{title}</dt><dd>{content}</dd>

یعنی قسمت {title} بین <dt></dt>  و قسمت {content} بین <dd></dd>  قرار می گیرد.

 

 

امیدوارم لذت برده باشید....خسته نباشید

 

موفق باشید.... :)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ 26
  • عمر موضوع
  • آخرین پاسخ

سلام علی جان

 

من که واقعا لذت بردم. خیلی عالی هست یعنی در هر دو قسمت تمپلیت و css کدها طوری هست که دستمون برای شخصی سازی بیشتر کاملا باز هست. واقعا ممنون.

 

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

 

البته به نظر میرسه حالتش فرق کنه. منظورم این هست که مثلا من هوک نمایش تاریخ عضویت رو نصب نکرده بودم ولی در کدهایی که بالا نوشتید، این گزینه هم بود.

یعنی آیا می‌شود یک حالتی بشه که بدون نصب هوک نمایش تعداد بلاگ‌ها یا تعداد مقاله‌ها، کدی به همین کدهای بالا اضافه کرد که هماهنگ با بقیه باشد؟

 

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • مدیر کل بازنشسته سایت

سلام برای بعضی موارد شدنی هست این کار، برای مثال ، تاپیک زیر مربوط میشه به نمایش تعداد لایک های هر کاربر در مشخصات کاربری اون کاربر بدون نیاز به نصب هوک مورد نظر :

http://ipsfarsi.com/topic/13581-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%A7%D9%85%D8%AA%DB%8C%D8%A7%D8%B2%D9%87%D8%A7%DB%8C-%D9%85%D8%AB%D8%A8%D8%AA-%D8%AF%D8%B1-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%DA%A9%D8%A7%D8%B1%D8%A8/

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون سحر گرامی

اتفاقا من در مورد این هوک تعداد لایک‌ها هم قصد داشتم سوالی رو بپرسم، چون تنها المانی هست که متفاوت هست با سایر المان‌های قسمت اطلاعات کاربری. ممنون از یادآوری

 

پس غیر از هماهنگ سازی هوک‌های نمایش تعداد بلاگ‌ها، مقاله‌ها و .... با مدل dd و dt که علی گفتن، در مورد هماهنگ سازی این موضوع هم میشود کاری کرد. یعنی مثل همین تصویر بالا که علی برای نمونه اعمال شده کدها گذاشتن، باید بشود که تعداد امتیازها/لایک‌ها هم با dd و dt هماهنگ کرد.

 

همه اینها برای یکپارچه شدن بخش اطلاعات کاربری هست که به لحاظ ظاهری کاملا هماهنگ با هم باشن و این نمونه dd و dt به نظر من خیلی جالب هست.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • مدیر کل بازنشسته سایت

خدمت شما عرض کنم رضاجان ، همانطور که خودت هم میدونی کار نشد نداره ، درسته ...!!! :DD:

 

 

 

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

امکانش است که باید تمپلت اون هوک یا مد تصحیح بشه و همانطور که گفتی باید از کلاس Justified  و dd و dt استفاده کنید ولی اگه کدش باشد مثل همون تاریخ عضویت به نظرم خیلی بهتره.....

 

 

 

 

البته به نظر میرسه حالتش فرق کنه. منظورم این هست که مثلا من هوک نمایش تاریخ عضویت رو نصب نکرده بودم ولی در کدهایی که بالا نوشتید، این گزینه هم بود.

یعنی آیا می‌شود یک حالتی بشه که بدون نصب هوک نمایش تعداد بلاگ‌ها یا تعداد مقاله‌ها، کدی به همین کدهای بالا اضافه کرد که هماهنگ با بقیه باشد؟

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

این‌ها کد مربوط به نمایش بلاگ هست:

<if test="$blogentries > 0">
									<li class='post_count desc lighter'>
										<a href='{$link}' title='{$this->lang->words['blogentries_created']}'>{parse format_number="$blogentries"} {$this->lang->words['blogentries_created']}</a>
									</li>
			</if>

و این کد هم مربوط به اخبار و مقاله:

<if test="hasCcsDatabaseCount:|:$author['_ccs_'.$id.'_count']"><li><a href='{parse url="app=core&module=search&do=user_activity&search_app=ccs&mid={$author['member_id']}&search_app_filters[ccs][searchInKey]=database_{$id}" base="public"}' ="{$author['_ccs_'.$id.'_count']} {$author['_ccs_'.$id.'_lang']}" class="desc lighter blend_links">{$author['_ccs_'.$id.'_count']} {$author['_ccs_'.$id.'_lang']}</a></li></if>

من خواستم برای تایتل dt و برای کانتنت dd رو اعمال کنم اما سردرگم کننده هست.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • مدیر کل بازنشسته سایت

برای مورد دوم نمایش اخبار و مقاله (IP.Content ) که از هوک (MT)ContentArticleCountInUserInfo  استفاده می کنید در تمپلت هوک بنام hookDatabaseUserInfoCount  که در Content) Global Templates) قرار دارد کد زیر را جایگزین کد موجود کنید  :

<if test="hasCcsDatabaseCount:|:$author['_ccs_'.$id.'_count']">
<dl class="Justified">
<dt>{$author['_ccs_'.$id.'_lang']}</dt>
<dd><a href='{parse url="app=core&module=search&do=user_activity&search_app=ccs&mid={$author['member_id']}&search_app_filters[ccs][searchInKey]=database_{$id}" base="public"}' ="{$author['_ccs_'.$id.'_count']} {$author['_ccs_'.$id.'_lang']}">{$author['_ccs_'.$id.'_count']}</a></dd>
</dl>
</if>

البته در خط سوم یعنی داخل <dt> می توانید فارسی بنویسید مثلا : <dt>مقالات</dt>  بدون اینکه از فایل زبان و از ترجمه استفاده کند.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • مدیر کل بازنشسته سایت

برای مورد اول نمایش بلاگ (IP.Blog.) که از هوک Number of Blog Entries Created  استفاده می کنید ، بعد از نصب هوک به تمپلت قالب رفته Global Templates  و بیت hookBlogEntriesCreated  را انتخاب کنید و کد زیرا جایگزین کد موجود کنید.

<if test="$blogentries > 0">
			<dl class="Justified">
<dt>{$this->lang->words['blogentries_created']}</dt>
<dd><a href='{$link}' title='{$this->lang->words['blogentries_created']}'>{parse format_number="$blogentries"}</a></dd>
				</dl>
			</if>

البته در خط سوم یعنی داخل <dt> می توانید فارسی بنویسید مثلا : <dt>تعداد بلاگ</dt>  بدون اینکه از فایل زبان و از ترجمه استفاده کند.

 

 

نتیجه کار

post-1632-0-38491000-1388181350.jpg

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

هر دو عالی بودند علی جان. خسته نباشی

 

فقط در مورد این هوک نمایش لایک/امتیاز هم اگر بشود با همین حالت dd و dt هماهنگ کرد واقعا عالی می‌شود.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • مدیر کل بازنشسته سایت

سلام 

برای نمایش امتیاز(محبوبیت) در بخش اطلاعات کاربری ، کد زیر را در بیت userInfoPane  بین یکی از کدها جایگیزین کنید مثلا بعد از کدهای "امتیاز هشدار" اضافه کنید یعنی بعد از <if/> 

<!--  *************** -- امتیاز محبوبیت -- ***************  -->
     <if test="RepPositive:|:$author['pp_reputation_points'] > 0">
            <dl class="Justified"> 
               <dt>امتیاز</dt>
<dd>{parse expression="$this->lang->formatNumber( intval( $author['pp_reputation_points'] ) )"}</dd>
           </dl>
       </if>

     <if test="RepNegative:|:$author['pp_reputation_points'] < 0">
            <dl class="Justified">
               <dt> امتیاز</dt>
<dd>{parse expression="$this->lang->formatNumber( intval( $author['pp_reputation_points'] ) )"}</dd>
           </dl>
       </if>

     <if test="RepZero:|:$author['pp_reputation_points'] == 0">
            <dl class="Justified">
               <dt>امتیاز</dt>
<dd>{parse expression="$this->lang->formatNumber( intval( $author['pp_reputation_points'] ) )"}</dd>
           </dl>
       </if>
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...