vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   kill tags in tags.php page - my small mod (https://vborg.vbsupport.ru/showthread.php?t=234622)

bartek24m 01-31-2010 03:15 PM

kill tags in tags.php page - my small mod
 
I would like delete (vb 3.8.4) tags the same way like it is in zoints thread tags mod,
https://vborg.vbsupport.ru/external/2010/01/3.png

so i wrote small hack but it not works. Could someone check it?

in

tag_cloud_link
template
find
Code:

<a href="tags.php?$session[sessionurl]tag=$thistag[tagtext_url]" class="tagcloudlink level$thistag[level]">$thistag[tagtext]</a>
change to
Code:

<a href="tags.php?$session[sessionurl]tag=$thistag[tagtext_url]" class="tagcloudlink level$thistag[level]">$thistag[tagtext]</a>
<if condition="is_member_of($bbuserinfo,5,6,7)">
<font size="1">[<a href="tags.php?do=tagkill&tag=$thistag[tagtext]">x</a>]</font>
</if>

when i try to click in [x] i can see white page :(

Lynne 01-31-2010 05:07 PM

And what is actually showing up in the page source? And did you create a plugin to define do=tagkill ?

bartek24m 01-31-2010 05:19 PM

no i didnt set up plugin for tagkill
could you help me with create plugin ?

Lynne 01-31-2010 05:33 PM

If you need someone else to write the code for you, you should post in the Modification Request forum (either paid or unpaid). If you look at the regular tags list for a thread and go to Edit the tags, you'll see that it doesn't use that page to delete tags, it uses the threadtag.php page. So, you may want to look at that page and see what you need to do to delete a tag.

bartek24m 01-31-2010 05:59 PM

Ok, next time i'll create threads in proper forum


in admincp/thread.php i found:

Code:

// ########################################################################

if ($_POST['do'] == 'tagkill')
{
        if (sizeof($taglist))
        {
                $tags_result = $vbulletin->db->query_read("
                        SELECT tagtext
                        FROM " . TABLE_PREFIX . "tag
                        WHERE tagid IN (" . implode(',', $taglist) . ")
                ");

                $tagstodelete = array();
                while ($tag = $vbulletin->db->fetch_array($tags_result))
                {
                        $tagstodelete[] = $tag['tagtext'];
                }
                unset($tag);

                if (!empty($tagstodelete))
                {
                        require_once(DIR . "/includes/functions_newpost.php");

                        $threads_result = $vbulletin->db->query_read("
                                SELECT DISTINCT thread.*
                                FROM " . TABLE_PREFIX . "tagthread AS tagthread
                                INNER JOIN " . TABLE_PREFIX . "thread AS thread ON (thread.threadid = tagthread.threadid)
                                WHERE tagthread.tagid IN (" . implode(',', $taglist) . ")
                        ");
                        while ($thread = $vbulletin->db->fetch_array($threads_result))
                        {
                                $newtags = array();
                                foreach (explode(',', trim($thread['taglist'])) AS $oldtag)
                                {
                                        $oldtag = trim($oldtag);
                                        if (!in_array($oldtag, $tagstodelete))
                                        {
                                                $newtags[] = $oldtag;
                                        }
                                }

                                $newtags_string = implode(', ', $newtags);

                                if ($newtags_string != $thread['taglist'])
                                {
                                        // if efficiency is needed, this could be changed to a direct query
                                        $threaddm =& datamanager_init('Thread', $vbulletin, ERRTYPE_SILENT, 'threadpost');
                                        $threaddm->set_existing($thread);
                                        $threaddm->set('taglist', $newtags_string);
                                        $threaddm->save();

                                        unset($threaddm);
                                }
                        }
                }

                $db->query_write("
                        DELETE FROM " . TABLE_PREFIX . "tag
                        WHERE tagid IN (" . implode(',', $taglist) . ")
                ");

                $db->query_write("
                        DELETE FROM " . TABLE_PREFIX . "tagthread
                        WHERE tagid IN (" . implode(',', $taglist) . ")
                ");

                // need to invalidate the search and tag cloud caches
                build_datastore('tagcloud', '', 1);
                build_datastore('searchcloud', '', 1);
        }

        setcookie('vbulletin_inlinetag', '', TIMENOW - 3600, '/');

        print_cp_header($vbphrase['thread_manager']);
        print_stop_message('tags_edited_successfully');
}

// ########################################################################


and i paste it in

tags.php


but my mod still not work

Lynne 01-31-2010 07:25 PM

And what error are you getting? And why didn't you just change the link to thread.php instead of tags.php? And, you never answered my question about the link in the page source.

bartek24m 02-01-2010 05:43 AM

Quote:

Originally Posted by Lynne (Post 1971552)
And what error are you getting? And why didn't you just change the link to thread.php instead of tags.php? And, you never answered my question about the link in the page source.

link in the page source is
Code:

<font size="1">[<a rel="nofollow" href="http://mydomain.pl/tags/2pac.html?do=tagkill">x</a>]</font>
(I use vbseo)


and error i get after add PHP code to tags.php

Code:

Fatal error: Call to undefined function print_cp_header() in /home/kredyciak/domains/mydomain.pl/public_html/tags.php on line 147

Marco van Herwaarden 02-01-2010 11:53 AM

You are trying to add code that will only work in the AdminCP to a user script.

PS Editing the ./tags.php to add a delete function is probably not what you want. If needed create a new file to hold this function.


All times are GMT. The time now is 07:36 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01325 seconds
  • Memory Usage 1,744KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_code_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete