The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
[HOW-TO vB4] Create a Widget using Plugins and Templates
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> 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:
Then click save and done You are done. Now load your page and view your widget in action. |
#2
|
|||
|
|||
Unless I am completely out of my mind the hook global_start isn't nearly as global as one would hope... When I changed this to init_startup I got this working, global_start would fire on forums but not CMS...
|
#3
|
|||
|
|||
Zanthor, you are correct but what I used was an example. Nothing more. I left this article open for others to play around with it and try different things. The widget that I tested showed on the forumhome not the CMS.
|
#4
|
|||
|
|||
How exactly do you know which hook to choose? I'm guessing you can probably see a complete list of all the hooks from that dropdown menu, but how are you supposed to know what each of them does and if it should be used for your particular mod?
|
#5
|
|||
|
|||
Well lets say you want to display info only when visiting a forum then it would be a forumdisplay, forumhome, etc type of hook. Global site would be init_start or global_start. Profile would be anything that has profile at the beginning. Basically each hook starts with the name of the part of the site it deals with.
|
#6
|
|||
|
|||
So if several hooks started with the same thing, you would need to give your best guess as to which one would be the right one of your mod?
|
#7
|
|||
|
|||
Most have a start, end, complete, etc. Just depends on if you feel it will be best suited at start or complete. Usually you can open the file of the page your looking for, then find the hook of where it would fit into place.
|
#8
|
|||
|
|||
Hi, this is my first try at widget creation, and I'm a vB noob.... so this is pretty much over my head
Would like to create a widget using script Code:
<script src="http://www.gmodules.com/ig/ifr?url=http://static.die.net/earth/gadget.xml&up_clouds=1&up_proj=mercator&synd=open&w=240&h=137&title=World+Sunlight+Map&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js"></script> Any help would be greatly appreciated... Thanks |
#9
|
|||
|
|||
heywho: You would do it just the same way. I haven't tested it but the script code would go in the same place that html code would go in the template. If you tested it, I will attempt to figure it out once I've had some sleep.
Sorry for the delay, somehow the email regarding a new reply to this thread snuck by me. |
#10
|
|||
|
|||
How do you know which page the hook is located in?
|
Thread Tools | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|