Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 4 Articles

Reply
 
Thread Tools
[HOW-TO vB4] Create a Widget using Plugins and Templates
Mythotical
Join Date: Jun 2004
Posts: 1,428

 

Booneville, AR, USA
Show Printable Version Email this Page Subscription
Mythotical Mythotical is offline 02-17-2010, 10:00 PM

In this tutorial I am hoping to enlighten many in wondering how to do their own custom widget without confusion.

I came across someone needing help with a widget issue, they could not get javascript to work nor PHP in the widget so I dug right in, keep in mind this is my first widget so I was doing this blindly, but upon digging in I realized it was easy once I learned what each portion of the system did, only took about 15 or 20 mins to figure it out. So I feel anyone can learn to do a widget faster than their own modification.

Lets begin, keep in mind that this is explained on how I did it and if you have questions with any aspect explained or not then just ask, I will gladly answer.

Step 1. - Widget Creation

With this step you want to create your widget first, I prefered to create the widget first as it seemed logical but you can rearrange the steps once you are used to the system.

Go to: AdminCP > vBulletin CMS > Widgets



Step 1a. - Widget Creation - Details

Click Create Widget at the bottom of this new page.



We now have a new page with boxes for: Widget Type, Title, and Description. Lets get the boxes filled in.

Widget Type: Static HTML
Title: My Widget (Name your widget whatever you would like)
Description: Make the description explanatory of what this widget does.



Click Save to create your new widget.

Step 2. - Widget Location

You'll need to go to AdminCP > vBulletin CMS > Layout Manager

The new page will load, on this page you have a list of layouts you have created or default layout. Find the layout you want to have this widget appear on and click GO next to the dropdown that is in line with your layout you have chosen, make sure Edit is selected from the dropdown.



Step 2a. - Widget Select and Add

From the box to the left, you will see all available widgets that have been created. Select your newly created Widget and click the > that is the right of that box.



Step 2b. - Move Widget

Once you have added the widget, a new box will appear with your Widget's title, mine is titled My Widget. You can click the darker bar with your widget title in it to move it to which ever column you choose.



Then click Save at the bottom to save the location.

Step 3. - Configure Widget

Head back to your left menu and click on Widgets.

When the page loads, find your widget and at the far right click Configure as the screenshot shows below.



Step 3a. - Configure Widget Page

A box will popup and turn the background black. In this new window or box do the following.

Enter Static HTML: Empty the box of everything
Template Name: Enter the name of your template you plan to create for use with this widget.



Step 4. - Add Widget Template

Go to: AdminCP > Styles & Templates > Style Manager



On that page, find the style you want this widget to appear with, then from the drop down to the far right choose Add New Template.



Step 4a. - Template Information

When the Add New Template page loads fill the boxes as listed below.

Title: Enter the name of your template, it is the same name that you entered when configuring your widget in Step 3.
Template: Enter the following html into this area.
HTML Code:
<div class="cms_widget">
    <div class="block">
        <div class="cms_widget_header">
        <h3>{vb:raw widget_title}</h3>
        </div>
        <div class="cms_widget_content">
        Testing my widget, this is my username: {vb:raw myusername}
        </div>
    </div>
</div>
Click save once you have entered the template info.



Step 5. - Plugin Creation

Go to: AdminCP > Products & Plugins > Plugin Manager (You can create yourself a new product but if you are new to any type of vB modifying then I suggest you don't attempt to create a product)



On the new page, scroll to the bottom and click on Add New Plugin



Step 5a. - Plugin Info (Keep in mind this is for testing purposes)

On this page, fill in the boxes as provided below.

Product: Choose vBulletin CMS (If you created a product, choose it from the drop down)
Hook Location: global_start (Choose the plugin that fits best into where you want this to be shown, global_start is the best option for now)
Title: Give descriptive title
Execution Order: Leave this field alone
Plugin PHP Code:
PHP Code:
$myusername =  $vbulletin->userinfo['username'];

vB_Template::preRegister('vbcms_widget_mywidget',array('myusername'  => $myusername)); 
Plugin is Active: Set this to YES

Then click save and done



You are done. Now load your page and view your widget in action.

Reply With Quote
  #22  
Old 04-29-2011, 09:35 AM
ahmedipa ahmedipa is offline
 
Join Date: Feb 2009
Posts: 93
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

nice one I will try to do it next time
Reply With Quote
  #23  
Old 04-30-2011, 11:58 AM
TalkVirginia's Avatar
TalkVirginia TalkVirginia is offline
 
Join Date: Oct 2008
Location: Virginia
Posts: 545
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I was able to get this to work on the CMS using the process_template_complete hook location.
Reply With Quote
  #24  
Old 09-03-2011, 10:01 AM
TheMac TheMac is offline
 
Join Date: Dec 2010
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello! I want to show the content of a Widget only to guests, do you know how to it?
I have tried this also with the default info and nothing
Reply With Quote
  #25  
Old 09-23-2011, 03:42 AM
Mythotical Mythotical is offline
 
Join Date: Jun 2004
Location: Booneville, AR, USA
Posts: 1,428
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by TheMac View Post
Hello! I want to show the content of a Widget only to guests, do you know how to it?
I have tried this also with the default info and nothing
That would require an if condition to show only to your guest usergroup.
Reply With Quote
  #26  
Old 11-21-2011, 12:17 AM
djrockinsteve djrockinsteve is offline
 
Join Date: Nov 2011
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you very much for detailing the process. The vBulletin tutorial omits a few details probably due to software updates.

I had to select forum complete to not get html code across the top of the page or to change the appearance of the home page, but I cannot find it anywhere on the entire forum. Running latest version.

FYI it is a weather widget showing local weather.

Any thoughts or suggestions.

Thanks again
Reply With Quote
  #27  
Old 02-28-2012, 03:01 AM
rbc1225 rbc1225 is offline
 
Join Date: Feb 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This article helped a great deal in some of the very basic controls of the template creation and such.

thanks
Reply With Quote
  #28  
Old 04-24-2012, 06:22 PM
maryx maryx is offline
 
Join Date: Jan 2006
Posts: 116
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I already have the widget for most recent blogs.

Can someone help me create a widget that would pull the posts from one particular blog and put them on the Content page?

Thanks!
Reply With Quote
  #29  
Old 06-28-2012, 01:36 PM
Badshah93 Badshah93 is offline
 
Join Date: Jun 2010
Location: India
Posts: 505
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

if someone wants to create Widget as per this article

Change the hook:
global_start to vbcms_process_widget_complete

and when you are creating new widget (Static Html)
do enter something in that box, else widget won't display.
Reply With Quote
Благодарность от:
BirdOPrey5
  #30  
Old 06-28-2012, 06:37 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Big thanks Badshan93. I couldn't figure out why the template wasn't displaying.
Reply With Quote
  #31  
Old 07-14-2012, 05:53 AM
Mythotical Mythotical is offline
 
Join Date: Jun 2004
Location: Booneville, AR, USA
Posts: 1,428
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I will be redoing this article as it seems things have changed.
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:17 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.13331 seconds
  • Memory Usage 2,302KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_html
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (4)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete