Neler yeni

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

  • Forumdan daha fazla yararlanmak için, profilinizi telefon numaranız 📱 ile doğrulayın ve daha ayrıcalıklı olun 😉
    Daha fazla bilgi!

Regular expression sorunu

MFA

xFanatik
SMS onaylı
Kullanıcı
Katılım
26 Ağu 2017
Mesajlar
390
Çözümler
12
2 adet eklenti kullanıyorum.
[J] Thread Preview ve Tag Essentials eklentisi.
thread_list_macros üzerinde değişiklik yaptığımda bu şablonda gözükmüyor sanırım master template üzerinden çalışıyor.
Fakat regular expression uyguladığımda işlev görüyor.

Uyguladığım sistem yanlış sanırım. Kafa beyin bırakmadı üstüne gittikçe düşünemez oldum. Yeni birşeyler de gelmiyor artık aklıma :)

1620079803207.png
1620079838860.png
Kod:
Find:
<div class="tag_forum">

Replace:
$0
<xf:include template="avForumsTagEss_thread_list_macros" />

--
thread_list_macros şablonuna 251-252-253 satıra

<div class="tag_forum">

</div>

kodunu girdim ve şablon değişikliği ile arasına kodu entegre ettiriyorum sorun yok.

Kod:
Find:
<span class="threadpreview">

Replace:
$0
<xf:if is="in_array($thread.Forum.node_id, $xf.options.j_tp_forum)">
<xf:css src="j_threadpreview_post.less" />
        <a href="{{ link('threads/show', $thread) }}"
           class="jpreview"
           data-xf-init="tooltip"
           data-original-title="{{ phrase('j_thread_preview') }}"
           data-xf-click="toggle"
           data-target=".js-jpreviewTarget-{$thread.thread_id}"
           data-menu-closer="true"
           >{{ phrase('j_thread_preview') }}
        </a>
</xf:if>

----
thread_list_macros şablonuna 22-23-24 satıra

<span class="threadpreview">

</span>

kodunu girdim ve şablon değişikliği ile arasına kodu entegre ettiriyorum sorun yok.

Kod:
Find:
<\/xf:macro>\n\n.xf:macro.name="item_new_posts"  (Buraya ne yazarsam yazayım sorunu çözemedim. Zaten pek anlamıyorumda:))

Replace:
<xf:if is="in_array($thread.Forum.node_id, $xf.options.j_tp_forum)">
    <div class="js-jpreviewTarget-{$thread.thread_id} jpreviewreplace toggleTarget" data-href="trigger-href"></div>
</xf:if>
$0

----
thread_list_macros şablonuna 251-252-253 satıra girdiğin aşağıdaki kodda </div> bitimine kodu yapıştırmasını istiyorum.

<div class="tag_forum">

</div>

kodunu girdim ve şablon değişikliği ile arasına kodu entegre ettiriyorum sorun yok.


Kod:
<xf:macro name="item"
    arg-thread="!"
    arg-forum=""
    arg-forceRead="{{ false }}"
    arg-showWatched="{{ true }}"
    arg-allowInlineMod="{{ true }}"
    arg-chooseName=""
    arg-extraInfo=""
    arg-allowEdit="{{ true }}">

    <xf:css src="structured_list.less" />

    <div class="structItem structItem--thread{{ $thread.prefix_id ? ' is-prefix' . $thread.prefix_id : '' }}{{ $thread.isIgnored() ? ' is-ignored' : '' }}{{ ($thread.isUnread() AND !$forceRead) ? ' is-unread' : '' }}{{ $thread.discussion_state == 'moderated' ? ' is-moderated' : '' }}{{ $thread.discussion_state == 'deleted' ? ' is-deleted' : '' }} js-inlineModContainer js-threadListItem-{$thread.thread_id}" data-author="{{ $thread.User.username ?: $thread.username }}">

    <div class="structItem-cell structItem-cell--metaX">
        <div class="structItem-cell structItem-cell--iconReplies">
            <xf:if is="$thread.sticky">
                <i class="fa--xf fas fa-thumbtack" aria-hidden="true" data-xf-init="tooltip" data-original-title="{{ phrase('sticky')|for_attr }}"></i>
            <xf:else />
                <i class="fa--xf fas fa-comments-alt" aria-hidden="true"></i>
            </xf:if>
            <span data-xf-init="tooltip" data-original-title="{{ phrase('replies') }}"><a href="{{ link('threads/participant-list/', $thread) }}" title="{{ phrase('eae_tptip_thread_participants')|for_attr }}" data-xf-click="overlay">{$thread.reply_count}</a></span>
            <span class="threadpreview">

            </span>
        </div>
    </div>
        
    <xf:extension name="icon_cell">
        <div class="structItem-cell structItem-cell--icon">
            <div class="structItem-iconContainer">
                <xf:avatar user="$thread.User" size="s" defaultname="{$thread.username}" />
                <xf:if is="$thread.getUserPostCount()">
                    <xf:avatar user="$xf.visitor" size="s"
                        href=""
                        class="avatar--separated structItem-secondaryIcon"
                        tabindex="0"
                        data-xf-init="tooltip"
                        data-trigger="auto"
                        title="{{ phrase('you_have_posted_x_messages_in_this_thread', {'count': $thread.getUserPostCount() }) }}" />
                </xf:if>
            </div>
        </div>
    </xf:extension>

    <xf:extension name="main_cell">
        <div class="structItem-cell structItem-cell--main" data-xf-init="touch-proxy">
            <xf:if contentcheck="true">
                <ul class="structItem-statuses">
                <xf:contentcheck>
                <xf:extension name="statuses">
                    <xf:if is="property('reactionSummaryOnLists') == 'status' && $thread.first_post_reactions">
                        <li><xf:reactions summary="true" reactions="{$thread.first_post_reactions}" /></li>
                    </xf:if>
                    <xf:extension name="before_status_state"></xf:extension>
                    <xf:if is="$thread.discussion_state == 'moderated'">
                        <li>
                            <i class="structItem-status structItem-status--moderated" aria-hidden="true" title="{{ phrase('awaiting_approval')|for_attr }}"></i>
                            <span class="u-srOnly">{{ phrase('awaiting_approval') }}</span>
                        </li>
                    </xf:if>
                    <xf:if is="$thread.discussion_state == 'deleted'">
                        <li>
                            <i class="structItem-status structItem-status--deleted" aria-hidden="true" title="{{ phrase('deleted')|for_attr }}"></i>
                            <span class="u-srOnly">{{ phrase('deleted') }}</span>
                        </li>
                    </xf:if>
                    <xf:if is="!$thread.discussion_open">
                        <li>
                            <i class="structItem-status structItem-status--locked" aria-hidden="true" title="{{ phrase('locked')|for_attr }}"></i>
                            <span class="u-srOnly">{{ phrase('locked') }}</span>
                        </li>
                    </xf:if>

                    <xf:extension name="status_sticky">
                        <xf:if is="$thread.sticky">
                            <li>
                                <i class="structItem-status structItem-status--sticky" aria-hidden="true" title="{{ phrase('sticky')|for_attr }}"></i>
                                <span class="u-srOnly">{{ phrase('sticky') }}</span>
                            </li>
                        </xf:if>
                    </xf:extension>

                    <xf:extension name="before_status_watch"></xf:extension>
                    <xf:if is="{$showWatched} AND {$xf.visitor.user_id}">
                        <xf:if is="{$thread.Watch.{$xf.visitor.user_id}}">
                            <li>
                                <i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('thread_watched')|for_attr }}"></i>
                                <span class="u-srOnly">{{ phrase('thread_watched') }}</span>
                            </li>
                            <xf:elseif is="!$forum AND {$thread.Forum.Watch.{$xf.visitor.user_id}}" />
                            <li>
                                <i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('forum_watched')|for_attr }}"></i>
                                <span class="u-srOnly">{{ phrase('forum_watched') }}</span>
                            </li>
                        </xf:if>
                    </xf:if>

                    <xf:extension name="before_status_type"></xf:extension>
                    <xf:if is="$thread.discussion_type == 'redirect'">
                        <xf:extension name="thread_type_redirect">
                            <li>
                                <i class="structItem-status structItem-status--redirect" aria-hidden="true" title="{{ phrase('redirect')|for_attr }}"></i>
                                <span class="u-srOnly">{{ phrase('redirect') }}</span>
                            </li>
                        </xf:extension>
                    <xf:elseif is="$thread.discussion_type == 'question' && $thread.type_data.solution_post_id" />
                        <xf:extension name="thread_type_question_solved">
                            <li>
                                <i class="structItem-status structItem-status--solved" aria-hidden="true" title="{{ phrase('solved')|for_attr }}"></i>
                                <span class="u-srOnly">{{ phrase('solved') }}</span>
                            </li>
                        </xf:extension>
                    <xf:elseif is="!$forum || $forum.forum_type_id == 'discussion'" />
                        <xf:extension name="thread_type_icon">
                            <xf:if is="$thread.discussion_type != 'discussion'">
                                <xf:set var="$threadTypeHandler" value="{{ $thread.getTypeHandler() }}" />
                                <xf:if is="$threadTypeHandler.getTypeIconClass()">
                                    <li>
                                        <xf:set var="$threadTypePhrase" value="{{ $threadTypeHandler.getTypeTitle() }}" />
                                        <xf:fa class="structItem-status" icon="{{ $threadTypeHandler.getTypeIconClass() }}" title="{$threadTypePhrase|for_attr}" />
                                        <span class="u-srOnly">{$threadTypePhrase}</span>
                                    </li>
                                </xf:if>
                            </xf:if>
                        </xf:extension>
                    </xf:if>
                </xf:extension>
                </xf:contentcheck>
                </ul>
            </xf:if>

            <div class="structItem-title">
                <xf:set var="$canPreview" value="{{ $thread.canPreview() }}" />
                <a href="{{ link('threads' . (($thread.isUnread() AND !$forceRead) ? '/unread' : ''), $thread) }}" class="" data-tp-primary="on" data-xf-init="{{ $canPreview ? 'preview-tooltip' : '' }}" data-preview-url="{{ $canPreview ? link('threads/preview', $thread) : '' }}">{$thread.title}</a>
            </div>

            <div class="structItem-minor">
                <xf:if contentcheck="true">
                    <ul class="structItem-extraInfo">
                    <xf:contentcheck>
                        <xf:if is="property('reactionSummaryOnLists') == 'minor_opposite' && $thread.first_post_reactions">
                            <li><xf:reactions summary="true" reactions="{$thread.first_post_reactions}" /></li>
                        </xf:if>
                        <xf:if is="{$extraInfo}">
                            <li>{$extraInfo}</li>
                        <xf:elseif is="$allowEdit AND $thread.canEdit() AND $thread.canUseInlineModeration()" />
                            <xf:if is="!$allowInlineMod OR !$forum">
                                <xf:set var="$editParams" value="{{ {
                                    '_xfNoInlineMod': !$allowInlineMod ? 1 : null,
                                     '_xfForumName': !$forum ? 1 : 0
                                } }}" />
                            <xf:else />
                                <xf:set var="$editParams" value="{{ [] }}" />
                            </xf:if>
                            <xf:if is="$thread.discussion_type != 'redirect'">
                                <li class="structItem-extraInfoMinor">
                                    <a href="{{ link('threads/edit', $thread) }}" data-xf-click="overlay" data-cache="false" data-href="{{ link('threads/edit', $thread, $editParams) }}">
                                        {{ phrase('edit') }}
                                    </a>
                                </li>
                            </xf:if>
                        </xf:if>
                        <xf:if is="$chooseName">
                            <li><xf:checkbox standalone="true">
                                <xf:option name="{$chooseName}[]" value="{$thread.thread_id}" class="js-chooseItem" />
                            </xf:checkbox></li>
                        <xf:elseif is="$allowInlineMod AND $thread.canUseInlineModeration()" />
                            <li><xf:checkbox standalone="true">
                                <xf:option value="{$thread.thread_id}" class="js-inlineModToggle"
                                    data-xf-init="tooltip"
                                    title="{{ phrase('select_for_moderation') }}"
                                    label="{{ phrase('select_for_moderation') }}"
                                    hiddenlabel="true"
                                />
                            </xf:checkbox></li>
                        </xf:if>
                    </xf:contentcheck>
                    </ul>
                </xf:if>

                <xf:if is="$thread.discussion_state == 'deleted'">
                    <xf:if is="{$extraInfo}"><span class="structItem-extraInfo">{$extraInfo}</span></xf:if>

                    <xf:macro template="deletion_macros" name="notice" arg-log="{$thread.DeletionLog}" />
                <xf:else />
                    <ul class="structItem-parts">
                        <li><xf:username user="$thread.User" defaultname="{$thread.username}" /></li>
                        <li class="structItem-startDate"><a href="{{ link('threads', $thread) }}" rel="nofollow"><xf:date time="{$thread.post_date}" /></a></li>
                        <xf:if is="!$forum">
                            <li><a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a></li>
                        </xf:if>
                    </ul>

                    <xf:if is="$thread.discussion_type != 'redirect' && $thread.reply_count >= $xf.options.messagesPerPage && $xf.options.lastPageLinks">
                        <span class="structItem-pageJump">
                        <xf:foreach loop="{{ last_pages($thread.reply_count + 1, $xf.options.messagesPerPage, $xf.options.lastPageLinks) }}" value="$p">
                            <a href="{{ link('threads', $thread, {'page': $p}) }}">{$p}</a>
                        </xf:foreach>
                        </span>
                    </xf:if>
                </xf:if>
            </div>
        </div>
    </xf:extension>

    <xf:extension name="latest_cell">
        <div class="structItem-cell structItem-cell--latest">
            <xf:if is="$thread.discussion_type == 'redirect'">
                {{ phrase('n_a') }}
            <xf:else />
                <div class="structItem-minor">
                    <xf:if is="$xf.visitor.isIgnoring($thread.last_post_user_id)">
                        {{ phrase('ignored_member') }}
                    <xf:else />
                        <xf:username user="{$thread.LastPoster}" defaultname="{$thread.last_post_username}" />
                    </xf:if>
                </div>
            </xf:if>
        </div>
    </xf:extension>

    <xf:extension name="icon_end_cell">
        <div class="structItem-cell structItem-cell--icon structItem-cell--iconEnd">
            <div class="structItem-iconContainer">
                <xf:if is="$xf.visitor.isIgnoring($thread.last_post_user_id) OR $thread.discussion_type == 'redirect'">
                    <xf:avatar user="{{ null }}" size="xxs" />
                <xf:else />
                    <xf:avatar user="{$thread.LastPoster}" defaultname="{$thread.last_post_username}" size="xxs" />
                </xf:if>
            </div>
        </div>
    </xf:extension>
        
    <div class="structItem-cell structItem-cell--date">
        <a href="{{ link('threads/latest', $thread) }}" rel="nofollow"><xf:date time="{$thread.last_post_date}" class="structItem-latestDate" /></a>
    </div>

    <div class="structItem-cell structItem-cell--prefix">
        <xf:if is="$thread.prefix_id">
            <xf:if is="$forum">
                <a href="{{ link('forums', $forum, {'prefix_id': $thread.prefix_id}) }}" class="labelLink" rel="nofollow">{{ prefix('thread', $thread, 'html', '') }}</a>
            <xf:else />
                {{ prefix('thread', $thread, 'html', '') }}
            </xf:if>
        </xf:if>
    </div>

    </div>

<div class="tag_forum">

</div>

</xf:macro>

<xf:macro name="item_new_posts" arg-thread="!">
    <div class="contentRow">
        <div class="contentRow-figure">
            <xf:avatar user="$thread.LastPoster" size="xxs" defaultname="{$thread.last_post_username}" />
        </div>
        <div class="contentRow-main contentRow-main--close">
            <xf:if is="$thread.isUnread()">
                <a href="{{ link('threads/unread', $thread) }}">{{ prefix('thread', $thread) }}{$thread.title}</a>
            <xf:else />
                <a href="{{ link('threads/post', $thread, {'post_id': $thread.last_post_id}) }}">{{ prefix('thread', $thread) }}{$thread.title}</a>
            </xf:if>

            <div class="contentRow-minor contentRow-minor--hideLinks">
                <ul class="listInline listInline--bullet">
                    <li>{{ phrase('latest_x', {'name': $thread.last_post_cache.username}) }}</li>
                    <li><xf:date time="{$thread.last_post_date}" /></li>
                </ul>
            </div>
            <div class="contentRow-minor contentRow-minor--hideLinks">
                <a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a>
            </div>
        </div>
    </div>
</xf:macro>

<xf:macro name="item_new_threads" arg-thread="!">
    <div class="contentRow">
        <div class="contentRow-figure">
            <xf:avatar user="$thread.User" size="xxs" defaultname="{$thread.username}" />
        </div>
        <div class="contentRow-main contentRow-main--close">
            <a href="{{ link('threads', $thread) }}">{{ prefix('thread', $thread) }}{$thread.title}</a>

            <div class="contentRow-minor contentRow-minor--hideLinks">
                <ul class="listInline listInline--bullet">
                    <li>{{ phrase('started_by_x', {'name': $thread.username}) }}</li>
                    <li><xf:date time="{$thread.post_date}" /></li>
                    <li>{{ phrase('replies:') }} {$thread.reply_count|number_short}</li>
                </ul>
            </div>
            <div class="contentRow-minor contentRow-minor--hideLinks">
                <a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a>
            </div>
        </div>
    </div>
</xf:macro>

<xf:macro name="quick_thread"
    arg-forum="!"
    arg-page="1"
    arg-order="last_post_date"
    arg-direction="desc"
    arg-prefixes="{{ [] }}">

    <xf:css src="structured_list.less" />

    <xf:if is="$forum.canCreateThread() OR $forum.canCreateThreadPreReg()">

        <xf:js src="xf/thread.js" min="1" />

        <xf:set var="$inlineMode" value="{{ ($page == 1 && $order == 'last_post_date' && $direction == 'desc') ? true : false }}" />

        <xf:form action="{{ link('forums/post-thread', $forum, {'inline-mode': $inlineMode}) }}" ajax="true"
            class="structItem structItem--quickCreate"
            draft="{{ link('forums/draft', $forum) }}"
            data-xf-init="quick-thread"
            data-focus-activate=".js-titleInput"
            data-focus-activate-href="{{ link('forums/post-thread', $forum, {'inline-mode': true}) }}"
            data-focus-activate-target=".js-quickThreadFields"
            data-insert-target=".js-threadList"
            data-replace-target=".js-emptyThreadList">

        <xf:extension name="icon_cell">
            <div class="structItem-cell structItem-cell--icon">
                <div class="structItem-iconContainer">
                    <xf:avatar user="$xf.visitor" size="s" />
                </div>
            </div>
        </xf:extension>

        <xf:extension name="main_cell">
            <div class="structItem-cell structItem-cell--newThread js-prefixListenContainer">

                <xf:formrow rowtype="noGutter noLabel fullWidth noPadding mergeNext"
                    label="{{ phrase('title') }}">

                    <xf:prefixinput maxlength="{{ max_length('XF:Thread', 'title') }}"
                        placeholder="{$forum.thread_prompt}"
                        title="{{ phrase('post_new_thread_in_this_forum') }}"
                        prefix-value="{$forum.default_prefix_id}"
                        type="thread"
                        prefixes="{$prefixes}"
                        data-xf-init="tooltip"
                        rows="1"
                        help-href="{{ link('forums/prefix-help', $forum) }}"
                        help-skip-initial="{{ true }}" />

                    <!--[XF:qt_title_after]-->
                </xf:formrow>

                <div class="js-quickThreadFields inserter-container is-hidden"><!--{{ phrase('loading...') }}--></div>
            </div>
        </xf:extension>

        </xf:form>
    </xf:if>

</xf:macro>
]
 
Ne yapmak istediğinizi anlayan çıkarsa belki el atar.
 
thread_list_macros şablonunda düzenlemeler yaptım.
Bu şablonda işlevi olan 2 eklentiyi belirttim.
[J] Thread Preview eklentisinde 2 adet thread_list_macros şablon değişimi bulunmakta.
Bu şablon değişiminin birinde sorun yaşıyorum. Onu da belirttim.
Şablon değişiminde düzenli ifade için bul kısmına hangi ifadeyi yazmalıyım ki sorunum çözülsün :)
 
3. spoyler da en alttaki yazı oraya nasıl geldi bilmiyorum (konu açarken sorun olmuş sanırım) :) ama o yazının olduğu yere şablon değişikliği ile değiştirilecek kodu entegre etmem lazım :)
Yani;

<div class="tag_forum">
(Buraya şablon değişikliği ile kod geliyor)
</div>
(Buraya kodu entegre etmem lazım ama düzenli ifadeyi ayarlayamadım. )
 
Master tema forumda kullanılamaz, sadece default tema kullanıla bilir. Eğer onda çalışıyor sizin temanızda çalışmıyor ise temanız yapısında bir eksik yada hata olmalı.
 
eTiKeT™ eTiKeT™ thread_list_macros üzerinde zaten değişiklik yaptım. Bu değişiklikler nedeniyle yeni düzenli ifade girmem gerekiyor. Bazı eklentilerde kendi yaptım . Fakat bu [J] Thread Preview eklentisinin şablon değişikliği için bulması gereken düzenli ifadeyi bir türlü doğru giremedim :)

Tag Essentials eklentisi için gerekli değişlikliği yaptım.
Aşağıda tag_forum class ının arasına değişikliği uyguluyor.

[J] Thread Preview eklentiside tag_forum clasını bulup div kapandıktan sonra değişikliği uygulaması lazım.
Fakat bunun için doğru düzenli ifadeyi oluşturamadım :)

Değiştirilecek olan kodu direk thread_list_macros şablonunda aşağıda gösterdiğim yere manuel olarak uyguladım çalışıyor ama dediğim gibi şablon değişikliğinden yapmam lazım :)


<div class="tag_forum">
(Buraya şablon değişikliği ile Tag Essentials eklentisi için kod geliyor)
</div>
(Buraya [J] Thread Preview eklentisi için kod gelmesi lazım ama düzenli ifadeyi oluşturamadım. )
 

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.