<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.phpgedview.net/en/index.php?action=history&amp;feed=atom&amp;title=Creating_a_Module</id>
	<title>Creating a Module - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.phpgedview.net/en/index.php?action=history&amp;feed=atom&amp;title=Creating_a_Module"/>
	<link rel="alternate" type="text/html" href="https://wiki.phpgedview.net/en/index.php?title=Creating_a_Module&amp;action=history"/>
	<updated>2026-05-15T14:20:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.phpgedview.net/en/index.php?title=Creating_a_Module&amp;diff=11701&amp;oldid=prev</id>
		<title>Nigelo: /* /modules/your_module.php */</title>
		<link rel="alternate" type="text/html" href="https://wiki.phpgedview.net/en/index.php?title=Creating_a_Module&amp;diff=11701&amp;oldid=prev"/>
		<updated>2009-10-15T22:17:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;/modules/your_module.php&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Modules File Structure ==&lt;br /&gt;
&lt;br /&gt;
 modules (dir)&lt;br /&gt;
 |&lt;br /&gt;
 +--your_module (dir)&lt;br /&gt;
 |  |&lt;br /&gt;
 |  +--languages (dir)&lt;br /&gt;
 |  |  +--ym_lang.en.php&lt;br /&gt;
 |  |&lt;br /&gt;
 |  +--images (dir)&lt;br /&gt;
 |  |  +--icon.gif&lt;br /&gt;
 |  |&lt;br /&gt;
 |  +--your_module.php&lt;br /&gt;
 |  +--menu.php&lt;br /&gt;
 |  +--ym_privacy.php&lt;br /&gt;
 |  +--ym_functions.php&lt;br /&gt;
 |&lt;br /&gt;
 +--your_module.php&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== /modules/your_module.php ===&lt;br /&gt;
Copy the following code into your file and save it:&lt;br /&gt;
&lt;br /&gt;
 ;&amp;lt;?php exit; ?&amp;gt;&lt;br /&gt;
 [Module]&lt;br /&gt;
 type = PGV_MOD_OO&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, this will tell PGV that your module is a PGV module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== /modules/your_module/menu.php ===&lt;br /&gt;
Replace instances of your_module with your module's name and ym with the initials for your module&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
 //-- security check, only allow access from module.php. Include this code in each of your module files&lt;br /&gt;
 if (strstr($_SERVER[&amp;quot;SCRIPT_NAME&amp;quot;],&amp;quot;menu.php&amp;quot;)) {&lt;br /&gt;
    print &amp;quot;Now, why would you want to do that.  You're not hacking are you?&amp;quot;;&lt;br /&gt;
    exit;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 class your_module_ModuleMenu {&lt;br /&gt;
    /**  &lt;br /&gt;
      * get the Your Module menu&lt;br /&gt;
      * @return Menu 	the menu item&lt;br /&gt;
      */&lt;br /&gt;
   function &amp;amp;getMenu() {&lt;br /&gt;
       global $TEXT_DIRECTION, $PGV_IMAGE_DIR, $PGV_IMAGES, $GEDCOM, $pgv_lang;&lt;br /&gt;
       global $PRIV_USER, $PRIV_PUBLIC;&lt;br /&gt;
 &lt;br /&gt;
       include('ym_privacy.php');&lt;br /&gt;
 &lt;br /&gt;
       if (!file_exists(&amp;quot;modules/your_module.php&amp;quot;)) return null;&lt;br /&gt;
       if ($PRIV_USER&amp;lt;getUserAccessLevel()) return null;  &lt;br /&gt;
 &lt;br /&gt;
       if (!file_exists('modules/your_module/languages/ym_lang.en.php')) return null;&lt;br /&gt;
 &lt;br /&gt;
       require_once 'modules/your_module/languages/ym_lang.en.php';&lt;br /&gt;
       if ($TEXT_DIRECTION==&amp;quot;rtl&amp;quot;) $ff=&amp;quot;_rtl&amp;quot;; else $ff=&amp;quot;&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
       //-- main menu item - this uses the icon as the Welcome Page menu&lt;br /&gt;
       $menu = new Menu($pgv_lang[&amp;quot;your_module&amp;quot;], &amp;quot;module.php?mod=your_module&amp;quot;, &amp;quot;down&amp;quot;);&lt;br /&gt;
       if (!empty($PGV_IMAGES[&amp;quot;gedcom&amp;quot;][&amp;quot;large&amp;quot;]))&lt;br /&gt;
       $menu-&amp;gt;addIcon($PGV_IMAGE_DIR.&amp;quot;/&amp;quot;.$PGV_IMAGES[&amp;quot;gedcom&amp;quot;][&amp;quot;large&amp;quot;]);&lt;br /&gt;
       $menu-&amp;gt;addClass(&amp;quot;menuitem$ff&amp;quot;, &amp;quot;menuitem_hover$ff&amp;quot;, &amp;quot;submenu$ff&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
       //'First Task' ddl menu item //this is the first sub menu option&lt;br /&gt;
       if (getUserAccessLevel(getUserName())&amp;lt;= $SHOW_FIRST_OPTION)//set $SHOW_FIRST_OPTION is set in ym_privacy.php&lt;br /&gt;
        {&lt;br /&gt;
            $submenu= new Menu($pgv_lang[&amp;quot;first_option&amp;quot;], &amp;quot;module.php?mod=your_module&amp;amp;amp;action=firstop&amp;quot;);&lt;br /&gt;
            $submenu-&amp;gt;addIcon('modules/your_module/images/icon.gif');&lt;br /&gt;
            $submenu-&amp;gt;addClass(&amp;quot;submenuitem$ff&amp;quot;, &amp;quot;submenuitem_hover$ff&amp;quot;);&lt;br /&gt;
            $menu-&amp;gt;addSubmenu($submenu);&lt;br /&gt;
         }&lt;br /&gt;
           //Additional sub menu options can be added by repeating the code above&lt;br /&gt;
           &lt;br /&gt;
          return $menu;&lt;br /&gt;
         }&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Category links...DO NOT DELETE --&amp;gt;&lt;br /&gt;
[[Category:Developers Guide]]&lt;br /&gt;
[[Category:phpGedView]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Créer un module]]&lt;/div&gt;</summary>
		<author><name>Nigelo</name></author>
		
	</entry>
</feed>