Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
+6 votes
2.2k views
in Plugins by
edited by

Ask with Tags Plugin which I am looking for.It is like asking with a category.When you in a category , q2a /pirske?cat=6  but I want it for tags too.Someone first shared on github but than remove it.

Is there anyone can share it.

Thanks a lot.

Edited;

This plugins is developed by Jair. If anyone need it , just has to change inside qa-ask-with-tags-layer.php  Jair's below code.

https://github.com/neayi/q2a-ask-with-tags-list

Q2A version: 1.8.3
by
if I cant find a solution , I will use it tag description plugin manually
by
+1
I would use 'tag description' even thou I can make automatic links to  ask with tags.
by
you mean url which you made for asking I guess

1 Answer

+2 votes
by
selected by
 
Best answer

A plugin layer, such as the one you mentioned above, might be useful for that purpose:

  1. Create a plug-in
  2. Create a layer with the following code:
<?php
class qa_html_theme_layer extends qa_html_theme_base {
    public function nav_main_sub()
    {
        if (qa_opt('nav_ask') && qa_user_maximum_permit_error('permit_post_q') != 'level') {
            if ($this->template == 'tag') {
                $tag = qa_request_part(1);
                $this->content['navigation']['main']['ask']['url'] = qa_path_html('ask', array('tags' => $tag ));
            } elseif ($this->template == 'question') {
                // Rebuild 'Ask a Question' link.
                $params = array();

                if (qa_using_categories()) {
                    $categories = qa_db_select_with_pending(qa_db_category_nav_selectspec($this->content['q_view']['raw']['postid'], true, true, true));
                    $categoryids = array_keys(qa_category_path($categories, $this->content['q_view']['raw']['categoryid']));
                    $lastcategoryid = count($categoryids) > 0 ? end($categoryids) : null;

                    if (strlen($lastcategoryid))
                        $params['cat'] = $lastcategoryid;
                }

                if (qa_using_tags() && isset($this->content['q_view']['raw']['tags']))
                    $params['tags'] = $this->content['q_view']['raw']['tags'];

                $this->content['navigation']['main']['ask']['url'] = qa_path_html('ask', !empty($params) ? $params : null);
            }
        }

        parent::nav_main_sub();
    }

    public function form_fields($form, $columns) {
        $tags = qa_html(trim(qa_get('tags')));

        if ($tags && $this->template == 'ask')
            $form['fields']['tags']['value'] = $tags;

        parent::form_fields($form, $columns);
    }
}

It has two features:

  1. When the user is on a tag page, clicking on "Ask a Question" will take the user to the "Ask" page with the tag field pre-filled.
  2. Posts can have a category and/or tags, so when the user is on a post, clicking on "Ask a Question" will take the user to the "Ask" page with both the category and the tag fields pre-filled.

If feature 2 is not needed, then remove the elseif block in the code. It would be like this:

<?php
class qa_html_theme_layer extends qa_html_theme_base {
    public function nav_main_sub()
    {
        if (qa_opt('nav_ask') && qa_user_maximum_permit_error('permit_post_q') != 'level') {
            if ($this->template == 'tag') {
                $tag = qa_request_part(1);
                $this->content['navigation']['main']['ask']['url'] = qa_path_html('ask', array('tags' => $tag ));
            }
        }

        parent::nav_main_sub();
    }

    public function form_fields($form, $columns) {
        $tags = qa_html(trim(qa_get('tags')));

        if ($tags && $this->template == 'ask')
            $form['fields']['tags']['value'] = $tags;

        parent::form_fields($form, $columns);
    }
}

If you don't know how to create a plugin, you might use qa-ask-with-tags-layer.php as a template for the code above.

I hope this answer is helpful. If you have any question, please add a comment below.

If you need specialized Question2Answer services and information you might have a look at the services page or send me a private message.

Have a good day.

by
It works very well @jair but when I on a post and want ask a question it takes me to this URL
/pirske?cat=9&tags=tag1%2Ctag2
by
Im using qa-ask-with-tags-layer.php layer
by
+1
That's because the post you were on (by the time you clicked "Ask a Question") has the tags "tag1" and "tag2". You didn't talked about this feature at all but I thought you wanted it to pre-fill tags in the same way as it currently does with categories.

Would you like to disable this feature?
by
When I dont use this plugin , on the post it takes me to category page (ask a question).But when use your layer it takes /pirske?cat=9&tags=tag1%2Ctag2 (tag1 and tag3 is example of the post.)
I dont get it what I have to disable it
by
+1
At the moment it has two features:

1) When the user is on a tag page, clicking on "Ask a Question" will take the user to the "Ask" page with the tag field pre-filled.

2) Post can have a category and/or tags, so when the user is on a post, clicking on "Ask a Question" will take the user to the "Ask" page with both the category AND the tag fields pre-filled. That's why you're seeing /pirske?cat=9&tags=tag1%2Ctag2 in the address: "cat=9" is the category and "tags=tag1%2Ctag2" represents the tags.

I was talking about feature 2. Would you like to disable feature 2?
by
yes :)) please disable feature 2
by
+1
Done. Please see the updated answer.
by
Works well sir. Many thanks for your efforts.Both options are good.
it makes closer to control  "tag" onq2a more.
My expectation that giving access to people can control/access on own tags.
I think it makes q2a better...
by
+1
That's actually a good idea. You're welcome! My pleasure. :)
by
+1
A least , like category management , we can give a control of tag to someone :)
Generally , giving a access for  category is very restricted , it has to be more access on category.
Also , if q2a can do this for tags than will be perfect.It will take attention of people who cares about brand or etc.They would like to ask for a tag management.It sounds good for me:)
...