• هاست سان
  • با خرید اشتراک ویژه شما میتوانید جدیدترین آپدیت افزونه ها و قالب های زیبا و پرکاربرد زنفورو را دریافت کنید!

    هر ماه یک کد تخفیف 60 درصدی محصولات فروشگاه به کاربران منتخب بخش ویژه اهدا می‌شود

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

وضعیت
موضوع بسته شده است و نمی‌توان پاسخ جدیدی فرستاد.
پشتیبانی از نسخه های
  1. 2.1
  2. 2.2
سلام
اگر میخواهید اولین پست موضوع را بلوری کنید با این آموزش 2 گزینه خواهید داشت ، اینکه کل پست را بلوری کنید یا فقط قسمتی از پست بلوری بشه و بقیهاش اصلاً نشون داده نشده .
و مهمان باید عضو سایت بشه تا بتونه اولین پست موجود در سایت رو بتونه ببینه.

تصویر قبل از عملیات و در حالت عادی به شکل زیر است :

screencapture-xenforotest-ir-threads-D9-85-D9-88-D8-B6-D9-88-D8-B9-D8-A7-D9-86-D8-AC-D9-85-D9-...png


برای اینکه کل پست رو بلوری کنید ، اقدامات زیر را انجام دهید.
مسیر طیر را طی کنید :
  1. شکل و ظاهر
  2. استایل و الگوها
  3. الگوها
سپس الگوی post_macros را پیدا کند .
و در این الگو ، کد زیر را پیدا کنید .

کد:
{{ bb_code($post.message, 'post', $post) }}

و آن را با کد زیر عوض کنید .

کد:
<div class="{{ (!$xf.visitor.user_id && $post.isFirstPost()) ? 'blur-message-content' : '' }}">
                {{ bb_code($post.message, 'post', $post) }}
            </div>
            
            <xf:if is="!$xf.visitor.user_id && $post.isFirstPost()">
                <div class="block blockMessage blockMessage--error blockVisitor">
شما باید عملیات
                    <a href="{{ link('login') }}" class=""
                            data-xf-click="overlay" data-follow-redirects="on">
                            <span class="p-navgroup-linkText">{{ phrase('log_in') }}</span>
                        </a>
                    یا
                    <a href="{{ link('register') }}" class=""
                                data-xf-click="overlay" data-follow-redirects="on">
                                <span class="p-navgroup-linkText">{{ phrase('register') }}</span>
                            </a>
                    
را انجام دهید تا بتوانید متن را مشاهده کنید.
                </div>
            </xf:if>
و سپس الگوی extra.less را از مسیر زیر پیدا کنید .
  1. شکل و ظاهر
  2. استایل و الگوها
  3. الگوها
و کد زیر را در آن قرار دهید .
کد:
.blur-message-content {
    -webkit-filter: blur(4px);
    -moz-filter: blur(4px);
    -ms-filter: blur(4px);
    -o-filter: blur(4px);
    filter: blur(4px);
    filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='2');
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -o-user-select: none;
    user-select: none;
}

.blockVisitor{
    margin-top: 1rem !important;
    a{
        color: @xf-linkColor !important;
    }
}

نتیجه :

screencapture-xenforotest-ir-threads-D9-85-D9-88-D8-B6-D9-88-D8-B9-D8-A7-D9-86-D8-AC-D9-85-D9-...png

...

و حال
برای اینکه فقط قسمتی از پست اول موضوع رو بلوری کنید و بقیه اش اصلا نشون نده ، اقدامات زیر را انجام دهید.
مسیر طیر را طی کنید :
  1. شکل و ظاهر
  2. استایل و الگوها
  3. الگوها
سپس الگوی post_macros را پیدا کند .
و در این الگو ، کد زیر را پیدا کنید .

کد:
{{ bb_code($post.message, 'post', $post) }}

و آن را با کد زیر عوض کنید .

کد:
<div class="{{ (!$xf.visitor.user_id && $post.isFirstPost()) ? 'blur-message-content' : '' }}">
                <xf:if is="$xf.visitor.user_id">
                {{ bb_code($post.message, 'post', $post) }}
                <xf:else />
                    {{ bb_code($post.message|substr(0,100), 'post', $post) }}                   
                </xf:if>
            </div>
            
            <xf:if is="!$xf.visitor.user_id && $post.isFirstPost()">
                <div class="block blockMessage blockMessage--error blockVisitor">
شما باید عملیات                    <a href="{{ link('login') }}" class=""
                            data-xf-click="overlay" data-follow-redirects="on">
                            <span class="p-navgroup-linkText">{{ phrase('log_in') }}</span>
                        </a>
                    یا
                    <a href="{{ link('register') }}" class=""
                                data-xf-click="overlay" data-follow-redirects="on">
                                <span class="p-navgroup-linkText">{{ phrase('register') }}</span>
                            </a>
                    
را انجام دهید تا بتوانید پست اول این موضوع را به صورت کامل مشاهده کنید.                </div>
            </xf:if>

و سپس الگوی extra.less را از مسیر زیر پیدا کنید .
  1. شکل و ظاهر
  2. استایل و الگوها
  3. الگوها
و کد زیر را در آن قرار دهید .
کد:
.blur-message-content {
    -webkit-filter: blur(4px);
    -moz-filter: blur(4px);
    -ms-filter: blur(4px);
    -o-filter: blur(4px);
    filter: blur(4px);
    filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='2');
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -o-user-select: none;
    user-select: none;
}

.blockVisitor{
    margin-top: 1rem !important;
    a{
        color: @xf-linkColor !important;
    }
}

نتیجه :

screencapture-xenforotest-ir-threads-D9-85-D9-88-D8-B6-D9-88-D8-B9-D8-A7-D9-86-D8-AC-D9-85-D9-...png

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

موضوعات مشابه

پاسخ‌ها
1
بازدیدها
417
پاسخ‌ها
9
بازدیدها
835
پاسخ‌ها
2
بازدیدها
573
پاسخ‌ها
6
بازدیدها
827
پاسخ‌ها
0
بازدیدها
540
پاسخ‌ها
0
بازدیدها
442
پاسخ‌ها
1
بازدیدها
549
عقب
بالا