عرض مشاركة واحدة
قديم 06-04-2018, 09:46 PM
المشاركة 8
MesterPerfect
.:: كبار شخصيات المنتدى ::.
المنتدى مراقب من خلاله
  • MesterPerfect غير متواجد حالياً
افتراضي رد: شرح اضافة h1 و h2 و h3 لمنتديات الزين فورو الجيل الثانى
ضع رابط منتداك مع قالب المشار له فى الشرح السابق
تفضل مع العلم أن منتداي هو فقط للتجارب والتعلم لي انا وصديقي
كود:
http://forums.hamadqr.com/
وهذا هو القالب


كود:
<xf:title page="{$page}">{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:title>
<xf:h1>{{ prefix('thread', $thread) }}{$thread.title}</xf:h1>

<xf:description meta="false">
	<ul class="listInline listInline--bullet">
		<li>
			<i class="fa fa-user" aria-hidden="true" title="{{ phrase('thread_starter')|for_attr }}"></i>
			<span class="u-srOnly">{{ phrase('thread_starter') }}</span>

			<xf:username user="{$thread.User}" defaultname="{$thread.username}" class="u-concealed" />
		</li>
		<li>
			<i class="fa fa-clock-o" aria-hidden="true" title="{{ phrase('start_date')|for_attr }}"></i>
			<span class="u-srOnly">{{ phrase('start_date') }}</span>

			<a href="{{ link('threads', $thread) }}" class="u-concealed"><xf:date time="{$thread.post_date}" /></a>
		</li>
		<xf:if is="$xf.options.enableTagging AND ($thread.canEditTags() OR $thread.tags)">
			<li>
				<i class="fa fa-tags" aria-hidden="true" title="{{ phrase('tags')|for_attr }}"></i>
				<span class="u-srOnly">{{ phrase('tags') }}</span>

				<xf:if is="$thread.tags">
					<xf:foreach loop="$thread.tags" value="$tag">
						<a href="{{ link('tags', $tag) }}" class="tagItem" dir="auto">{$tag.tag}</a>
					</xf:foreach>
				<xf:else />
					{{ phrase('none') }}
				</xf:if>
				<xf:if is="$thread.canEditTags()">
					<a href="{{ link('threads/tags', $thread) }}" class="u-concealed" data-xf-click="overlay"
						data-xf-init="tooltip" title="{{ phrase('edit_tags')|for_attr }}">
						<i class="fa fa-pencil" aria-hidden="true"></i>
						<span class="u-srOnly">{{ phrase('edit') }}</span>
					</a>
				</xf:if>
			</li>
		</xf:if>
	</ul>
</xf:description>

<xf:set var="$fpSnippet" value="{{ snippet($firstPost.message, 0, {'stripBbCode': true}) }}" />

<xf:macro template="metadata_macros" name="metadata"
	arg-description="{$fpSnippet}"
	arg-shareUrl="{{ link('canonical:threads', $thread) }}"
	arg-canonicalUrl="{{ link('canonical:threads', $thread, {'page': $page}) }}" />

<xf:page option="ldJsonHtml">
	<xf:if is="$thread.User.avatar_highdpi">
		<xf:set var="$image">{$thread.User.getAvatarUrl('h', null, true)}</xf:set>
	<xf:elseif is="$thread.User.avatar_date" />
		<xf:set var="$image">{$thread.User.getAvatarUrl('l', null, true)}</xf:set>
	<xf:elseif is="property('publicMetadataLogoUrl')" />
		<xf:set var="$image">{{ base_url(property('publicMetadataLogoUrl'), true) }}</xf:set>
	</xf:if>
	<xf:if is="$image">
		<script type="application/ld+json">
		{
			"@context": "https://schema.org",
			"@type": "DiscussionForumPosting",
			"@id": "{{ link('canonical:threads', $thread)|escape('json') }}",
			"headline": "{$thread.title|escape('json')}",
			"articleBody": "{$fpSnippet|escape('json')}",
			"articleSection": "{$thread.Forum.Node.title|escape('json')}",
			"author": {
				"@type": "Person",
				"name": "{{ ($thread.User ? $thread.User.username : $thread.username)|escape('json') }}"
			},
			"datePublished": "{{ date($thread.post_date, 'Y-m-d')|escape('json') }}",
			"dateModified": "{{ date($thread.last_post_date, 'Y-m-d')|escape('json') }}",
			"image": "{$image|escape('json')}",
			"interactionStatistic": {
				"@type": "InteractionCounter",
				"interactionType": "https://schema.org/ReplyAction",
				"userInteractionCount": {$thread.reply_count}
			}
		}
		</script>
	</xf:if>
</xf:page>

<!--[XF:content_top]-->

<xf:if is="$pendingApproval">
	<div class="blockMessage blockMessage--important">{{ phrase('content_submitted_displayed_pending_approval') }}</div>
</xf:if>

<xf:macro template="forum_macros" name="forum_page_options" arg-forum="{$forum}" arg-thread="{$thread}" />

<xf:breadcrumb source="$forum.getBreadcrumbs()" />

<xf:if is="$canInlineMod OR $thread.canUseInlineModeration()">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<xf:macro template="lightbox_macros" name="setup" arg-canViewAttachments="{$thread.canViewAttachments()}" />

<xf:if is="$poll">
	<xf:macro template="poll_macros" name="poll_block" arg-poll="{$poll}" />
</xf:if>

<xf:ad position="thread_view_above_messages" arg-thread="{$thread}" />

<div class="block block--messages" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="post" data-href="{{ link('inline-mod') }}">

	<xf:macro name="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer" />

	<div class="block-outer"><xf:trim>
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{{ $thread.reply_count + 1 }}"
			link="threads" data="{$thread}"
			wrapperclass="block-outer-main" />
		<xf:if contentcheck="true">
			<div class="block-outer-opposite">
				<div class="buttonGroup">
				<xf:contentcheck>
					<xf:if is="$canInlineMod">
						<xf:macro template="inline_mod_macros" name="button" />
					</xf:if>
					<xf:if is="$thread.discussion_state == 'deleted' AND $thread.canUndelete()">
						<xf:button href="{{ link('threads/undelete', $thread) }}" class="button--link" overlay="true">
							{{ phrase('undelete') }}
						</xf:button>
					</xf:if>
					<xf:if is="$thread.canApproveUnapprove() AND $thread.discussion_state == 'moderated'">
						<xf:button href="{{ link('threads/approve', $thread) }}" class="button--link" overlay="true">
							{{ phrase('approve') }}
						</xf:button>
					</xf:if>
					<xf:if is="$xf.visitor.user_id AND $thread.isUnread()">
						<xf:button href="{{ $firstUnread ? ('#post-' . $firstUnread.post_id) : link('threads/unread', $thread, {'new': 1}) }}"
							class="button--link"
							data-xf-click="scroll-to"
							data-silent="true">
								{{ phrase('jump_to_new') }}
						</xf:button>
					</xf:if>
					<xf:if is="$thread.canWatch()">
						<xf:button href="{{ link('threads/watch', $thread) }}" class="button--link"
							data-xf-click="switch-overlay"
							data-sk-watch="{{ phrase('watch') }}"
							data-sk-unwatch="{{ phrase('unwatch') }}">
							<xf:if is="{$thread.Watch.{$xf.visitor.user_id}}">
								{{ phrase('unwatch') }}
							<xf:else />
								{{ phrase('watch') }}
							</xf:if>
						</xf:button>
					</xf:if>

					<xf:if contentcheck="true">
						<div class="buttonGroup-buttonWrapper">
							<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true" title="{{ phrase('more_options')|for_attr }}">•••</xf:button>
							<div class="menu" data-menu="menu" aria-hidden="true">
								<div class="menu-content">
									<h4 class="menu-header">{{ phrase('more_options') }}</h4>
									<xf:contentcheck>
										<!--[XF:thread_tools_menu:top]-->
										<xf:if is="$thread.canEdit()">
											<a href="{{ link('threads/edit', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('edit_thread') }}</a>
										</xf:if>
										<xf:if is="$thread.canLockUnlock()">
											<a href="{{ link('threads/quick-close', $thread) }}"
												class="menu-linkRow"
												data-xf-click="switch"
												data-menu-closer="true">

												<xf:if is="$thread.discussion_open">
													{{ phrase('close_thread') }}
												<xf:else />
													{{ phrase('open_thread') }}
												</xf:if>
											</a>
										</xf:if>
										<xf:if is="$thread.canStickUnstick()">
											<a href="{{ link('threads/quick-stick', $thread) }}"
												class="menu-linkRow"
												data-xf-click="switch"
												data-menu-closer="true">

												<xf:if is="$thread.sticky">
													{{ phrase('unstick_thread') }}
												<xf:else />
													{{ phrase('stick_thread') }}
												</xf:if>
											</a>
										</xf:if>
										<xf:if is="$thread.canCreatePoll()">
											<a href="{{ link('threads/poll/create', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('create_poll') }}</a>
										</xf:if>
										<xf:if is="$thread.canDelete('soft')">
											<a href="{{ link('threads/delete', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('delete_thread') }}</a>
										</xf:if>
										<xf:if is="$thread.canMove()">
											<a href="{{ link('threads/move', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('move_thread') }}</a>
										</xf:if>
										<xf:if is="$thread.canReplyBan()">
											<a href="{{ link('threads/reply-bans', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('manage_reply_bans') }}</a>
										</xf:if>
										<xf:if is="$thread.canViewModeratorLogs()">
											<a href="{{ link('threads/moderator-actions', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('moderator_actions') }}</a>
										</xf:if>
										<!--[XF:thread_tools_menu:before_footer]-->
										<xf:if is="$thread.canUseInlineModeration()">
											<div class="menu-footer"
												data-xf-init="inline-mod"
												data-type="thread"
												data-href="{{ link('inline-mod') }}"
												data-toggle=".js-threadInlineModToggle">
												<xf:checkbox>
													<xf:option class="js-threadInlineModToggle" value="{$thread.thread_id}">{{ phrase('select_for_moderation') }}</xf:option>
												</xf:checkbox>
											</div>
										</xf:if>
										<!--[XF:thread_tools_menu:bottom]-->
									</xf:contentcheck>
								</div>
							</div>
						</div>
					</xf:if>
				</xf:contentcheck>
				</div>
			</div>
		</xf:if>
	</xf:trim></div>

	<div class="block-outer js-threadStatusField"><xf:trim>
		<xf:if contentcheck="true">
			<div class="blockStatus blockStatus--info">
				<xf:contentcheck>
					<xf:macro template="custom_fields_macros" name="custom_fields_view"
						arg-type="threads"
						arg-group="thread_status"
						arg-onlyInclude="{$forum.field_cache}"
						arg-set="{$thread.custom_fields}"
						arg-wrapperClass="blockStatus-message" />
				</xf:contentcheck>
			</div>
		</xf:if>
	</xf:trim></div>

	<div class="block-container lbContainer"
		data-xf-init="lightbox{{ $xf.options.selectQuotable ? ' select-to-quote' : '' }}"
		data-message-selector=".js-post"
		data-lb-id="thread-{$thread.thread_id}"
		data-lb-universal="{$xf.options.lightBoxUniversal}">

		<div class="block-body js-replyNewMessageContainer">
			<xf:foreach loop="$posts" value="$post">
				<xf:if is="$post.message_state == 'deleted'">
					<xf:macro template="post_macros" name="post_deleted"
						arg-post="{$post}"
						arg-thread="{$thread}" />
				<xf:else />
					<xf:macro template="post_macros" name="post"
						arg-post="{$post}"
						arg-thread="{$thread}" />
				</xf:if>
			</xf:foreach>
		</div>
	</div>

	<xf:if contentcheck="true">
		<div class="block-outer block-outer--after">
			<xf:contentcheck>
				<xf:pagenav
					page="{$page}" perpage="{$perPage}" total="{{ $thread.reply_count + 1 }}"
					link="threads" data="{$thread}"
					wrapperclass="block-outer-main" />
				<xf:showignored wrapperclass="block-outer-opposite" />
				<xf:if is="!$thread.canReply() AND $thread.discussion_state == 'visible' AND $thread.discussion_open">
					<div class="block-outer-opposite">
						<xf:if is="$xf.visitor.user_id">
							<span class="button is-disabled">
								{{ phrase('no_permission_to_reply') }}
								<!-- this is not interactive so shouldn't be a button element -->
							</span>
						<xf:else />
							<xf:button href="{{ link('login') }}" class="button--link" overlay="true">
								{{ phrase('log_in_or_register_to_reply') }}
							</xf:button>
						</xf:if>
					</div>
				</xf:if>
			</xf:contentcheck>
		</div>
	</xf:if>

	<xf:macro name="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer block-outer--after" />
</div>

<xf:ad position="thread_view_below_messages" arg-thread="{$thread}" />

<xf:if is="$thread.canReply()">
	<xf:form action="{{ link('threads/add-reply', $thread) }}"
		ajax="true"
		draft="{{ link('threads/draft', $thread) }}"
		class="block js-quickReply"
		data-xf-init="attachment-manager quick-reply{{ $xf.visitor.isShownCaptcha() ? ' guest-captcha' : '' }}"
		data-message-container=".js-replyNewMessageContainer"
		data-preview-url="{{ link('threads/reply-preview', $thread, {'quick_reply': 1}) }}">

		<xf:js src="xf/message.js" min="1" />
		<xf:set var="$lastPost" value="{$posts|last}" />

		<div class="block-container">
			<div class="block-body">
				<xf:macro template="quick_reply_macros" name="body"
					arg-message="{$thread.draft_reply.message}"
					arg-attachmentData="{$attachmentData}"
					arg-forceHash="{$thread.draft_reply.attachment_hash}"
					arg-messageSelector=".js-post"
					arg-multiQuoteHref="{{ link('threads/multi-quote', $thread) }}"
					arg-multiQuoteStorageKey="multiQuoteThread"
					arg-lastDate="{$lastPost.post_date}"
					arg-lastKnownDate="{$thread.last_post_date}" />
			</div>
		</div>
	</xf:form>
</xf:if>

<div class="blockMessage blockMessage--none">
	<xf:macro template="share_page_macros" name="buttons" arg-iconic="{{ true }}" arg-label="{{ phrase('share:') }}" />
</div>

<xf:macro name="thread_status" arg-thread="!" arg-wrapperClass="">
	<xf:if contentcheck="true">
		<div class="{$wrapperClass}">
			<dl class="blockStatus">
				<dt>{{ phrase('status') }}</dt>
				<xf:contentcheck>
					<xf:if is="$thread.discussion_state == 'deleted'">
						<dd class="blockStatus-message blockStatus-message--deleted">
							<xf:macro template="deletion_macros" name="notice" arg-log="{$thread.DeletionLog}" />
						</dd>
					<xf:elseif is="$thread.discussion_state == 'moderated'" />
						<dd class="blockStatus-message blockStatus-message--moderated">
							{{ phrase('awaiting_approval_before_being_displayed_publicly') }}
						</dd>
					</xf:if>
					<xf:if is="!$thread.discussion_open">
						<dd class="blockStatus-message blockStatus-message--locked">
							{{ phrase('not_open_for_further_replies') }}
						</dd>
					</xf:if>
				</xf:contentcheck>
			</dl>
		</div>
	</xf:if>
</xf:macro>

<xf:widgetpos id="thread_view_sidebar" context-thread="{$thread}" position="sidebar" />