<?php /** * AgileBill - Open Billing Software * * This body of work is free software; you can redistribute it and/or * modify it under the terms of the Open AgileBill License * License as published at http://www.agileco.com/agilebill/license1-4.txt * * For questions, help, comments, discussion, etc., please join the * Agileco community forums at http://forum.agileco.com/ * * @link http://www.agileco.com/ * @copyright 2004-2008 Agileco, LLC. * @license http://www.agileco.com/agilebill/license1-4.txt * @author Tony Landis <tony@agileco.com> * @package AgileBill * @version 1.4.93 */ # create the main block function dev_block_main($VAR) { $ret = ' <table width="500" border="0" cellspacing="0" cellpadding="0" class="table_background"> <tr> <td> <table width="500" border="0" cellspacing="1" cellpadding="0" align="center"> <tr> <td class="table_heading"> <center> {translate module='.$VAR['module'].'} menu {/translate} </center> </td> </tr> <tr> <td class="row1"> <table width="100%" border="0" cellpadding="5" class="row1"> <tr> <td>{translate module='.$VAR['module'].'}help_file{/translate}</td> </tr> </table> </td> </tr> </table> </td> </tr> </table> '; return $ret; } ####################################################### ## create the add block ### ####################################################### function dev_block_add($VAR) { # define the field types: $field_type['text_small'] = '<input type="text" name="' . $VAR['module'] . '_%%field%%" value="{$VAR.' . $VAR['module'] . '_%%field%%}" {if $' . $VAR['module'] . '_%%field%% == true}class="form_field_error"{/if} size="5">'; $field_type['text_medium'] ='<input type="text" name="' . $VAR['module'] . '_%%field%%" value="{$VAR.' . $VAR['module'] . '_%%field%%}" {if $' . $VAR['module'] . '_%%field%% == true}class="form_field_error"{/if}>'; $field_type['text_large'] = '<textarea name="' . $VAR['module'] . '_%%field%%" cols="40" rows="5" {if $' . $VAR['module'] . '_%%field%% == true}class="form_field_error"{/if}>{$VAR.' . $VAR['module'] . '_%%field%%}</textarea>'; $field_type['menu'] = '{ $list->menu("", "' . $VAR['module'] . '_%%field%%", "%%table%%", "name", $VAR.' . $VAR['module'] . '_%%field%%, "form_menu") }'; $field_type['account_menu'] = '{ $list->popup("' . $VAR['module'] . '_add", "' . $VAR['module'] . '_%%field%%", $VAR.' . $VAR['module'] . '_%%field%%, "account_admin", "account", "first_name,middle_name,last_name", "form_field", "") }'; $field_type['date'] = '{ $list->calender_add("' . $VAR['module'] . '_%%field%%", $VAR.' . $VAR['module'] . '_%%field%%, "form_field") }'; $field_type['date_time'] = '{$list->date_time("")} <input type="hidden" name="' . $VAR['module'] . '_%%field%%" value="{$smarty.now}">'; $field_type['date_now'] = '{$list->date_time("")} <input type="hidden" name="' . $VAR['module'] . '_%%field%%" value="{$smarty.now}">'; $field_type['bool'] = '{ $list->bool("' . $VAR['module'] . '_%%field%%", $VAR.' . $VAR['module'] . '_%%field%%, "form_menu") }'; $ret = ' <!-- Display the form validation --> {if $form_validation} { $block->display("core:alert_fields") } {/if} <!-- Display the form to collect the input values --> <form id="' . $VAR['module'] . '_add" name="' . $VAR['module'] . '_add" method="post" action=""> {$COOKIE_FORM} <table width="500" border="0" cellspacing="0" cellpadding="0" class="table_background"> <tr> <td> <table width="100%" border="0" cellspacing="1" cellpadding="0"> <tr valign="top"> <td width="65%" class="table_heading"> <center> {translate module=' . $VAR['module'] . '}title_add{/translate} </center> </td> </tr> <tr valign="top"> <td width="65%" class="row1"> <table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1"> '; #loop through the fields for($i=0; $i < count($VAR["f"]); $i++) { $field = $VAR["f"]["$i"]; $type = $VAR["field"]["$field"]["field_type"]; $this_content = eregi_replace('%%field%%', $field, $field_type["$type"]); if($type == 'menu') $this_content = eregi_replace('%%table%%', $VAR["field"]["$field"]["asso_table"], $this_content); if(isset($VAR["field"]["$field"]["page_add"]["include"])) { $ret .= ' <tr valign="top"> <td width="35%"> {translate module=' . $VAR['module'] . '} field_' . $field . ' {/translate}</td> <td width="65%"> ' . $this_content . ' </td> </tr> '; } } $ret .= ' <tr valign="top"> <td width="35%"></td> <td width="65%"> <input type="submit" name="Submit" value="{translate}submit{/translate}" class="form_button"> <input type="hidden" name="_page" value="' . $VAR['module'] . ':view"> <input type="hidden" name="_page_current" value="' . $VAR['module'] . ':add"> <input type="hidden" name="do[]" value="' . $VAR['module'] . ':add"> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </form> '; return $ret; } ####################################################### ## GENERATE THE INSTALL DATA (SQL) ### ####################################################### function dev_install_xml_data($module,$module_id) { $rt = ' '; # open the backup file: $xml = '<?xml version="1.0" encoding="ISO-8859-1" ?'.''.'>'; $xml .= $rt . '<install>' . $rt; # generate the sql select statement: $db = &DB(); $dba = &DB(); $sql = 'SELECT * FROM '.AGILE_DB_PREFIX.''.$module.' WHERE site_id = '. $dba->qstr(DEFAULT_SITE) . ' ORDER BY id'; $resulta = $dba->Execute($sql); # check the results if($resulta != false && $resulta->RecordCount() > 0) { # get the export data: $resultarr = $resulta->GetArray(); # loop through each field for ($ii=0; $ii<count($resultarr); $ii++) { $xml .= ' <'.$module.'>' . $rt; while (list ($field,$value) = each ($resultarr[$ii])) { if($value != '' && !is_integer($field)) { if( ereg('<', $value) || ereg('>', $value) || ereg('&', $value) || ereg('\'', $value) || ereg('"', $value) ) { $value = ereg_replace('&', '&', $value); $data = ' <'.$field.'><![CDATA[' . $value . ']]></'. $field . '>'; $xml .= $data . '' . $rt; } else { $data = ' <'.$field.'>' . $value . '</'. $field . '>'; $xml .= $data . '' . $rt; } } } $xml .= ' </'.$module.'>' . $rt; } #################################################################### # backup the autoincrement count: #################################################################### $idmodule = $module . '_id'; $sql = 'SELECT id FROM '.AGILE_DB_PREFIX.''.$idmodule; $resulti = $db->Execute($sql); if($resulti!=false && @$resulti->RecordCount() != 0) { # get the export data: $resultarr = $resulti->GetArray(); # loop through each field for ($ii=0; $ii<count($resultarr); $ii++) { $xml .= ' <'.$idmodule.'>' . $rt; while (list ($field,$value) = each ($resultarr[$ii])) { if($value != '' && gettype($field) != 'integer') { $data = ' <'.$field.'>' . htmlspecialchars($value,0,"ISO8859-1") . '</'. $field . '>'; $xml .= $data . '' . $rt; } } $xml .= ' </'.$idmodule.'>' . $rt; } } } else { return false; } $xml .= '</install>'; return $xml; } ####################################################### ## GENERATE THE INSTALL XML ### ####################################################### function dev_install_xml_gen($module,$module_id) { # get the module parent $db = &DB(); $sql = "SELECT * FROM ".AGILE_DB_PREFIX."module WHERE site_id = ".$db->qstr(DEFAULT_SITE)." AND id = ".$db->qstr($module_id); $mr = $db->Execute($sql); if( $mr->fields["parent_id"] == "" || $mr->fields["parent_id"] == "0" || $mr->fields["parent_id"] == $module_id ) { $parent = $module; } else { $db = &DB(); $sql = "SELECT * FROM ".AGILE_DB_PREFIX."module WHERE site_id = ".$db->qstr(DEFAULT_SITE)." AND id = ".$db->qstr($mr->fields["parent_id"]); $mrp = $db->Execute($sql); $parent = $mrp->fields["name"]; } # get the current settings: $t = "\t"; $n = "\n"; $C_xml = new CORE_xml; $inst = $C_xml->xml_to_array(PATH_MODULES . '' . $module . '/' . $module . '_install.xml'); # Get any dependancy $dependancy = @$inst['install']['module_properties']['dependancy']; # Get any sub_modules $sub_modules = @$inst['install']['module_properties']['sub_modules']; ################################################################# # regenerate the install file: $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>{$n}"; $install_xml = "<install>". $n . "{$t}<module_properties>".$n . "{$t}{$t}<name>{$module}</name>".$n . "{$t}{$t}<parent>{$parent}</parent>".$n . "{$t}{$t}<notes><![CDATA[{$mr->fields["notes"]}]]></notes>{$n}"; if(!empty($mr->fields["menu_display"])) $install_xml .= "{$t}{$t}<menu_display>1</menu_display>{$n}"; if(!empty($dependancy)) $install_xml .= "{$t}{$t}<dependancy>{$dependancy}</dependancy>{$n}"; if(!empty($sub_modules)) $install_xml .= "{$t}{$t}<sub_modules>{$sub_modules}</sub_modules>{$n}"; $install_xml .= "{$t}</module_properties>" . $n . "{$t}<sql_inserts>" . $n . "{$t}{$t}<module_method>" . $n; # loop through the methods $db = &DB(); $sql = "SELECT * FROM ".AGILE_DB_PREFIX."module_method WHERE site_id = ".$db->qstr(DEFAULT_SITE)." AND module_id = ".$db->qstr($module_id); $result=$db->Execute($sql); while(!$result->EOF) { $method = $result->fields['name']; $display = $result->fields['menu_display']; $notes = $result->fields['notes']; $page = trim(ereg_replace('&', '&', $result->fields['page'] ) ); $install_xml .= "{$t}{$t}{$t}<{$method}>".$n. "{$t}{$t}{$t}{$t}<name>{$method}</name>". $n; if(!empty($notes)) $install_xml .= "{$t}{$t}{$t}{$t}<notes><![CDATA[{$notes}]]></notes>" . $n; if(!empty($page)) $install_xml .= "{$t}{$t}{$t}{$t}<page><![CDATA[{$page}]]></page>" . $n; if(!empty($display)) $install_xml .= "{$t}{$t}{$t}{$t}<menu_display>1</menu_display>" . $n; $install_xml .= "{$t}{$t}{$t}</{$method}>" . $n; $result->MoveNext(); } $install_xml .= "{$t}{$t}</module_method>".$n. "{$t}</sql_inserts>".$n. "</install>"; return $install_xml; } ####################################################### ## create the view block ### ####################################################### function dev_block_view($VAR) { # define the field types: $field_type['text_small'] = '<input type="text" name="' . $VAR['module'] . '_%%field%%" value="{$'.$VAR['module'].'.%%field%%}" size="5">'; $field_type['text_medium'] = '<input type="text" name="' . $VAR['module'] . '_%%field%%" value="{$'.$VAR['module'].'.%%field%%}" size="32">'; $field_type['text_large'] = '<textarea name="' . $VAR['module'] . '_%%field%%" cols="40" rows="5">{$'.$VAR['module'].'.%%field%%}</textarea>'; $field_type['menu'] = '{ $list->menu("", "' . $VAR['module'] . '_%%field%%", "%%table%%", "name", $'.$VAR['module'].'.%%field%%, "form_menu") }'; $field_type['account_menu'] = '{ $list->popup("' . $VAR['module'] . '_view", "' . $VAR['module'] . '_%%field%%", $'.$VAR['module'].'.%%field%%, "account_admin", "account", "first_name,middle_name,last_name", "form_field", $' . $VAR['module'] .'.id) }'; $field_type['date'] = '{ $list->calender_view("' . $VAR['module'] . '_%%field%%", $'.$VAR['module'].'.%%field%%, "form_field", $' . $VAR['module'] .'.id) }'; $field_type['date_time'] = '{ $list->calender_view("' . $VAR['module'] . '_%%field%%", $'.$VAR['module'].'.%%field%%, "form_field", $' . $VAR['module'] .'.id) }'; $field_type['date_now'] = '{$list->date_time("")} <input type="hidden" name="' . $VAR['module'] . '_%%field%%" value="{$smarty.now}">'; $field_type['bool'] = '{ $list->bool("' . $VAR['module'] . '_%%field%%", $'.$VAR['module'].'.%%field%%, "form_menu") }'; $ret = ' { $method->exe("' . $VAR["module"] . '","view") } { if ($method->result == FALSE) } { $block->display("core:method_error") } {else} {literal} <!-- Define the update delete function --> <script language="JavaScript"> <!-- START var module = \'' . $VAR["module"] . '\'; var locations = \'{/literal}{$VAR.module_id}{literal}\'; if (locations != "") { refresh(0,\'#\'+locations) } // Mass update, view, and delete controller function delete_record(id,ids) { temp = window.confirm("{/literal}{translate}alert_delete{/translate}{literal}"); if(temp == false) return; var replace_id = id + ","; ids = ids.replace(replace_id, \'\'); if(ids == \'\') { var url = \'?_page=core:search&module=\' + module + \'&do[]=\' + module + \':delete&delete_id=\' + id + COOKIE_URL; window.location = url; return; } else { var page = \'view&id=\' +ids; } var doit = \'delete\'; var url = \'?_page=\'+ module +\':\'+ page +\'&do[]=\' + module + \':\' + doit + \'&delete_id=\' + id + COOKIE_URL; window.location = url; } // END --> </script> {/literal} <!-- Loop through each record --> {foreach from=$' . $VAR["module"] . ' item=' . $VAR["module"] . '} <a name="{$' . $VAR["module"] . '.id}"></a> <!-- Display the field validation --> {if $form_validation} { $block->display("core:alert_fields") } {/if} <!-- Display each record --> <form name="' . $VAR['module'] . '_view" method="post" action=""> {$COOKIE_FORM} <table width="500" border="0" cellspacing="0" cellpadding="0" class="table_background"> <tr> <td> <table width="100%" border="0" cellspacing="1" cellpadding="0"> <tr valign="top"> <td width="65%" class="table_heading"> <center> {translate module=' . $VAR['module'] . '}title_view{/translate} </center> </td> </tr> <tr valign="top"> <td width="65%" class="row1"> <table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1"> '; #loop through the fields for($i=0; $i < count($VAR["f"]); $i++) { $field = $VAR["f"]["$i"]; $type = $VAR["field"]["$field"]["field_type"]; $this_content = eregi_replace('%%field%%', $field, $field_type["$type"]); if($type == 'menu') $this_content = eregi_replace('%%table%%', $VAR["field"]["$field"]["asso_table"], $this_content); if(isset($VAR["field"]["$field"]["page_view"]["include"])) { # is field changeable if(!isset($VAR["field"]["$field"]["page_view"]["type"])) { $this_content = $VAR['module'] . '.' . $field; if($type == 'bool') { $this_content = '{if $' . $this_content . ' == "1"}{translate}true{/translate}{else}{translate}false{/translate}{/if}'; } else if ($type == 'date') { $this_content = '{$list->date($' . $this_content . ')}'; } else if ($type == 'date_time' || 'date_now') { $this_content = '{$list->date_time($' . $this_content . ')}'; } else { $this_content = '{$' . $this_content .'}'; } } $ret .= ' <tr valign="top"> <td width="35%"> {translate module=' . $VAR['module'] . '} field_' . $field . ' {/translate}</td> <td width="65%"> ' . $this_content . ' </td> </tr> '; } } $ret .= ' <tr class="row1" valign="middle" align="left"> <td width="35%"></td> <td width="65%"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <input type="submit" name="Submit" value="{translate}submit{/translate}" class="form_button"> </td> <td align="right"> <input type="button" name="delete" value="{translate}delete{/translate}" class="form_button" onClick="delete_record(\'{$' . $VAR["module"] . '.id}\',\'{$VAR.id}\');"> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <input type="hidden" name="_page" value="' . $VAR["module"] . ':view"> <input type="hidden" name="' . $VAR["module"] . '_id" value="{$' . $VAR["module"] . '.id}"> <input type="hidden" name="do[]" value="' . $VAR["module"] . ':update"> <input type="hidden" name="id" value="{$VAR.id}"> </form> {/foreach} {/if} '; return $ret; } ####################################################### ## create the search_form block ### ####################################################### function dev_block_search_form($VAR) { # define the field types: $field_type['text_small'] = '<input type="text" name="' . $VAR['module'] . '_%%field%%" value="{$VAR.' . $VAR['module'] . '_%%field%%}" {if $' . $VAR['module'] . '_%%field%% == true}class="form_field_error"{/if} size="5"> {translate}search_partial{/translate}'; $field_type['text_medium'] = '<input type="text" name="' . $VAR['module'] . '_%%field%%" value="{$VAR.' . $VAR['module'] . '_%%field%%}" {if $' . $VAR['module'] . '_%%field%% == true}class="form_field_error"{/if}> {translate}search_partial{/translate}'; $field_type['text_large'] = '<input type="text" name="' . $VAR['module'] . '_%%field%%" value="{$VAR.' . $VAR['module'] . '_%%field%%}" {if $' . $VAR['module'] . '_%%field%% == true}class="form_field_error"{/if}> {translate}search_partial{/translate}'; $field_type['menu'] = '{ $list->menu("", "' . $VAR['module'] . '_%%field%%", "%%table%%", "name", "all", "form_menu") }'; $field_type['account_menu'] = '{ $list->popup("' . $VAR['module'] . '_search", "' . $VAR['module'] . '_%%field%%", $VAR.' . $VAR['module'] . '_%%field%%, "account_admin", "account", "first_name,middle_name,last_name", "form_field", "") }'; $field_type['date'] = '{ $list->calender_search("' . $VAR['module'] . '_%%field%%", $VAR.' . $VAR['module'] . '_%%field%%, "form_field", "") }'; $field_type['date_time'] = '{ $list->calender_search("' . $VAR['module'] . '_%%field%%", $VAR.' . $VAR['module'] . '_%%field%%, "form_field", "") }'; $field_type['date_now'] = '{ $list->calender_search("' . $VAR['module'] . '_%%field%%", $VAR.' . $VAR['module'] . '_%%field%%, "form_field", "") }'; $field_type['bool'] = '{ $list->bool("' . $VAR['module'] . '_%%field%%", "all", "form_menu") }'; $ret = ' { $method->exe("' . $VAR["module"] . '","search_form") } { if ($method->result == FALSE) } { $block->display("core:method_error") } {else} <form name="' . $VAR["module"] .'_search" method="post" action=""> {$COOKIE_FORM} <table width="500" border="0" cellspacing="0" cellpadding="0" class="table_background"> <tr> <td> <table width="100%" border="0" cellspacing="1" cellpadding="0"> <tr valign="top"> <td width="65%" class="table_heading"> <center> {translate module=' . $VAR['module'] . '}title_search{/translate} </center> </td> </tr> <tr valign="top"> <td width="65%" class="row1"> <table width="100%" border="0" cellspacing="3" cellpadding="1" class="row1"> '; #loop through the fields for($i=0; $i < count($VAR["f"]); $i++) { $field = $VAR["f"]["$i"]; $type = $VAR["field"]["$field"]["field_type"]; $this_content = eregi_replace('%%field%%', $field, $field_type["$type"]); if($type == 'menu') $this_content = eregi_replace('%%table%%', $VAR["field"]["$field"]["asso_table"], $this_content); if(isset($VAR["field"]["$field"]["page_search_form"]["include"])) { $ret .= ' <tr valign="top"> <td width="35%"> {translate module=' . $VAR['module'] . '} field_' . $field . ' {/translate}</td> <td width="65%"> ' . $this_content . ' </td> </tr> '; } } $ret .= ' <!-- Define the results per page --> <tr class="row1" valign="top"> <td width="35%">{translate}search_results_per{/translate}</td> <td width="65%"> <input type="text" name="limit" size="5" value="{$' . $VAR["module"] . '_limit}"> </td> </tr> <!-- Define the order by field per page --> <tr class="row1" valign="top"> <td width="35%">{translate}search_order_by{/translate}</td> <td width="65%"> <select class="form_menu" name="order_by"> {foreach from=$' . $VAR["module"] . ' item=record} <option value="{$record.field}">{$record.translate}</option> {/foreach} </select> </td> </tr> <tr class="row1" valign="top"> <td width="35%"></td> <td width="65%"> <input type="submit" name="Submit" value="{translate}search{/translate}" class="form_button"> <input type="hidden" name="_page" value="core:search"> <input type="hidden" name="_escape" value="Y"> <input type="hidden" name="module" value="' . $VAR["module"] . '"> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </form> { $block->display("core:saved_searches") } { $block->display("core:recent_searches") } {/if} '; return $ret; } ####################################################### ## create the search_show block ### ####################################################### function dev_block_search_show($VAR) { $ret = ' {$method->exe("' . $VAR["module"] . '","search_show")} {if ($method->result == FALSE)} {$block->display("core:method_error")} {else} {if $results == 1} {translate results=$results}search_result_count{/translate} {else} {translate results=$results}search_results_count{/translate} {/if} <BR> {literal} <script language="JavaScript"> <!-- START var module = \'' . $VAR["module"] . '\'; {/literal} {if $VAR._print == TRUE} var p = \'&_escape=y&_print=y\'; {else} var p = \'\'; {/if}{literal} var IMAGE = \'{/literal}{$NONSSL_IMAGE}{literal}\'; var order = \'{/literal}{$order}{literal}\'; var sort1 = \'{/literal}{$sort}{literal}\'; var search_id = \'{/literal}{$search_id}{literal}\'; var page = \'{/literal}{$page}{literal}\'; var pages = \'{/literal}{$pages}{literal}\'; var results = \'{/literal}{$results}{literal}\'; var limit = \'{/literal}{$limit}{literal}\'; record_arr = new Array ({/literal}{$limit}{literal}); var i = 0; // END --> </script> <SCRIPT SRC="themes/{/literal}{$THEME_NAME}{literal}/search.js"></SCRIPT> {/literal} <!-- SHOW THE SEARCH NAVIGATION MENU --> <center><script language="JavaScript">document.write(search_nav_top());</script></center> <!-- BEGIN THE RESULTS CONTENT AREA --> <div id="search_results" onKeyPress="key_handler(event);"> <table id="main1" width="100%" border="0" cellspacing="0" cellpadding="0" class="table_background"> <form id="form1" name="form1" method="post" action=""> <tr> <td> <table id="main2" width="100%" border="0" cellspacing="1" cellpadding="2"> <!-- DISPLAY THE SEARCH HEADING --> <tr valign="middle" align="center" class="table_heading"> <td width="5%" class="table_heading"> </td> '; $total = 0; #count the fields for($i=0; $i < count($VAR["f"]); $i++) { $field = $VAR["f"]["$i"]; if(isset($VAR["field"]["$field"]["page_search_show"]["include"])) { $total++; } } @$width = 95 / $total; #loop through the fields for($i=0; $i < count($VAR["f"]); $i++) { $field = $VAR["f"]["$i"]; $type = $VAR["field"]["$field"]["field_type"]; $this_content = '$record.' . $field; if(isset($VAR["field"]["$field"]["page_search_show"]["include"])) { $ret.= ' <td width="'.$width.'%" class="table_heading"> {literal} <script language="JavaScript"> document.write(search_heading(\'{/literal}{translate module=' . $VAR["module"] . '}field_'.$field.'{/translate}{literal}\',\''.$field.'\')); </script> {/literal} </td> '; } } $ret.= ' <!-- LOOP THROUGH EACH RECORD --> {foreach from=$' . $VAR["module"] . ' item=record} <tr id="row{$record.id}" onClick="row_sel(\'{$record.id}\',1);" onDblClick="window.location=\'?_page=' . $VAR["module"] . ':view&id={$record.id},{$COOKIE_URL}\';" onMouseOver="row_mouseover(\'{$record.id}\', \'row_mouse_over_select\', \'row_mouse_over\');" onMouseOut="row_mouseout(\'{$record.id}\', \'{$record._C}\', \'row_select\');" class="{$record._C}"> <td align="center" width="5%"> <input type="checkbox" name="record{$record.id}" value="{$record.id}" onClick="row_sel(\'{$record.id}\',1,\'{$record._C}\');"> </td> '; #loop through the fields for($i=0; $i < count($VAR["f"]); $i++) { $field = $VAR["f"]["$i"]; $type = $VAR["field"]["$field"]["field_type"]; $this_content = '$record.' . $field; if(isset($VAR["field"]["$field"]["page_search_show"]["include"])) { if($type == 'bool') { $this_content = '{if ' . $this_content . ' == "1"}{translate}true{/translate}{else}{translate}false{/translate}{/if}'; } else if ($type == 'date') { $this_content = '{$list->date(' . $this_content . ')}'; } else if ($type == 'date_time' || $type == 'date_now') { $this_content = '{$list->date_time(' . $this_content . ')}'; } else { $this_content = '{' . $this_content .'}'; } $ret .= ' <td> ' . $this_content . '</td> '; } } $ret .= ' </tr> {literal} <script language="JavaScript">row_sel(\'{/literal}{$record.id}{literal}\', 0, \'{/literal}{$record._C}{literal}\'); record_arr[i] = \'{/literal}{$record.id}{literal}\'; i++; </script> {/literal} {/foreach} <!-- END OF RESULT LOOP --> </table> </td> </tr> </form> </table> {if $VAR._print != TRUE}<br> <center> <input type="submit" name="Submit" value="{translate}view_edit{/translate}" onClick="mass_do(\'\', module+\':view\', limit, module);" class="form_button"> <input type="submit" name="Submit" value="{translate}delete{/translate}" onClick="mass_do(\'delete\', module+\':search_show&search_id={$search_id}&page={$page}&order_by={$order}&{$sort}{$COOKIE_URL}\', limit, module);" class="form_button"> <input type="submit" name="Submit" value="{translate}select_all{/translate}" onClick="all_select(record_arr);" class="form_button"> <input type="submit" name="Submit" value="{translate}deselect_all{/translate}" onClick="all_deselect(record_arr);" class="form_button"> <input type="submit" name="Submit" value="{translate}range_select{/translate}" onClick="all_range_select(record_arr,limit);" class="form_button"> <br> '; if(isset($VAR['module_export_bar'])) { $ret .= '<br> <table width="100%" border="0" cellspacing="0" cellpadding="5" align="center"> <tr> <td valign="middle" align="center"> <a href="#" onClick="NewWindow(\'ExportWin\',\'toolbar=no,status=no,width=300,height=300\',\'?_page=core:export_search&module=' . $VAR["module"] . '&_escape=&search_id={$search_id}&page={$page}&order={$order}&sort={$sort}{$COOKIE_URL}\');"><img src="themes/{$THEME_NAME}/images//icons/exp_32.gif" alt="{translate}search_export_image{/translate}" border="0"></a> <a href="?_page=' . $VAR["module"] . ':search_show&_print=true&_escape=true&order_by={$order}&search_id={$search_id}&limit={$limit}&page={$page}{$COOKIE_URL}" target="_blank"><img src="themes/{$THEME_NAME}/images//icons/print_32.gif" border="0" alt="{translate}search_print_image{/translate}"></a>'; //<a href="#" onClick="NewWindow(\'SaveSearchWin\',\'toolbar=no,status=no,width=200,height=150\',\'?_page=core:save_search&_escape=&search_id={$search_id}&module=' . $VAR["module"] . ':search_save{$COOKIE_URL}\');"><img src="themes/{$THEME_NAME}/images/icons/savas_32.gif" border="0" alt="{translate}search_save_image{/translate}"></a> $ret .= ' <a href="?_page=' . $VAR["module"] . ':search_form{$COOKIE_URL}"><img src="themes/{$THEME_NAME}/images/icons/srch_32.gif" border="0" alt="{translate}search_new_image{/translate}"></a> <a href="?_page=' . $VAR["module"] . ':add{$COOKIE_URL}"><img src="themes/{$THEME_NAME}/images/icons/add_32.gif" border="0" alt="{translate module=' . $VAR["module"] . '}title_add{/translate}"></a> </td> </tr> </table> '; } $ret.= '</center> {/if} {/if} </div> '; return $ret; } ####################################################### ## GENERATE THE LANGUAGE PACKS ### ####################################################### function dev_language_xml($VAR) { $xml = '<?xml version="1.0" encoding="ISO-8859-1" ?'.''.'>'; $language_xml = $xml . ' <translate> <name>' . $VAR["lang"]["name"] . '</name> <!-- define the block title translations -->'; # loop through the methods for($i=0; $i < count($VAR["m"]); $i++) { $method = $VAR["m"]["$i"]; $language_xml .= ' <title_' . $method . '>'; $title = $VAR["method"]["$method"]["block_name"]; $language_xml .= $title . '</title_' . $method . '>'; } $language_xml .=' <!-- define the menu lable translations --> <menu>' . $VAR["lang"]["menu"] . '</menu>'; # loop through the methods for($i=0; $i < count($VAR["m"]); $i++) { $method = $VAR["m"]["$i"]; $language_xml .= ' <menu_' . $method . '>'; $menu = $VAR["method"]["$method"]["menu_name"]; $language_xml .= $menu . '</menu_' . $method . '>'; } $language_xml .=' <!-- define the field translations -->'; # loop through the fields for($i=0; $i < count($VAR["f"]); $i++) { $field = $VAR["f"]["$i"]; $language_xml .=' <field_' . $field . '>' . $VAR["field"]["$field"]["name"] . '</field_' . $field . '>'; } $pat_nl = ' '; $language_xml .=' </translate>'; return $language_xml; } ####################################################### ## GENERATE THE CONSTRUCT PHP ### ####################################################### function dev_construct_php($VAR) { $construct_php = '<?php class ' . $VAR["module"] . ' { # Open the constructor for this mod function ' . $VAR["module"] . '() { # name of this module: $this->module = "' . $VAR["module"] . '"; # location of the construct XML file: $this->xml_construct = PATH_MODULES . "" . $this->module . "/" . $this->module . "_construct.xml"; # open the construct file for parsing $C_xml = new CORE_xml; $construct = $C_xml->xml_to_array($this->xml_construct); $this->method = $construct["construct"]["method"]; $this->trigger = $construct["construct"]["trigger"]; $this->field = $construct["construct"]["field"]; $this->table = $construct["construct"]["table"]; $this->module = $construct["construct"]["module"]; $this->cache = $construct["construct"]["cache"]; $this->order_by = $construct["construct"]["order_by"]; $this->limit = $construct["construct"]["limit"]; } '; if (isset($VAR["method"]["add"])) { $construct_php .= ' ############################## ## ADD ## ############################## function add($VAR) { $type = "add"; $this->method["$type"] = split(",", $this->method["$type"]); $db = new CORE_database; $db->add($VAR, $this, $type); } ' ; } if (isset($VAR["method"]["view"])) { $construct_php .= ' ############################## ## VIEW ## ############################## function view($VAR) { $type = "view"; $this->method["$type"] = split(",", $this->method["$type"]); $db = new CORE_database; $db->view($VAR, $this, $type); } ' ; } if (isset($VAR["method"]["update"])) { $construct_php .= ' ############################## ## UPDATE ## ############################## function update($VAR) { $type = "update"; $this->method["$type"] = split(",", $this->method["$type"]); $db = new CORE_database; $db->update($VAR, $this, $type); } ' ; } if (isset($VAR["method"]["delete"])) { $construct_php .= ' ############################## ## DELETE ## ############################## function delete($VAR) { $db = new CORE_database; $db->mass_delete($VAR, $this, ""); } ' ; } if (isset($VAR["method"]["search"])) { $construct_php .= ' ############################## ## SEARCH FORM ## ############################## function search_form($VAR) { $type = "search"; $this->method["$type"] = split(",", $this->method["$type"]); $db = new CORE_database; $db->search_form($VAR, $this, $type); } ' ; } if (isset($VAR["method"]["search"])) { $construct_php .= ' ############################## ## SEARCH ## ############################## function search($VAR) { $type = "search"; $this->method["$type"] = split(",", $this->method["$type"]); $db = new CORE_database; $db->search($VAR, $this, $type); } ' ; } if (isset($VAR["method"]["search"])) { $construct_php .= ' ############################## ## SEARCH SHOW ## ############################## function search_show($VAR) { $type = "search"; $this->method["$type"] = split(",", $this->method["$type"]); $db = new CORE_database; $db->search_show($VAR, $this, $type); } ' ; } if (isset($VAR["method"]["search_save"])) { $construct_php .= ' ############################## ## SEARCH SAVE ## ############################## function search_save($VAR) { if ( isset($VAR["search_id"]) && isset($VAR["save_name"]) ) { if ( $VAR["search_id"] != "" && $VAR["save_name"] != "" ) { # create the record include_once(PATH_CORE . "search.inc.php"); $search = new CORE_search; $search->save($VAR["search_id"], $this->table, $VAR["save_name"]); } } } ' ; } if (isset($VAR["method"]["search_export"])) { $construct_php .= ' ############################## ## SEARCH EXPORT ## ############################## function search_export($VAR) { # require the export class require_once (PATH_CORE . "export.inc.php"); # Call the correct export function for inline browser display, download, email, or web save. if($VAR["format"] == "excel") { $type = "export_excel"; $this->method["$type"] = split(",", $this->method["$type"]); $export = new CORE_export; $export->search_excel($VAR, $this, $type); } else if ($VAR["format"] == "pdf") { $type = "export_pdf"; $this->method["$type"] = split(",", $this->method["$type"]); $export = new CORE_export; $export->search_pdf($VAR, $this, $type); } else if ($VAR["format"] == "xml") { $type = "export_xml"; $this->method["$type"] = split(",", $this->method["$type"]); $export = new CORE_export; $export->search_xml($VAR, $this, $type); } else if ($VAR["format"] == "csv") { $type = "export_csv"; $this->method["$type"] = split(",", $this->method["$type"]); $export = new CORE_export; $export->search_csv($VAR, $this, $type); } else if ($VAR["format"] == "tab") { $type = "export_tab"; $this->method["$type"] = split(",", $this->method["$type"]); $export = new CORE_export; $export->search_tab($VAR, $this, $type); } } '; } $construct_php .= ' } ?' . '' . '>'; return $construct_php; } ####################################################### ## GENERATE THE CONSTRUCT XML ### ####################################################### function dev_construct_xml($VAR) { $xml = '<?xml version="1.0" encoding="ISO-8859-1" ?'.''.'>'; $construct_xml = $xml . ' <construct> <!-- define the module name --> <module>' . $VAR["module"] . '</module> <!-- define the module table name --> <table>' . $VAR["table"] . '</table> <!-- define the module dependancy(s) --> <dependancy>' . $VAR["dependancy"] . '</dependancy> <!-- define the DB cache in seconds --> <cache>' . $VAR["cache"] . '</cache> <!-- define the default order_by field for SQL queries --> <order_by>' . $VAR["order_by"] . '</order_by> <!-- define the methods --> <limit>' . $VAR["limit"] . '</limit> <!-- define the fields --> <field>'; # loop through the fields for($i=0; $i < count($VAR["f"]); $i++) { $field = $VAR["f"]["$i"]; $construct_xml .= ' <' . $field . '>'; if (isset($VAR["field"]["$field"]["type"])) $construct_xml .= ' <type>'. $VAR["field"]["$field"]["type"] .'</type>'; if (isset($VAR["field"]["$field"]["min_len"])) $construct_xml .= ' <min_len>'. $VAR["field"]["$field"]["min_len"] .'</min_len>'; if (isset($VAR["field"]["$field"]["max_len"])) $construct_xml .= ' <max_len>'. $VAR["field"]["$field"]["max_len"] .'</max_len>'; if (isset($VAR["field"]["$field"]["def_len"])) $construct_xml .= ' <def_len>'. $VAR["field"]["$field"]["def_len"] .'</def_len>'; if (isset($VAR["field"]["$field"]["pdf_width"])) $construct_xml .= ' <pdf_width>'. $VAR["field"]["$field"]["pdf_width"] .'</pdf_width>'; if (isset($VAR["field"]["$field"]["default"])) $construct_xml .= ' <default>'. $VAR["field"]["$field"]["default"] .'</default>'; if (isset($VAR["field"]["$field"]["asso_table"])) $construct_xml .= ' <asso_table>'. $VAR["field"]["$field"]["asso_table"] .'</asso_table>'; if (isset($VAR["field"]["$field"]["asso_field"])) $construct_xml .= ' <asso_field>'. $VAR["field"]["$field"]["asso_field"] .'</asso_field>'; if (isset($VAR["field"]["$field"]["validate"])) $construct_xml .= ' <validate>'. $VAR["field"]["$field"]["validate"] .'</validate>'; if (isset($VAR["field"]["$field"]["convert"])) $construct_xml .= ' <convert>'. $VAR["field"]["$field"]["convert"] .'</convert>'; if (isset($VAR["field"]["$field"]["unique"])) $construct_xml .= ' <unique>'. $VAR["field"]["$field"]["unique"] .'</unique>'; if (isset($VAR["field"]["$field"]["index"])) $construct_xml .= ' <index>'. $VAR["field"]["$field"]["index"] .'</index>'; $construct_xml .= ' </' . $field . '>'; } $construct_xml .= ' </field> <!-- define all the methods for this class, and the fields they have access to, if applicable. --> <method>'; # loop through the methods for($i=0; $i < count($VAR["m"]); $i++) { $method = $VAR["m"]["$i"]; $construct_xml .= ' <' . $method . '>id'; $arr = $VAR["method"]["$method"]; $ii = 0; while (list($key, $value) = each($arr)) { if($value == 1) { if (($ii != 0) && ($key != 'method_display')) { $construct_xml .= ','; $construct_xml .= $key; } } $ii++; } $construct_xml .= '</' . $method . '>'; } $construct_xml .= ' </method> <!-- define the method triggers --> <trigger>'; # loop through the methods for($i=0; $i < count($VAR["m"]); $i++) { $method = $VAR["m"]["$i"]; $construct_xml .= ' <' . $method . '>'; $arr = $VAR["method"]["$method"]; $ii = 0; if(isset($VAR["method"]["$method"]["trigger_success"])) if($VAR["method"]["$method"]["trigger_success"] != '') { $construct_xml .= ' <success>' . $VAR["method"]["$method"]["trigger_success"] . '</success>'; } if(isset($VAR["method"]["$method"]["trigger_failure"])) if($VAR["method"]["$method"]["trigger_failure"] != '') { $construct_xml .= ' <failure>' . $VAR["method"]["$method"]["trigger_failure"] . '</failure>'; } $construct_xml .= ' </' . $method . '>'; } $construct_xml .= ' </trigger> </construct>'; return $construct_xml; } ####################################################### ## GENERATE THE INSTALL XML ### ####################################################### function dev_install_xml($VAR) { $xml = '<?xml version="1.0" encoding="ISO-8859-1" ?'.''.'>'; $install_xml = $xml . ' <install> <!-- Define the main module properties --> <module_properties> <name>' . $VAR["module"] . '</name> <parent>' . $VAR["module_parent"] . '</parent> <notes>' . $VAR["module_notes"] . '</notes> <menu_display>' . $VAR["module_menu_display"] . '</menu_display> <dependancy>' . $VAR["dependancy"] . '</dependancy> <sub_modules>'. $VAR["module_sub_module"] .'</sub_modules> </module_properties>'; /* for($i=0; $i < count($VAR["group_type"]); $i++) { if($VAR["group_type"]["$i"] != '') { $install_xml .=' <' . $VAR["group_type"]["$i"] . '>1</' . $VAR["group_type"]["$i"] . '>'; } else { $install_xml .=' <' . $VAR["group_type"]["$i"] . '>0</' . $VAR["group_type"]["$i"] . '>'; } } */ $install_xml .= ' <!-- Define any SQL inserts for this module --> <sql_inserts> <module_method>'; # loop through the methods for($i=0; $i < count($VAR["m"]); $i++) { $method = $VAR["m"]["$i"]; if(isset($VAR["method"]["$method"]["method_notes"])) { $notes = $VAR["method"]["$method"]["method_notes"]; } else { $notes = ''; } if(isset($VAR["method"]["$method"]["method_page"])) { $page = $VAR["method"]["$method"]["method_page"]; } else { $page = ''; } if(isset($VAR["method"]["$method"]["method_display"])) { $display = $VAR["method"]["$method"]["method_display"]; } else { $display = ''; } $page = eregi_replace('&','&', $page); $install_xml .= ' <' . $method . '> <module_id>%%module_id%%</module_id> <name>' . $method . '</name> <notes>' . $notes . '</notes> <page>' . $page . '</page> <menu_display>' . $display . '</menu_display> </' . $method . '>'; if($method == 'search') { $install_xml .= ' <search_form> <module_id>%%module_id%%</module_id> <name>search_form</name> <notes>Allow users to view the search form</notes> </search_form> <search_show> <module_id>%%module_id%%</module_id> <name>search_show</name> <notes>Allow users to view the search results</notes> </search_show> '; } } $install_xml .= ' </module_method> </sql_inserts> </install>'; return $install_xml; } ?>