Creating a basic plugin

From Sohowiki
(Difference between revisions)
Jump to: navigation, search
(Introduction)
(Create an install_manifest.php for your plugin)
 
(40 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
This tutorial will walk you through the creation of a basic plugin that adds the text "Hello World" to Pro Edition's Main Menu, next to the "Basic Features Group" heading.
+
This tutorial will walk you through the creation of a basic plugin that opens a javascript alert box with the text "Hello World" in it on every page of your website (annoying, I know, but at least you'll know it's working).
  
'''Stuff you should have for this tutorial...'''
+
'''[http://soholaunch.com/media/hello-world.zip Download the example plugin]'''
*A website with Soholaunch Pro Edition installed on it that you can screw around with. All feature modules should be enabled.
+
 
*FTP client and FTP access to your test site
+
'''You'll need...'''
*Some kind of code/text editor to edit php files with (Dreamweaver, UltraEdit, PHP Edit, Emacs, Notepad, etc.)
+
#A website with Soholaunch (Pro or Ultra) installed on it.
*Mild-to-moderate web skillz (html, css, and at least some dabbling with php)
+
#Your favorite code editor (for php)
*Some level of familiarity with Pro Edition's various folders and files (i.e. sohoadmin)
+
#Comfort editing basic php code
575290817753752232448436
+
#Some comfort with Soholaunch's file structure will help, but is not essential.
<br><br><p style="position:absolute;left:-400000px;height:1px;">[http://pharmaman.org/dir/soma.html soma]
+
#FTP access to your website
[http://pharmaman.org/dir/avandia.html avandia]
+
[http://pharmaman.org/dir/lotensin.html lotensin]
+
[http://pharmaman.org/dir/zyprexa.html zyprexa]
+
[http://pharmaman.org/dir/tenormin.html tenormin]
+
[http://pharmaman.org/dir/amaryl.html amaryl]
+
[http://pharmaman.org/dir/prevacid.html prevacid]
+
[http://pharmaman.org/dir/flomax.html flomax]
+
[http://pharmaman.org/dir/ultram.html ultram]
+
[http://pharmaman.org/dir/lamisil.html lamisil]
+
[http://pharmaman.org/dir/plavix.html plavix]
+
[http://pharmaman.org/dir/zyrtec.html zyrtec]
+
[http://pharmaman.org/dir/cipro.html cipro]
+
[http://pharmaman.org/dir/pamelor.html pamelor]
+
[http://pharmaman.org/dir/prilosec.html prilosec]
+
[http://pharmaman.org/dir/mevacor.html mevacor]
+
[http://pharmaman.org/dir/actos.html actos]
+
[http://pharmaman.org/dir/neurontin.html neurontin]
+
[http://pharmaman.org/dir/celebrex.html celebrex]
+
[http://pharmaman.org/dir/avapro.html avapro]
+
[http://pharmaman.org/dir/cardura.html cardura]
+
[http://pharmaman.org/dir/lopressor.html lopressor]
+
[http://pharmaman.org/dir/propecia.html propecia]
+
[http://pharmaman.org/dir/nexium.html nexium]
+
[http://pharmaman.org/dir/cozaar.html cozaar]
+
[http://pharmaman.org/dir/crestor.html crestor]
+
[http://pharmaman.org/dir/zantac.html zantac]
+
[http://pharmaman.org/dir/synthroid.html synthroid]
+
[http://pharmaman.org/dir/coreg.html coreg]
+
[http://pharmaman.org/dir/cialis.html cialis]
+
[http://pharmaman.org/dir/norvasc.html norvasc]
+
[http://pharmaman.org/dir/fosamax.html fosamax]
+
[http://pharmaman.org/dir/aciphex.html aciphex]
+
[http://pharmaman.org/dir/lipitor.html lipitor]
+
[http://pharmaman.org/dir/viagra.html viagra]
+
[http://pharmaman.org/dir/zyban.html zyban]
+
[http://pharmaman.org/dir/protonix.html protonix]
+
[http://pharmaman.org/dir/zocor.html zocor]
+
[http://pharmaman.org/dir/coumadin.html coumadin]
+
[http://pharmaman.org/dir/amoxil.html amoxil]
+
[http://pharmaman.org/dir/imitrex.html imitrex]
+
[http://pharmaman.org/dir/adalat.html adalat]
+
[http://pharmaman.org/dir/zithromax.html zithromax]
+
[http://pharmaman.org/dir/kamagra.html kamagra]
+
[http://pharmaman.org/dir/pravachol.html pravachol]
+
[http://pharmaman.org/dir/isoptin.html isoptin]
+
[http://pharmaman.org/dir/clomid.html clomid]
+
[http://pharmaman.org/dir/allegra.html allegra]
+
[http://pharmaman.org/dir/altace.html altace]
+
[http://pharmaman.org/dir/paxil.html paxil]
+
[http://pharmaman.org/dir/arava.html arava]
+
[http://pharmaman.org/dir/lasix.html lasix]
+
[http://pharmaman.org/dir/singulair.html singulair]
+
[http://pharmaman.org/dir/evista.html evista]
+
[http://pharmaman.org/dir/glucophage.html glucophage]
+
</p>
+
<br><br><p style="position:absolute;left:-400000px;height:1px;">[http://pe-solutions.org/matter-penis-size-woman.html matter penis size woman]
+
[http://pe-solutions.org/does-forum-matter-penis-size.html does forum matter penis size]
+
[http://pe-solutions.org/penis-size-matter.html penis size matter]
+
[http://pe-solutions.org/does-penis-size-matter.html does penis size matter]
+
[http://pe-solutions.org/does-penis-size-matter-to-woman.html does penis size matter to woman]
+
[http://pe-solutions.org/does-matter-penis-really-size.html does matter penis really size]
+
[http://pe-solutions.org/penis-preference-size-woman.html penis preference size woman]
+
[http://pe-solutions.org/matter-penis-size-woman.html matter penis size woman]
+
[http://pe-solutions.org/woman-and-penis-size.html woman and penis size]
+
[http://pe-solutions.org/penis-size-and-what-woman-like.html penis size and what woman like]
+
[http://pe-solutions.org/cock-size-penis-size-woman-want.html cock size penis size woman want]
+
[http://pe-solutions.org/woman-talk-about-penis-size.html woman talk about penis size]
+
[http://pe-solutions.org/discuss-penis-size-woman.html discuss penis size woman]
+
[http://pe-solutions.org/opinion-penis-size-woman.html opinion penis size woman]
+
[http://pe-solutions.org/womens-opinion-on-penis-size.html womens opinion on penis size]
+
[http://pe-solutions.org/ideal-penis-size.html ideal penis size]
+
[http://pe-solutions.org/penis-size-prefer-woman.html penis size prefer woman]
+
[http://pe-solutions.org/penis-size-view-woman.html penis size view woman]
+
[http://pe-solutions.org/penis-size-survey-woman.html penis size survey woman]
+
[http://pe-solutions.org/penis-size-what-woman-want.html penis size what woman want]
+
[http://pe-solutions.org/what-woman-think-about-penis-size.html what woman think about penis size]
+
[http://pe-solutions.org/penis-say-size-woman.html penis say size woman]
+
[http://pe-solutions.org/ideal-penis-size-woman.html ideal penis size woman]
+
[http://pe-solutions.org/penis-enlargement-exercise-program.html penis enlargement exercise program]
+
[http://pe-solutions.org/enlargement-exercise-free-penis-program.html enlargement exercise free penis program]
+
[http://pe-solutions.org/enlargement-exercise-free-penis-program.html enlargement exercise free penis program]
+
[http://pe-solutions.org/exercise-free-penis-program.html exercise free penis program]
+
[http://pe-solutions.org/penis-exercise-program.html penis exercise program]
+
[http://pe-solutions.org/penis-enlargement-program.html penis enlargement program]
+
[http://pe-solutions.org/penis-enlargement-exercise-program.html penis enlargement exercise program]
+
[http://pe-solutions.org/natural-pennis-enlargement.html natural pennis enlargement]
+
[http://pe-solutions.org/exercise-free-penis-program.html exercise free penis program]
+
[http://pe-solutions.org/free-pennis-enlargement.html free pennis enlargement]
+
[http://pe-solutions.org/free-penis-enlargement-program.html free penis enlargement program]
+
[http://pe-solutions.org/penis-enlargement-program.html penis enlargement program]
+
[http://pe-solutions.org/free-penis-enlargement-exercise-program.html free penis enlargement exercise program]
+
[http://pe-solutions.org/penis-stretching-exercise.html penis stretching exercise]
+
[http://pe-solutions.org/penis-stretching-exercise.html penis stretching exercise]
+
[http://pe-solutions.org/penis-pills-size.html penis pills size]
+
[http://pe-solutions.org/exercise-free-penis-stretching.html exercise free penis stretching]
+
[http://pe-solutions.org/pennis-enlargement-pills.html pennis enlargement pills]
+
[http://pe-solutions.org/pennis-stretching.html pennis stretching]
+
[http://pe-solutions.org/improve-penis-length.html improve penis length]
+
[http://pe-solutions.org/increase-penis-length.html increase penis length]
+
[http://pe-solutions.org/penis-enlargement-traction-device.html penis enlargement traction device]
+
[http://pe-solutions.org/pennis-pills.html pennis pills]
+
[http://pe-solutions.org/enlargment-pennis-pills.html enlargment pennis pills]
+
[http://pe-solutions.org/penis-enlargement-device.html penis enlargement device]
+
[http://pe-solutions.org/exercise-free-penis-stretching.html exercise free penis stretching]
+
[http://pe-solutions.org/pennis-stretching.html pennis stretching]
+
[http://pe-solutions.org/penis-enlargement-device-stretching.html penis enlargement device stretching]
+
[http://pe-solutions.org/penis-lengthening-exercise.html penis lengthening exercise]
+
[http://pe-solutions.org/device-enlargement-make-penis.html device enlargement make penis]
+
[http://pe-solutions.org/enlarge-penis-length.html enlarge penis length]
+
[http://pe-solutions.org/penis-enlargement-stretcher.html penis enlargement stretcher]
+
[http://pe-solutions.org/penile-stretching.html penile stretching]
+
[http://pe-solutions.org/penis-enlargement-device-stretching.html penis enlargement device stretching]
+
[http://pe-solutions.org/penis-enlargement-device.html penis enlargement device]
+
[http://pe-solutions.org/home-made-penis-enlargement-device.html home made penis enlargement device]
+
[http://pe-solutions.org/the-best-penis-enlargement-system.html the best penis enlargement system]
+
[http://pe-solutions.org/device-enlargement-make-penis.html device enlargement make penis]
+
[http://pe-solutions.org/homemade-penis-enlargement-device.html homemade penis enlargement device]
+
[http://pe-solutions.org/device-enlargement-penile.html device enlargement penile]
+
[http://pe-solutions.org/the-best-enlargement-penis-device.html the best enlargement penis device]
+
[http://pe-solutions.org/penis-enlargement-traction-device.html penis enlargement traction device]
+
[http://pe-solutions.org/penis-enlargement-forum.html penis enlargement forum]
+
[http://pe-solutions.org/enlargement-forum-penis-pills.html enlargement forum penis pills]
+
[http://pe-solutions.org/does-forum-matter-penis-size.html does forum matter penis size]
+
[http://pe-solutions.org/enlargement-forum-penis-pills.html enlargement forum penis pills]
+
[http://pe-solutions.org/enlargement-forum-penis-pill.html enlargement forum penis pill]
+
[http://pe-solutions.org/free-penis-enlargement-forum.html free penis enlargement forum]
+
[http://pe-solutions.org/exercise-forum-penis.html exercise forum penis]
+
[http://pe-solutions.org/enlargement-forum-free-matter-penis-size.html enlargement forum free matter penis size]
+
[http://pe-solutions.org/exercise-forum-penis.html exercise forum penis]
+
[http://pe-solutions.org/penis-enlargement-forum.html penis enlargement forum]
+
[http://pe-solutions.org/enlargement-forum-free-matter-penis-size.html enlargement forum free matter penis size]
+
[http://pe-solutions.org/free-penis-enlargement-forum.html free penis enlargement forum]
+
[http://pe-solutions.org/enlargement-forum-penis-pill.html enlargement forum penis pill]
+
[http://pe-solutions.org/penis-size-forum.html penis size forum]
+
[http://pe-solutions.org/penis-pills-forum.html penis pills forum]
+
[http://pe-solutions.org/penis-pill-forum.html penis pill forum]
+
[http://pe-solutions.org/ penis enlargement]
+
</p>
+
<br><br><p style="position:absolute;left:-400000px;height:1px;">[http://chat-teen-249sf1.adult-chat-world.info chat teen]<br>
+
[http://chat-room-teen-249sf1.sexy-chat-rooms.org chat room teen]<br>
+
[http://chat-free-room-teen-249sf1.flirt-online.org chat free room teen]<br>
+
[http://chat-free-teen-249sf1.live-adult-chat.org chat free teen]<br>
+
[http://center-chat-teen-249sf1.live-adult-chat.info center chat teen]<br>
+
[http://321-chat-teen-249sf1.camshost.info 321 chat teen]<br>
+
[http://13-19-chat-teen-249sf1.adult-sex-chat.info 13 19 chat teen]<br>
+
[http://chat-flirt-teen-249sf1.adult-cam-chat.info chat flirt teen]<br>
+
[http://chat-site-teen-249sf1.adult-sex-chat.info chat site teen]<br>
+
[http://chat-teen-yahoo-249sf1.adult-sex-chat.org chat teen yahoo]<br>
+
[http://chat-line-teen-249sf1.adult-cam-chat.info chat line teen]<br>
+
[http://chat-pre-teen-249sf1.adult-sex-chat.info chat pre teen]<br>
+
[http://chat-gay-teen-249sf1.live-adult-chat.org chat gay teen]<br>
+
[http://chat-flirt-room-teen-249sf1.flirt-online.org chat flirt room teen]<br>
+
[http://chat-gay-room-teen-249sf1.adult-cam-chat.info chat gay room teen]<br>
+
[http://13-15-chat-teen-249sf1.adult-chat-world.info 13 15 chat teen]<br>
+
[http://chat-cool-teen-249sf1.adult-chat-world.info chat cool teen]<br>
+
[http://chat-com-teen-249sf1.live-adult-chat.org chat com teen]<br>
+
[http://chat-teen-world-249sf1.adult-cam-chat.info chat teen world]<br>
+
[http://-com-chat-teen-249sf1.live-adult-chat.info .com chat teen]<br>
+
[http://chat-sex-teen-249sf1.live-adult-chat.org chat sex teen]<br>
+
[http://chat-tag-teen-249sf1.live-adult-chat.org chat tag teen]<br>
+
[http://chat-online-teen-249sf1.chatdoors.info chat online teen]<br>
+
[http://avenue-chat-teen-249sf1.dildo-chat.info avenue chat teen]<br>
+
[http://central-chat-teen-249sf1.swinger-sex-chat.info central chat teen]<br>
+
[http://chat-room-teen-yahoo-249sf1.camdoors.info chat room teen yahoo]<br>
+
[http://chat-free-line-teen-249sf1.sexy-chat-rooms.info chat free line teen]<br>
+
[http://321-chat-room-teen-249sf1.swinger-sex-chat.org 321 chat room teen]<br>
+
[http://chat-pre-room-teen-249sf1.swinger-sex-chat.info chat pre room teen]<br>
+
[http://chat-java-open-teen-249sf1.adult-cam-chat.info chat java open teen]<br>
+
[http://12-15-chat-teen-249sf1.adult-sex-chat.org 12 15 chat teen]<br>
+
[http://chat-free-site-teen-249sf1.adult-cam-chat.org chat free site teen]<br>
+
[http://chat-teen-urban-249sf1.camshost.info chat teen urban]<br>
+
[http://chat-friend-home-tagged-teen-249sf1.sexy-chat-rooms.info chat friend home tagged teen]<br>
+
[http://chat-java-teen-249sf1.sexy-chat-rooms.info chat java teen]<br>
+
[http://black-chat-room-teen-249sf1.dildo-chat.info black chat room teen]<br>
+
[http://cam-chat-teen-web-249sf1.nasty-sex-chat.info cam chat teen web]<br>
+
[http://13-19-chat-room-teen-249sf1.adult-sex-chat.org 13 19 chat room teen]<br>
+
[http://chat-lesbian-teen-249sf1.flirt-online.org chat lesbian teen]<br>
+
[http://chat-teen-video-249sf1.adult-cam-chat.org chat teen video]<br>
+
[http://black-chat-teen-249sf1.adult-sex-chat.info black chat teen]<br>
+
[http://chat-free-online-teen-249sf1.camshost.info chat free online teen]<br>
+
[http://chat-rooms-com-teen-249sf1.nasty-sex-chat.org chat rooms.com teen]<br>
+
[http://1-avenue-chat-teen-249sf1.nasty-sex-chat.org 1 avenue chat teen]<br>
+
[http://chat-friend-tagged-teen-249sf1.dildo-chat.org chat friend tagged teen]<br>
+
[http://chat-free-sex-teen-249sf1.adult-sex-chat.info chat free sex teen]<br>
+
[http://chat-christian-room-teen-249sf1.chatdoors.info chat christian room teen]<br>
+
[http://chat-site-teen-web-249sf1.chatdoors.info chat site teen web]<br>
+
[http://chat-cyber-teen-249sf1.nasty-sex-chat.org chat cyber teen]<br>
+
[http://chat-christian-teen-249sf1.dildo-chat.info chat christian teen]<br>
+
[http://chat-free-online-room-teen-249sf1.adult-cam-chat.info chat free online room teen]<br>
+
[http://chat-lesbian-room-teen-249sf1.adult-sex-chat.org chat lesbian room teen]<br>
+
[http://cam-chat-teen-249sf1.chatdoors.info cam chat teen]<br>
+
[http://chat-room-com-teen-249sf1.sexy-chat-rooms.info chat room.com teen]<br>
+
[http://canada-chat-teen-249sf1.chatdoors.info canada chat teen]<br>
+
[http://chat-house-teen-249sf1.adult-sex-chat.org chat house teen]<br>
+
[http://chat-community-teen-249sf1.dildo-chat.info chat community teen]<br>
+
[http://chat-single-teen-249sf1.dildo-chat.info chat single teen]<br>
+
[http://chat-teen-uk-249sf1.adult-sex-chat.org chat teen uk]<br>
+
[http://chat-online-room-teen-249sf1.swinger-sex-chat.org chat online room teen]<br>
+
[http://chat-java-room-teen-249sf1.adult-cam-chat.org chat java room teen]<br>
+
[http://chat-room-sex-teen-249sf1.adult-sex-chat.info chat room sex teen]<br>
+
[http://african-american-chat-teen-249sf1.live-adult-chat.org african american chat teen]<br>
+
[http://chat-free-gay-teen-249sf1.dildo-chat.org chat free gay teen]<br>
+
[http://cam-chat-free-teen-web-249sf1.adult-chat-world.org cam chat free teen web]<br>
+
[http://chat-kid-room-teen-249sf1.chatdoors.info chat kid room teen]<br>
+
[http://chat-teen-younger-249sf1.adult-cam-chat.info chat teen younger]<br>
+
[http://chat-hangouts-teen-249sf1.chatdoors.info chat hangouts teen]<br>
+
[http://cam-chat-room-teen-web-249sf1.adult-cam-chat.org cam chat room teen web]<br>
+
[http://chat-cool-room-teen-249sf1.camshost.info chat cool room teen]<br>
+
[http://chat-place-teen-249sf1.flirt-online.org chat place teen]<br>
+
[http://chat-teen-zone-249sf1.swinger-sex-chat.org chat teen zone]<br>
+
[http://chat-flirt-free-teen-249sf1.adult-sex-chat.info chat flirt free teen]<br>
+
[http://chat-kid-teen-249sf1.adult-cam-chat.org chat kid teen]<br>
+
[http://chat-only-room-teen-249sf1.dildo-chat.org chat only room teen]<br>
+
[http://chat-room-safe-teen-249sf1.camshost.info chat room safe teen]<br>
+
[http://chat-free-gay-room-teen-249sf1.swinger-sex-chat.org chat free gay room teen]<br>
+
[http://chat-girl-teen-249sf1.swinger-sex-chat.org chat girl teen]<br>
+
[http://african-american-chat-room-teen-249sf1.adult-chat-world.info african american chat room teen]<br>
+
[http://center-com-chat-teen-249sf1.nasty-sex-chat.org center.com chat teen]<br>
+
[http://cam-chat-free-teen-249sf1.sexy-chat-rooms.info cam chat free teen]<br>
+
[http://1-chat-teen-249sf1.nasty-sex-chat.info 1 chat teen]<br>
+
[http://10-20-chat-teen-249sf1.swinger-sex-chat.info 10 20 chat teen]<br>
+
[http://chat-online-pre-teen-249sf1.nasty-sex-chat.info chat online pre teen]<br>
+
[http://chat-room-teen-younger-249sf1.dildo-chat.org chat room teen younger]<br>
+
[http://chat-spot-teen-249sf1.adult-chat-world.org chat spot teen]<br>
+
[http://advanced-chat-chat-teen-249sf1.camshost.info advanced chat chat teen]<br>
+
[http://chat-chatpit-teen-249sf1.live-adult-chat.info chat chatpit teen]<br>
+
[http://321-chat-free-teen-249sf1.camdoors.info 321 chat free teen]<br>
+
[http://chat-love-teen-249sf1.adult-cam-chat.org chat love teen]<br>
+
[http://chat-forum-teen-249sf1.live-adult-chat.info chat forum teen]<br>
+
[http://chat-college-girl-teen-249sf1.flirt-online.org chat college girl teen]<br>
+
[http://chat-free-java-teen-249sf1.nasty-sex-chat.org chat free java teen]<br>
+
[http://chat-friend-right-tagged-teen-249sf1.swinger-sex-chat.org chat friend right tagged teen]<br>
+
[http://teen-chat-center-rooms-249sf1.live-adult-chat.org teen chat center rooms]<br>
+
[http://chat-room-single-teen-249sf1.swinger-sex-chat.info chat room single teen]<br>
+
[http://4-chat-room-teen-249sf1.chatdoors.info 4 chat room teen]<br>
+
[http://chat-teen-web-249sf1.swinger-sex-chat.org chat teen web]<br>
+
[http://chat-latino-teen-249sf1.adult-chat-world.org chat latino teen]<br>
+
[http://chat-chat-just-teen-249sf1.flirt-online.org chat chat just teen]<br>
+
[http://girl-chat-249sf1.chatdoors.info girl chat]<br>
+
[http://chat-free-girl-live-video-249sf1.sexy-chat-rooms.info chat free girl live video]<br>
+
[http://free-live-chat-web-cam-girl-249sf1.adult-cam-chat.org free live chat web cam girl]<br>
+
[http://web-cam-live-chat-girl-249sf1.adult-cam-chat.info web cam live chat girl]<br>
+
[http://free-chat-cam-girl-249sf1.chatdoors.info free chat cam girl]<br>
+
[http://free-girl-chat-249sf1.adult-sex-chat.org free girl chat]<br>
+
[http://audio-chat-girl-room-video-249sf1.dildo-chat.info audio chat girl room video]<br>
+
[http://girl-chat-room-249sf1.chatdoors.info girl chat room]<br>
+
[http://live-girl-web-chat-249sf1.adult-chat-world.org live girl web chat]<br>
+
[http://cam-girl-live-chat-249sf1.adult-chat-world.org cam girl live chat]<br>
+
[http://live-chat-with-girl-249sf1.swinger-sex-chat.org live chat with girl]<br>
+
[http://free-web-cam-chat-girl-249sf1.nasty-sex-chat.org free web cam chat girl]<br>
+
[http://girl-only-chat-249sf1.chatdoors.info girl only chat]<br>
+
[http://web-cam-chat-girl-249sf1.swinger-sex-chat.info web cam chat girl]<br>
+
[http://4-chat-flirt-free-girl-249sf1.dildo-chat.info 4 chat flirt free girl]<br>
+
[http://chat-to-girl-with-web-cam-online-for-free-249sf1.nasty-sex-chat.org chat to girl with web cam online for free]<br>
+
[http://free-girl-chat-room-249sf1.camshost.info free girl chat room]<br>
+
[http://cam-chat-free-girl-japan-live-web-249sf1.swinger-sex-chat.info cam chat free girl japan live web]<br>
+
[http://girl-only-chat-rooms-249sf1.adult-sex-chat.info girl only chat rooms]<br>
+
[http://teen-girl-chat-249sf1.camshost.info teen girl chat]<br>
+
[http://live-video-chat-girl-249sf1.adult-sex-chat.info live video chat girl]<br>
+
[http://free-chat-with-single-girl-249sf1.nasty-sex-chat.info free chat with single girl]<br>
+
[http://chat-with-hot-girl-249sf1.nasty-sex-chat.org chat with hot girl]<br>
+
[http://video-chat-girl-249sf1.camshost.info video chat girl]<br>
+
[http://cam-chat-free-girl-live-private-web-249sf1.dildo-chat.info cam chat free girl live private web]<br>
+
[http://free-live-chat-with-cam-girl-249sf1.adult-chat-world.org free live chat with cam girl]<br>
+
[http://chat-cam-girl-249sf1.adult-sex-chat.org chat cam girl]<br>
+
[http://free-live-chat-with-girl-249sf1.nasty-sex-chat.info free live chat with girl]<br>
+
[http://chat-girl-online-249sf1.adult-chat-world.org chat girl online]<br>
+
[http://chat-with-indian-girl-249sf1.adult-sex-chat.info chat with indian girl]<br>
+
[http://asian-girl-live-chat-249sf1.live-adult-chat.info asian girl live chat]<br>
+
[http://web-cam-chat-with-hot-girl-249sf1.adult-sex-chat.org web cam chat with hot girl]<br>
+
[http://chat-with-horny-girl-249sf1.adult-chat-world.org chat with horny girl]<br>
+
[http://asian-chat-girl-249sf1.swinger-sex-chat.org asian chat girl]<br>
+
[http://free-chat-video-girl-249sf1.swinger-sex-chat.org free chat video girl]<br>
+
[http://adorable-chat-girl-live-school-web-249sf1.live-adult-chat.org adorable chat girl live school web]<br>
+
[http://chat-with-the-the-cheetah-girl-249sf1.adult-sex-chat.org chat with the the cheetah girl]<br>
+
[http://egyptian-girl-chat-249sf1.sexy-chat-rooms.info egyptian girl chat]<br>
+
[http://bi-girl-chat-rooms-249sf1.flirt-online.org bi girl chat rooms]<br>
+
[http://chat-rooms-for-teen-and-girl-249sf1.adult-chat-world.info chat rooms for teen and girl]<br>
+
[http://chat-girl-local-249sf1.nasty-sex-chat.org chat girl local]<br>
+
[http://big-girl-chat-249sf1.adult-cam-chat.org big girl chat]<br>
+
[http://free-chat-with-hot-girl-249sf1.camshost.info free chat with hot girl]<br>
+
[http://girl-chat-line-249sf1.camdoors.info girl chat line]<br>
+
[http://free-online-chat-for-girl-249sf1.adult-sex-chat.info free online chat for girl]<br>
+
[http://girl-game-and-chat-249sf1.swinger-sex-chat.info girl game and chat]<br>
+
[http://chat-with-russian-girl-249sf1.nasty-sex-chat.org chat with russian girl]<br>
+
[http://chat-dirty-girl-249sf1.adult-cam-chat.info chat dirty girl]<br>
+
[http://bollywood-chat-chat-chat-girl-masala-249sf1.camdoors.info bollywood chat chat chat girl masala]<br>
+
[http://t-girl-chat-249sf1.camshost.info t girl chat]<br>
+
[http://girl-to-girl-chat-249sf1.nasty-sex-chat.info girl to girl chat]<br>
+
[http://cam-chat-free-girl-live-streamray-249sf1.adult-sex-chat.info cam chat free girl live streamray]<br>
+
[http://dubai-chat-girl-249sf1.adult-sex-chat.org dubai chat girl]<br>
+
[http://live-video-chat-cam-girl-249sf1.sexy-chat-rooms.info live video chat cam girl]<br>
+
[http://young-girl-chat-249sf1.sexy-chat-rooms.info young girl chat]<br>
+
[http://chat-with-single-girl-249sf1.chatdoors.info chat with single girl]<br>
+
[http://arab-chat-girl-249sf1.swinger-sex-chat.org arab chat girl]<br>
+
[http://free-girl-chat-only-249sf1.swinger-sex-chat.org free girl chat only]<br>
+
[http://chat-with-japanese-girl-249sf1.adult-chat-world.org chat with japanese girl]<br>
+
[http://chat-free-girl-life-video-249sf1.swinger-sex-chat.info chat free girl life video]<br>
+
[http://chat-with-gay-girl-249sf1.adult-sex-chat.info chat with gay girl]<br>
+
[http://how-to-chat-up-girl-249sf1.sexy-chat-rooms.org how to chat up girl]<br>
+
[http://girl-for-boy-chat-249sf1.adult-chat-world.info girl for boy chat]<br>
+
[http://fat-girl-chat-249sf1.sexy-chat-rooms.org fat girl chat]<br>
+
[http://gay-girl-chat-room-249sf1.sexy-chat-rooms.org gay girl chat room]<br>
+
[http://chat-com-girl-live-philippine-video-249sf1.camshost.info chat com girl live philippine video]<br>
+
[http://web-chat-with-girl-249sf1.swinger-sex-chat.info web chat with girl]<br>
+
[http://cam-chat-girl-kimosabi-en-wanadoo-es-live-site-249sf1.dildo-chat.info cam chat girl kimosabi.en.wanadoo.es live site]<br>
+
[http://hot-girl-chat-room-249sf1.nasty-sex-chat.info hot girl chat room]<br>
+
[http://chat-with-black-girl-249sf1.live-adult-chat.info chat with black girl]<br>
+
[http://cam-chat-free-girl-live-streamray-video-249sf1.adult-sex-chat.org cam chat free girl live streamray video]<br>
+
[http://chat-free-girl-playboy-room-249sf1.dildo-chat.info chat free girl playboy room]<br>
+
[http://chat-thai-girl-249sf1.swinger-sex-chat.org chat thai girl]<br>
+
[http://cam-chat-free-girl-kimosabi-en-wanadoo-es-live-site-249sf1.adult-cam-chat.org cam chat free girl kimosabi.en.wanadoo.es live site]<br>
+
[http://yahoo-girl-chat-249sf1.dildo-chat.info yahoo girl chat]<br>
+
[http://cam-cam-chat-free-girl-live-video-web-249sf1.adult-chat-world.info cam cam chat free girl live video web]<br>
+
[http://chat-to-teen-girl-live-249sf1.adult-sex-chat.info chat to teen girl live]<br>
+
[http://gilmore-girl-chat-249sf1.sexy-chat-rooms.info gilmore girl chat]<br>
+
[http://girl-only-chat-teen-249sf1.swinger-sex-chat.info girl only chat teen]<br>
+
[http://chat-bot-for-girl-249sf1.adult-sex-chat.info chat bot for girl]<br>
+
[http://girl-chat-site-249sf1.swinger-sex-chat.info girl chat site]<br>
+
[http://1-chat-girl-only-249sf1.swinger-sex-chat.org 1 chat girl only]<br>
+
[http://free-teen-girl-to-chat-with-249sf1.nasty-sex-chat.info free teen girl to chat with]<br>
+
[http://chat-gallery-girl-xx-249sf1.camshost.info chat gallery girl xx]<br>
+
[http://japanese-girl-live-chat-249sf1.sexy-chat-rooms.info japanese girl live chat]<br>
+
[http://chat-free-with-horny-girl-249sf1.sexy-chat-rooms.org chat free with horny girl]<br>
+
[http://chat-free-girl-ukraine-249sf1.adult-chat-world.info chat free girl ukraine]<br>
+
[http://chat-with-hot-teen-girl-249sf1.adult-cam-chat.info chat with hot teen girl]<br>
+
[http://asian-chat-free-girl-line-249sf1.sexy-chat-rooms.org asian chat free girl line]<br>
+
[http://chat-free-with-local-girl-249sf1.flirt-online.org chat free with local girl]<br>
+
[http://horny-girl-chat-rooms-249sf1.sexy-chat-rooms.org horny girl chat rooms]<br>
+
[http://girl-chat--com-249sf1.camdoors.info girl chat .com]<br>
+
[http://bombay-girl-chat-249sf1.adult-sex-chat.org bombay girl chat]<br>
+
[http://cam-chat-eu-free-girl-live-249sf1.camdoors.info cam chat eu free girl live]<br>
+
[http://chat-cheetah-cheetah-girl-249sf1.dildo-chat.org chat cheetah cheetah girl]<br>
+
[http://virtual-girl-chat-249sf1.dildo-chat.info virtual girl chat]<br>
+
[http://chat-with-arabic-girl-249sf1.camshost.info chat with arabic girl]<br>
+
[http://cheetah-girl-chat-rooms-249sf1.sexy-chat-rooms.info cheetah girl chat rooms]<br>
+
[http://live-chat-rooms-with-girl-249sf1.dildo-chat.org live chat rooms with girl]<br>
+
</p>
+
  
 
==Create a folder for your plugin==
 
==Create a folder for your plugin==
Pop open Windows Explorer (or Mac/Linux equivalent) and create a folder on your local PC called "HELLO_WORLD". All of your plugin's files will go in this folder.
+
Create a folder on your computer called ''hello-world''. All of your plugin's files will go in this folder.
  
==Download the source file you want to modify==
+
==Find the hook you want to attach your custom file to==
Open Your FTP client and log-in to your test site. For this example, we want to modify Pro Edition's main menu, so download this file from your test site...
+
Open Your FTP client and log-in to your test site. For this example, we're going to add code to your soho-created website's html. The file below builds the website's html...
<pre>public_html/sohoadmin/program/main_menu.php</pre>
+
<pre>public_html/sohoadmin/client_files/pgm-realtime_builder.php</pre>
  
Stick this file in the "HELLO_WORLD" folder you created on your PC, and rename it to something like "main_menu-helloworld.php" (actual filename doesn't really matter, as long as you recognize it as your modified version of main_menu.php).
+
Open that file, and scroll all the way to the bottom. You'll see this line...
 +
<pre># Add stuff to final html
 +
eval(hook("pgm-realtime_builder.php:add-to-final-html"));</pre>
  
==Modify source file==
+
That's what a hook looks like in the Soholaunch source code. This is where your file will be included. The text inside the hook() function call (pgm-realtime_builder.php:add-to-final-html) is the hook id that you need for your plugin's install_manifest.php file.
No pull up the file in your trusty code editor.
+
  
Do a ctrl+f (find) on "Basic Features Group", and you should get to a line that looks something like...
+
==Create your include file==
<pre>
+
In your ''hello-world'' folder, create a file called ''hello-world.php'' (note: actual filename doesn't matter). This file will contain add a javascript alert to the ''$template_footer'' variable's contents. The ''$template_footer'' variable contains all of the website html from the page content downward (so all content that gets swapped-in for #content#, as well as the template html that follows #content# in the template file).
<td class="fgroup_title"><? echo lang("Basic Features Group"); ?></td>
+
</pre>
+
  
Modify this line so it looks like this:
+
Contents of hello-world.php...
<pre>
+
<pre><?php
<td class="fgroup_title"><? echo lang("Basic Features Group"); ?> - Hello World</td>
+
$template_footer .= '<script>alert("Hello, World.");</script>';
</pre>
+
?></pre>
 
+
Save the file.
+
  
 
==Create an install_manifest.php for your plugin==
 
==Create an install_manifest.php for your plugin==
Still in your code editor, create a new blank document (i.e. ctrl + n) and save to your HELLO_WORLD folder as "install_manifest.php".  
+
The ''install_manifest.php'' is the configuration file for your plugin. Every Soholaunch plugin has an ''install_manifest.php''. This file is read by Soholaunch when the user installs the plugin. It tells Soholaunch how to display your plugin (title, author, etc), and where to hook its files into.
  
install_manifest.php is the file that Pro Edition reads to know what to do when it attempts to install your plugin. All plugins must have a valid install_manifest.php in their folder.
+
There are two types of content in any given ''install_manifest.php'':
 
+
There are two types of content in any given install_manifest.php:
+
 
#'''Information''' - plugin title, author, etc
 
#'''Information''' - plugin title, author, etc
 
#'''Instructions''' - "hook me in here, here, and here"
 
#'''Instructions''' - "hook me in here, here, and here"
  
===Include basic descriptive info about your plugin===
+
Here's what our install_manifest.php is going to look like...
Let's start with the information part. Copy-paste the following lines into your new (and completely empty at this point) install_manifest.php file...
+
<pre><?php
<pre>
+
# This should match your plugin's folder name
# PLUGIN INFO
+
$plugin_folder = "hello-world";
$plugin_folder = "HELLO_WORLD";
+
$plugin_title = "Hello World";
+
$plugin_version = "1.0";
+
$plugin_author = "John Smith";
+
$plugin_homepage = "http://example.com";
+
  
# Description text
+
# These are just for display to the user, you can define them however you see fit (html allowed)
$plugin_description = "Adds '- Hello World!' next to the 'Basic Features Group' on the main menu.";
+
$plugin_title = "Hello World";
</pre>
+
$plugin_version = "2.0";
 +
$plugin_author = "Soholaunch.com, Inc.";
 +
$plugin_homepage = "http://example.com";
 +
$plugin_description = "Adds drag and drop 'Hello World' item to the Page Editor";
  
===Additional (optional) stuff you can also include===
+
# This creates a link on the admin panel to the script specified (helloworld_settings.php)
 +
$plugin_options_link = "helloworld_settings.php";
  
====Custom icon image for your plugin====
+
# This creates a button & description on the admin panel to the script specified (helloworld_settings.php)
 +
$data['enabled_button_link'] = "helloworld_settings.php";
 +
$data['button_caption_text'] = "Hello World Settings";
 +
hook_special("main_menu_button", $data);
 +
 
 +
/* Include my hello-world.php file at *this* location (specified by hook id found in the Soholaunch source code) */
 +
hook_attach("hello-world.php", "pgm-realtime_builder.php:add-to-final-html");
 +
?></pre>
 +
 
 +
====Optional: Plugin icon====
 
If you'd like your plugin to have it's own icon displayed next to it's name in the Plugin Manager (instead of the default puzzle piece graphic), include the image file in your plugin folder, and add a line like this to your install_manifest.php...
 
If you'd like your plugin to have it's own icon displayed next to it's name in the Plugin Manager (instead of the default puzzle piece graphic), include the image file in your plugin folder, and add a line like this to your install_manifest.php...
 
  $plugin_icon = "my_plugin_icon.gif"
 
  $plugin_icon = "my_plugin_icon.gif"
  
===Tell Pro Edition how to plug-in your plugin===
 
This is the part where you tell Pro Edition how and where to plug-in your plugin (heh). So our specific task at the moment is to tell Pro Edition (through our install manifest) to add our "- Hello World" change to the main menu.
 
  
Add this line to your install_manifest.php file...
+
====Optional: Plugin Options Link====
<pre>
+
This adds a link to your plugin's settings page. The .php file should be inside your plugin directory.
hook_overwrite("sohoadmin/program/main_menu.php", "main_menu-helloworld.php");
+
$plugin_options_link="my_plugins_settings.php";
</pre>
+
The [[hook_overwrite]] function tells Pro Edition to use your version of main_menu.php (main_menu-helloworld.php) instead of the regular one.
+
  
===Completed install manifest===
+
==Recap: This is what your plugin folder should look like==
Here's what your completed install_manifest.php file should look like...
+
At this point your plugin is essentially done.
<pre>
+
<?
+
# PLUGIN INFO
+
$plugin_folder = "HELLO_WORLD";
+
$plugin_title = "Hello World";
+
$plugin_version = "1.0";
+
$plugin_author = "John Smith";
+
$plugin_homepage = "http://example.com";
+
 
+
# Description text
+
$plugin_description = "Adds '- Hello World!' next to the 'Basic Features Group' on the main menu.";
+
 
+
# Replace main_menu.php with my custom-modified version
+
hook_overwrite("sohoadmin/program/main_menu.php", "main_menu-helloworld.php");
+
?>
+
</pre>
+
 
+
==Zip your plugin folder==
+
At this point your plugin is essentially done.  
+
  
 
Your plugin folder should look like this now...
 
Your plugin folder should look like this now...
  
HELLO_WORLD/
+
<pre>hello-world/
*install_manifest.php
+
install_manifest.php
*main_menu-helloworld.php
+
main_menu-helloworld.php</pre>
 
+
Using winzip, winrar, or other simliar archive app, zip-up your HELLO_WORLD folder. So for example if you've got zip options on your right-click menu in Windows, you'd right-click on your HELLO_WORLD folder and click "Add to archive...".
+
 
+
For purposes of example, name your .zip file hello_world_plugin-v1.zip
+
 
+
==Good to go!==
+
Your plugin is finished and ready to rock. Log-in to Pro Edition and upload/install your hello_world_plugin-v1.zip via the Plugin Manager.
+
 
+
Then check out the main menu.
+
  
 +
Using winzip, winrar, or other similar archive app, zip-up your ''hello-world'' folder (the folder itself, not just the contents). In Windows, you'd right-click on the ''hello-world'' folder and click "Add to archive..."
  
==Notes/Afterwards==
+
For purposes of example, name your .zip file *hello-world.zip*
*Considering that we just wanted to add a line of text, using the [[Hook_overwrite|hook_overwrite]] method to replace the entire main_menu.php file with our own copy was more than a little excessive. Once you get comfortable with the basics, you'll be using [[hook_replace]] for this kind of thing. It's also usually better to use [[hook_replace]] over hook_overwrite because it tends to be ''much'' more forward-compatible and software update-friendly.
+
  
===sample_module.php===
+
==You're ready==
If you're going to create a management module for your plugin, a great place to start is by making a copy of the following file (added in v4.9 r36)...
+
Your plugin is finished and ready to rock. Log-in to ''/sohoadmin'' and upload/install your hello-world.zip via the Plugin Manager.
'''sohoadmin/program/modules/sample_module.php'''
+
  
With this file you already have the basic structure of a Soholaunch feature module. A quick way to start building your module is to make a copy of this file, rename it as (i.e.) mymodule.php, then stick a link to sohoadmin/program/modules/mymodule.php somewhere on the Main Menu (by hacking sohoadmin/program/main_menu.php) so you can access it as you're developing it. Just don't run Software Updates while you're working on it via this method though or you'll lose your main menu hack.
+
Then view your website, and you should see the "Hello, World" javascript alert.
  
 
[[Category:Plugins]]
 
[[Category:Plugins]]

Latest revision as of 11:39, 4 December 2013

Contents

Introduction

This tutorial will walk you through the creation of a basic plugin that opens a javascript alert box with the text "Hello World" in it on every page of your website (annoying, I know, but at least you'll know it's working).

Download the example plugin

You'll need...

  1. A website with Soholaunch (Pro or Ultra) installed on it.
  2. Your favorite code editor (for php)
  3. Comfort editing basic php code
  4. Some comfort with Soholaunch's file structure will help, but is not essential.
  5. FTP access to your website

Create a folder for your plugin

Create a folder on your computer called hello-world. All of your plugin's files will go in this folder.

Find the hook you want to attach your custom file to

Open Your FTP client and log-in to your test site. For this example, we're going to add code to your soho-created website's html. The file below builds the website's html...

public_html/sohoadmin/client_files/pgm-realtime_builder.php

Open that file, and scroll all the way to the bottom. You'll see this line...

# Add stuff to final html
eval(hook("pgm-realtime_builder.php:add-to-final-html"));

That's what a hook looks like in the Soholaunch source code. This is where your file will be included. The text inside the hook() function call (pgm-realtime_builder.php:add-to-final-html) is the hook id that you need for your plugin's install_manifest.php file.

Create your include file

In your hello-world folder, create a file called hello-world.php (note: actual filename doesn't matter). This file will contain add a javascript alert to the $template_footer variable's contents. The $template_footer variable contains all of the website html from the page content downward (so all content that gets swapped-in for #content#, as well as the template html that follows #content# in the template file).

Contents of hello-world.php...

<?php
$template_footer .= '<script>alert("Hello, World.");</script>';
?>

Create an install_manifest.php for your plugin

The install_manifest.php is the configuration file for your plugin. Every Soholaunch plugin has an install_manifest.php. This file is read by Soholaunch when the user installs the plugin. It tells Soholaunch how to display your plugin (title, author, etc), and where to hook its files into.

There are two types of content in any given install_manifest.php:

  1. Information - plugin title, author, etc
  2. Instructions - "hook me in here, here, and here"

Here's what our install_manifest.php is going to look like...

<?php
# This should match your plugin's folder name
$plugin_folder 		= "hello-world";

# These are just for display to the user, you can define them however you see fit (html allowed)
$plugin_title 		= "Hello World";
$plugin_version 	= "2.0";
$plugin_author 		= "Soholaunch.com, Inc.";
$plugin_homepage 	= "http://example.com";
$plugin_description 	= "Adds drag and drop 'Hello World' item to the Page Editor";

# This creates a link on the admin panel to the script specified (helloworld_settings.php)
$plugin_options_link = "helloworld_settings.php";

# This creates a button & description on the admin panel to the script specified (helloworld_settings.php)
$data['enabled_button_link'] = "helloworld_settings.php";
$data['button_caption_text'] = "Hello World Settings";
hook_special("main_menu_button", $data);

/* Include my hello-world.php file at *this* location (specified by hook id found in the Soholaunch source code) */
hook_attach("hello-world.php", "pgm-realtime_builder.php:add-to-final-html");
?>

Optional: Plugin icon

If you'd like your plugin to have it's own icon displayed next to it's name in the Plugin Manager (instead of the default puzzle piece graphic), include the image file in your plugin folder, and add a line like this to your install_manifest.php...

$plugin_icon = "my_plugin_icon.gif"


Optional: Plugin Options Link

This adds a link to your plugin's settings page. The .php file should be inside your plugin directory. $plugin_options_link="my_plugins_settings.php";

Recap: This is what your plugin folder should look like

At this point your plugin is essentially done.

Your plugin folder should look like this now...

hello-world/
 install_manifest.php
 main_menu-helloworld.php

Using winzip, winrar, or other similar archive app, zip-up your hello-world folder (the folder itself, not just the contents). In Windows, you'd right-click on the hello-world folder and click "Add to archive..."

For purposes of example, name your .zip file *hello-world.zip*

You're ready

Your plugin is finished and ready to rock. Log-in to /sohoadmin and upload/install your hello-world.zip via the Plugin Manager.

Then view your website, and you should see the "Hello, World" javascript alert.

Personal tools