• 0

IPB 3.4 Hide Marked Solved button on ajax reply


Question

Yet another issue the ticket system on IPS doesn't support, but getting no luck in their p2p support forum.

 

We have successfully been able to hide the marked solved button from the OP on own posts in the topic, but it does show when the OP makes a fast reply, which defeats the entire purpose.

<if test="canAnswerTopic:|:$topic['Perms']['canAnswerTopic'] && $post['post']['post_count'] > 1">
<if test="isAnswered:|:$post['post']['_isMarkedAnswered']">
<if test="canUnanswer:|:$post['post']['_canMarkUnanswered']">
<li><a href="{parse url="module=extras&section=answer&do=unanswer&t={$this->request['t']}&pid={$post['post']['pid']}&auth_key={$this->member->form_hash}" base="publicWithApp"}"  data-post-button="unanswer" class='ipsButton_secondary important' data-pid="{$post['post']['pid']}"><img class='icon' src="{$this->settings['img_url']}/cross_white_10px.png">{$this->lang->words['topic_mark_unsolved']}</a></li>
</if>
<else />
<if test="notAnswered:|:$post['post']['_canAnswer'] && $topic['topic_firstpost'] != $post['post']['pid']">
<if test="$topic['_starter']['member_id'] != $post['author']['member_id']">
<li><a href="{parse url="module=extras&section=answer&do=answer&t={$this->request['t']}&pid={$post['post']['pid']}&auth_key={$this->member->form_hash}" base="publicWithApp"}"  data-post-button="answer" class='ipsButton_secondary' data-pid="{$post['post']['pid']}"><img class='icon' src="{$this->settings['img_url']}/tick_10px.png">{$this->lang->words['topic_mark_solved']}</a></li>
</if>
</if>
</if>
</if>

Second line under else marks where the permission is set (but ignored with fast reply).

<if test="$topic['_starter']['member_id'] != $post['author']['member_id']">

Maybe someone can help out here? :p

11 answers to this question

Recommended Posts

  • 0

Fixed using

<if test="$this->memberData['member_id'] != $topic['starter_id'] OR $this->memberData['member_id'] != $post['author']['member_id']">

instead of

<if test="$topic['_starter']['member_id'] != $post['author']['member_id']">
  • 0

Hello,

  On 10/11/2013 at 09:59, Steven P. said:

Yet another issue the ticket system on IPS doesn't support, but getting no luck in their p2p support forum.

 

We have successfully been able to hide the marked solved button from the OP on own posts in the topic, but it does show when the OP makes a fast reply, which defeats the entire purpose.

<if test="canAnswerTopic:|:$topic['Perms']['canAnswerTopic'] && $post['post']['post_count'] > 1">
<if test="isAnswered:|:$post['post']['_isMarkedAnswered']">
<if test="canUnanswer:|:$post['post']['_canMarkUnanswered']">
<li><a href="{parse url="module=extras&section=answer&do=unanswer&t={$this->request['t']}&pid={$post['post']['pid']}&auth_key={$this->member->form_hash}" base="publicWithApp"}"  data-post-button="unanswer" class='ipsButton_secondary important' data-pid="{$post['post']['pid']}"><img class='icon' src="{$this->settings['img_url']}/cross_white_10px.png">{$this->lang->words['topic_mark_unsolved']}</a></li>
</if>
<else />
<if test="notAnswered:|:$post['post']['_canAnswer'] && $topic['topic_firstpost'] != $post['post']['pid']">
<if test="$topic['_starter']['member_id'] != $post['author']['member_id']">
<li><a href="{parse url="module=extras&section=answer&do=answer&t={$this->request['t']}&pid={$post['post']['pid']}&auth_key={$this->member->form_hash}" base="publicWithApp"}"  data-post-button="answer" class='ipsButton_secondary' data-pid="{$post['post']['pid']}"><img class='icon' src="{$this->settings['img_url']}/tick_10px.png">{$this->lang->words['topic_mark_solved']}</a></li>
</if>
</if>
</if>
</if>
Second line under else marks where the permission is set (but ignored with fast reply).

<if test="$topic['_starter']['member_id'] != $post['author']['member_id']">
Maybe someone can help out here? :p
Daniweb has a HUGE resources of members for this type of thing, a lot into web dev :)
  • 0
  On 10/11/2013 at 12:06, Steven P. said:

Cheers (Y)

 

Can I ask a question, what code did you use for if topic is marked solved the custom message that neowin added disappears?

 

Custom message meaning the "This top is not marked as solved yet"

 

Would be grateful to know the information for just that.

  • 0

Where the badge 'answered' and goto post is displayed in the post (or whatever you have) add under it:

 

<else /><if test="canAnswerTopic:|:$topic['Perms']['canAnswerTopic']"><p title="Select a best answer below by using the Mark Solved button if your post has been answered." class="message error" style="width:390px; float:right; margin-bottom:0; clear:none;">This topic has not been Marked Solved yet, or doesn't require an answer.</p></if>
  • 0
  On 11/11/2013 at 07:44, Steven P. said:

 

Where the badge 'answered' and goto post is displayed in the post (or whatever you have) add under it:

<else /><if test="canAnswerTopic:|:$topic['Perms']['canAnswerTopic']"><p title="Select a best answer below by using the Mark Solved button if your post has been answered." class="message error" style="width:390px; float:right; margin-bottom:0; clear:none;">This topic has not been Marked Solved yet, or doesn't require an answer.</p></if>

 

okay well I've placed the code in the Topic View > post template. in the post_body as you will see below but this still only shows for admins where I'm wanting it to show for all members and guests.

 

here is the code i have. in the post_body.

<div class='post_body'>
 
<if test="isSolvedSausage:|:$post['post']['_isMarkedAnswered']"><div class='answerBadgeInPost'>✓  {$this->lang->words['topic_best_answer']}</div></if>
 
<if test="repHighlight:|:$this->settings['reputation_highlight'] AND $post['post']['rep_points'] >= $this->settings['reputation_highlight']">
<p class='rep_highlight'>{parse replacement="popular_post"}<br />{$this->lang->words['popular_post']}</p>
</if>
 
 
 
 
<div itemprop="commentText" class='post entry-content <if test="$post['post']['_repignored'] == 1">imgsize_ignore</if>'>
 
<if test="isSolvedSausage:|:$post['post']['_isMarkedAnswered']"><div class='ipsPad_top_bottom' style='padding-top: 0; display:none;'><span class='ipsBadge ipsBadge_green'>{$this->lang->words['topic_best_answer']}</span></div></if>
 
{$post['post']['post']}
{$post['post']['attachmentHtml']}
<br />
<if test="postEditBy:|:$post['post']['edit_by']">
<p class='edit'>
{$post['post']['edit_by']}
<if test="postEditByReason:|:$post['post']['post_edit_reason'] != ''">
<br />
<span class='reason'>{$post['post']['post_edit_reason']}</span>
</if>
</p>
</if>
<if test="$post['post']['post_count']%$this->settings['display_max_posts'] == 1">
<if test="bestAnswer:|:$displayData['best_answer_post_data']">
<br />
 
<div class='post post_block feature_box clearfix'>
    <if test="canSeeProfiles1:|:$this->memberData['g_is_supmod'] OR ( $this->memberData['g_mem_info'] && ! IPSMember::isInactive( $displayData['best_answer_post_data']['author'] ) )">
    <a itemprop="url" href="{parse url="showuser={$displayData['best_answer_post_data']['author']['member_id']}" template="showuser" seotitle="{$displayData['best_answer_post_data']['author']['members_seo_name']}" base="public"}" title="{$this->lang->words['view_profile']}: {$displayData['best_answer_post_data']['author']['members_display_name']}" class='ipsUserPhotoLink'>
    </if>
    <img itemprop="image" src='{$displayData['best_answer_post_data']['author']['pp_thumb_photo']}' class='ipsUserPhoto ipsUserPhoto_medium left' />
    <if test="canSeeProfiles2:|:$this->memberData['g_is_supmod'] OR ( $this->memberData['g_mem_info'] && ! IPSMember::isInactive( $displayData['best_answer_post_data']['author'] ) )">
    </a>
    </if>
    <div class="ipsBox_withphoto">
    <p class='ipsType_sectiontitle'>
        <span class='ipsBadge ipsBadge_green' style='margin-right: 4px;'>{$this->lang->words['topic_best_answer']}</span>
        {parse template="userHoverCard" group="global" params="$displayData['best_answer_post_data']['author']"},
        <if test="samePageBA:|:isset($post_data[ $displayData['best_answer_post_data']['post']['pid'] ])">
            <if test="hasPagesBA:|:$this->request['page']">
                <a href='{parse url="showtopic={$topic['tid']}&page={$this->request['page']}{$post_data[ $displayData['best_answer_post_data']['post']['pid'] ]['post']['PermalinkUrlBit']}#entry{$displayData['best_answer_post_data']['post']['pid']}" template="showtopic" seotitle="{$topic['title_seo']}" base="public"}'>{parse date="$displayData['best_answer_post_data']['post']['post_date']" format="long"}</a>
            <else />
                <a href='{parse url="showtopic={$topic['tid']}{$post_data[ $displayData['best_answer_post_data']['post']['pid'] ]['post']['PermalinkUrlBit']}#entry{$displayData['best_answer_post_data']['post']['pid']}" template="showtopic" seotitle="{$topic['title_seo']}" base="public"}'>{parse date="$displayData['best_answer_post_data']['post']['post_date']" format="long"}</a>
            </if>
        <else />
            <a href="{parse url="app=forums&module=forums&section=findpost&pid={$displayData['best_answer_post_data']['post']['pid']}" base="public"}">{parse date="$displayData['best_answer_post_data']['post']['post_date']" format="long"}</a>
        </if>
    </p>
    <p class='ipsPad_top'>
        {$displayData['best_answer_post_data']['post']['post']} 
        <if test="samePageBA2:|:isset($post_data[ $displayData['best_answer_post_data']['post']['pid'] ])">
            <if test="hasPagesBA2:|:$this->request['page']">
                <a href='{parse url="showtopic={$topic['tid']}&page={$this->request['page']}{$post_data[ $displayData['best_answer_post_data']['post']['pid'] ]['post']['PermalinkUrlBit']}#entry{$displayData['best_answer_post_data']['post']['pid']}" template="showtopic" seotitle="{$topic['title_seo']}" base="public"}'>
            <else />
                <a href='{parse url="showtopic={$topic['tid']}{$post_data[ $displayData['best_answer_post_data']['post']['pid'] ]['post']['PermalinkUrlBit']}#entry{$displayData['best_answer_post_data']['post']['pid']}" template="showtopic" seotitle="{$topic['title_seo']}" base="public"}'>
            </if>
        <else />
            <a href="{parse url="app=forums&module=forums&section=findpost&pid={$displayData['best_answer_post_data']['post']['pid']}" base="public"}">
        </if>
            <span class='ipsBadge ipsBadge_lightgrey' style='margin-left: 4px;'>{$this->lang->words['answer_gotopost']} »</span></a>
    </p>
    </div>
 
</div>
 
<else />
<if test="canAnswerTopic:|:$topic['Perms']['canAnswerTopic']">
<p title="Select a best answer below by using the Mark Solved button if your post has been answered." class="message error" style="margin-bottom: 6px; width:390px; float:right; margin-bottom:0; clear:none;">This topic has not been Marked Solved yet, or doesn't require an answer.</p>
                          </if>
</if>
 
 
                          <php>$show_message = array(76, 32, 47, 57); </php>   <if test=" $this->registry->getCurrentApplication() == 'forums' && in_array($forum['id'], $show_message)">
                       </if>
                     </if>
                          <br />
                          </div>
  • 0

Yes, IPB is funny like that, you have to place it where mod controls aren't already in an if statement of sorts. I'll have a look later.

 

Edit pretty sure I have the not answered yet above the whole display answer stuff, because like I say that's where it gets funky with if statements for admins and for guests/members ;)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Thank you for replying! Is MP600 also good? Where I'm looking they don't have MP700. I was also looking at Corsair T500, that comes with heatsink.
    • As someone who was born in 1980, I’m feeling this.
    • Amazon Deal: This Vifa Stockholm 2.0 is one of the best sounding bluetooth speakers by Sayan Sen A few days back we covered some great JBL bluetooth speaker deals across several of its popular models. The discounts are still live and you can check them out in this dedicated piece. Meanwhile for those who prefer more powerful home cinema sound systems, Nakamichi and Samsung are offering the Dragon and Shockwafe models, and the Q-series models, respectively, at their best ever prices. However, if you are someone who is looking for a bit of both, the portability of a bluetooth speaker and the fidelity of a good sounding hi-fi system then the Vifa Stockholm 2.0 Bluetooth Soundbar is something you should look at as it's currently a nice deal (purchase link under the specs table below). While you are not getting a subwoofer with the Vifa Stockholm as it is a 2.0 system, Vifa promises lows down to 42 Hz at +3dB and that should be pretty good for a device lacking a dedicated bass unit; it does pack passive radiators to help with the bass. The Stockholm 2.0 is praised for its sound quality (SQ) and one of the reasons behind it is becasue it has three-way drivers. The technical specifications of the Vifa Stockholm 2.0 Bluetooth Soundbar are given below: Specification Frequency Response 42 Hz – 20 kHz @ ±3 dB Materials Frame: One-piece die-cast aluminium; Enclosure: ABS reinforced; Grills: Kvadrat textile Connectivity Bluetooth® Qualcomm aptX™ HD audio; Wi-Fi Direct & networked (2.4 GHz); Wired optical or analog (3.5 mm mini-jack); USB-disk; Vifa®HOME, Vifa®LINK, Vifa®PLAY Driver Units Tweeter: 2 × 28 mm soft-dome drivers; Midrange: 2 × 80 mm aluminium-cone drivers; Woofer: 4 × 100 mm flat sandwich-cone drivers (force-balanced, backed by 4 passive radiators) Other Features Apple AirPlay & DLNA streaming; DSP signal processing; 6-channel high-performance power amplifier Get it at the link below: Vifa Stockholm 2.0 Bluetooth Soundbar, Nordic Design Soundbar, Smart APP Multi-Room System (Slate Black): $1156.99 (Sold and Shipped by Amazon US) This Amazon deal is US-specific and not available in other regions unless specified. If you don't like it or want to look at more options, check out the Amazon US deals page here. Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days. As an Amazon Associate, we earn from qualifying purchases.
    • Explzh 9.81 by Razvan Serea Explzh is a free Windows archive manager for creating, extracting and managing archives. The program supports many different types of archives, including zip, 7z, rar, tar, ace, lzh, arj, cab, iso, img, msi, sfx and more. Apart from archive creation and extraction, you will also be able to verify compressed data for errors, initiate repair routines, split data into multiple items, and more. It additionally allows you to password protect your data and attach digital signatures to files. Key features of Explzh: Explorer-like GUI and operability. LHA, ZIP (ZIPX), JAR, CAB, RAR, TAR, TAR.XXX, 7z, ARJ, WIM, CHM, PE, HFS, NSIS Format Installer, ISO, InstallShield, MSI, and several other formats... Support for more archive formats by introducing the integrated archiver DLL. Self-extracting archive creation function that can create high-performance automatic installers. Digital signature addition function to created self-extracting archive. Office 2007 or later document compression / image optimization re-archiving function. Supports compression and decompression of Unicode file names. Supports compression and expansion exceeding 4GB. AES encryption function. You can create a robust secure ZIP encryption archive. Thumbnail function of image file. In-library file search function. . Equipped with archive file conversion function. File split function. The split file has a self-consolidation function, and can concatenate files larger than 4GB. (No need for batch file or connection software) UU (XX) Encode, Base64 decode function. FTP upload function Supports Windows 11 shell integration extended context menu. Explzh 9.81 changelog: Improved to send update notifications to the shell when making changes such as additional compression to existing zip and 7-zip files. This also updates the Explorer view of the open file in real time. (If the drop target feature is enabled, you can easily create an encrypted ZIP by dragging and dropping onto the ZIP icon while holding down the Ctrl key.) When the zip drop target setting is enabled, the "Compressed (zipped) Folder" item will be added to the "New" shell context menu if it does not already exist. Password manager bug fix: Fixed a bug that caused the app to crash when reading password.dat (password data) when changing authentication method. Updated to Visual Studio 2022 v.17.14.9. Download: Explzh 64-bit | Explzh 32-bit | ~6.0 MB (Freeware) Download: Explzh ARM64 | 5.9 MB View: Explzh Home Page | Screenshot | Themes Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Week One Done
      Snake Doc earned a badge
      Week One Done
    • One Month Later
      Johnny Mrkvička earned a badge
      One Month Later
    • Week One Done
      Sender88 earned a badge
      Week One Done
    • Dedicated
      Daniel Pinto earned a badge
      Dedicated
    • Explorer
      DougQuaid went up a rank
      Explorer
  • Popular Contributors

    1. 1
      +primortal
      605
    2. 2
      Michael Scrip
      200
    3. 3
      ATLien_0
      190
    4. 4
      +FloatingFatMan
      138
    5. 5
      Xenon
      125
  • Tell a friend

    Love Neowin? Tell a friend!