easymod-cvs Mailing List for EasyMOD (Page 4)
Status: Beta
Brought to you by:
wgeric
You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
(16) |
May
(36) |
Jun
(53) |
Jul
(21) |
Aug
|
Sep
(10) |
Oct
(4) |
Nov
(69) |
Dec
(57) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(8) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
(5) |
Oct
(3) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
(7) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
(12) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Eric F. <wg...@us...> - 2005-12-04 03:12:39
|
Update of /cvsroot/easymod/easymod/install/em_files/templates/subSilver/images In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29556/install/em_files/templates/subSilver/images Added Files: easymod.gif em_install.gif em_moreinfo.gif em_preview.gif em_status_ready.gif em_status_style.gif em_uninstall.gif em_update.gif index.htm Log Message: First commit to SourceForge. Enjoy! --- NEW FILE: easymod.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: em_status_style.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: em_preview.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: em_install.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: em_uninstall.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: em_update.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: em_status_ready.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: em_moreinfo.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: index.htm --- <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> </body> </html> |
Update of /cvsroot/easymod/easymod/install/em_files/templates/subSilver/admin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29556/install/em_files/templates/subSilver/admin Added Files: em_check_install.tpl em_check_sql.tpl em_check_uninstall.tpl em_check_update.tpl em_general.tpl em_header.tpl em_login.tpl em_logs.tpl em_manage_history.tpl em_manage_install.tpl em_mod_info.tpl em_mod_info_rows.tpl em_post_process.tpl em_preview.tpl index.htm Log Message: First commit to SourceForge. Enjoy! --- NEW FILE: em_check_update.tpl --- --- NEW FILE: em_mod_info.tpl --- <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thHead" colspan="6">{L_MOD_INFO}</th> </tr> {MOD_INFO_ROWS} </table> <table width="100%"> <tr> <td align="center" height="40"><b><span class="gen"><a href="javascript:window.close();">{L_CLOSE_WINDOW}</a></span></b></td> </tr> </table> --- NEW FILE: em_check_uninstall.tpl --- --- NEW FILE: em_login.tpl --- <div align="center"><h1>{L_EM_WELCOME}</h1></div> <hr width="50%"/> <div align="center"> <form method="post" action="{S_LOGIN_ACTION}"><table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline"> <tr> <th class="thHead" align="center">{LOGIN_MESSAGE}</th> </tr> <tr> <td class="row1" align="center"><input class="post" type="password" name="em_pass" value="" size="25" maxlength="255" /> <input type="submit" name="submit" value="{L_LOGIN}" class="mainoption" /></td> </tr> </table></form> </div> <hr width="50%"/> --- NEW FILE: em_preview.tpl --- --- NEW FILE: em_check_sql.tpl --- <h1>{L_TITLE}</h1> <p class="gen">{L_DESCRIPTION}</p> <form action="{S_ACTION}" method="post"> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thHead" colspan="2">{L_SQL_INFO}</th> </tr> <tr> <td class="row1">Skipping Sql</td> <tr> <td class="catbottom" colspan="2">{S_HIDDEN_FIELDS}<input type="submit" value="{L_CONTINUE}" class="mainoption" /> </table> </form> --- NEW FILE: em_post_process.tpl --- <h1>{L_TITLE}</h1> <p class="gen">{L_DESCRIPTION}</p> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thHead" colspan="2">{L_MOD_INFO}</th> </tr> {MOD_INFO_ROWS} <tr> </table> <br /> <!-- BEGIN switch_diy --> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thHead">{L_DIY_INSTRUCTIONS}</th> </tr> <tr> <td class="row1"><span class="gen">{L_DIY_INSTRUCTIONS_DESC}<br /><br />{switch_diy.DIY_INSTRUCTIONS}</span></td> </tr> </table> <br /> <!-- END switch_diy --> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thCornerL" width="50%">{L_FROM}</th> <th class="thCornerR" width="50%">{L_TO}</th> </tr> <tr> <td class="cat" colspan="2"><span class="cattitle">{L_BACKUP_FILES}</span></td> </tr> <!-- BEGIN backup_row --> <tr> <td class="row1"><span class="gen">{backup_row.FROM}</span></td> <td class="row2"><span class="gen">{backup_row.TO}</span></td> </tr> <!-- END backup_row --> </table> <br /> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thCornerL" width="50%">{L_FROM}</th> <th class="thCornerR" width="50%">{L_TO}</th> </tr> <tr> <td class="cat" colspan="2"><span class="cattitle">{L_COPY_FILES}</span></td> </tr> <!-- BEGIN copy_row --> <tr> <td class="row1"><span class="gen">{copy_row.FROM}</span></td> <td class="row2"><span class="gen">{copy_row.TO}</span></td> </tr> <!-- END copy_row --> </table> <h1>{L_INSTALL_SUCCESSFUL}</h1> --- NEW FILE: em_check_install.tpl --- <h1>{L_TITLE}</h1> <p class="gen">{L_DESCRIPTION}</p> <form action="{S_ACTION}" method="post"> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thHead" colspan="2">{L_MOD_INFO}</th> </tr> {MOD_INFO_ROWS} <tr> <td class="catbottom" colspan="2">{S_HIDDEN_FIELDS}<input type="submit" value="{L_CONTINUE}" class="mainoption" /> </table> </form> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thHead">{L_COMMANDS_UNPROCESSED}</th> </tr> <!-- BEGIN unprocessed --> <tr> <td class="{unprocessed.ROW_CLASS}"><div class="gen">{unprocessed.LINE}</div></td> </tr> <!-- END unprocessed --> </table> <br /> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline"> <tr> <th class="thHead">{L_COMMANDS_PROCESSED}</th> </tr> <!-- BEGIN processed --> <tr> <td class="{processed.ROW_CLASS}"><div class="gen">{processed.LINE}</div></td> </tr> <!-- END processed --> </table> <br /> --- NEW FILE: em_mod_info_rows.tpl --- <!-- BEGIN mod_info --> <tr> <td class="{mod_info.ROW_CLASS}" align="left" valign="middle"><b><span class="gen">{mod_info.INFO_NAME}:</span></b> </td> <td class="{mod_info.ROW_CLASS}" align="left" valign="middle"><div class="gen">{mod_info.INFO_DATA}</div></td> </tr> <!-- END mod_info --> --- NEW FILE: em_logs.tpl --- <h1>{L_EASYMOD} - {L_LOGS}</h1> <p>{L_LOGS_EXPLAIN}</p> <form name="frmlogs" method="post" action="{S_LOGS_ACTION}"> <table width="100%" cellspacing="2" cellpadding="2" border="0" align="center"> <tr> <td align="left" valign="top" nowrap="nowrap"><span class="nav">{PAGE_NUMBER}</span></td> <td align="right" valign="top" nowrap="nowrap"><span class="nav">{PAGINATION}</span></td> </tr> </table> <table class="forumline" width="100%" cellpadding="4" cellspacing="1" border="0"> <tr> <td class="cat" colspan="5" height="28" align="center">{L_DISPLAY_LOG}: {S_LIMIT_DAYS} {L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR} <input class="liteoption" type="submit" value="{L_GO}" name="sort" /></td> </tr> <tr> <th width="15%" height="25" nowrap="nowrap">{L_USERNAME}</th> <th width="15%" nowrap="nowrap">{L_IP}</th> <th width="20%" nowrap="nowrap">{L_TIME}</th> <th width="45%" nowrap="nowrap">{L_ACTION}</th> <th nowrap="nowrap">{L_MARK}</th> </tr> <!-- BEGIN logrow --> <tr> <td class="{logrow.ROW_CLASS}" nowrap="nowrap"><a href="{logrow.U_PROFILE}" target="_blank">{logrow.USERNAME}</a></td> <td class="{logrow.ROW_CLASS}" align="center" nowrap="nowrap"><a href="{logrow.U_IP_INFO}" target="_blank">{logrow.IP}</a></td> <td class="{logrow.ROW_CLASS}" align="center" nowrap="nowrap">{logrow.DATE}</td> <td class="{logrow.ROW_CLASS}">{logrow.MESSAGE}</td> <td class="{logrow.ROW_CLASS}" align="center" nowrap="nowrap"><input type="checkbox" name="mark[]" value="{logrow.ID}" /></td> </tr> <!-- END logrow --> <!-- BEGIN no_events --> <tr> <td class="row1" colspan="5" align="center" nowrap="nowrap">{L_NO_EVENTS}</td> </tr> <!-- END no_events --> <tr> <td class="cat" colspan="5" height="28"> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td> <input class="liteoption" type="submit" name="delmarked" value="{L_DELETE_MARKED}" /> <input class="liteoption" type="submit" name="delall" value="{L_DELETE_ALL}" /> </td> <td align="right"> <span class="nav"><b><a href="javascript:marklist('frmlogs', true);this.blur();">{L_MARK_ALL}</a> :: <a href="javascript:marklist('frmlogs', false);this.blur();">{L_UNMARK_ALL}</a></b> </span> </td> </tr> </table> </td> </tr> </table> <table width="100%" cellspacing="2" cellpadding="2" border="0" align="center"> <tr> <td align="left" valign="top" nowrap="nowrap"><span class="nav">{PAGE_NUMBER}</span></td> <td align="right" valign="top" nowrap="nowrap"><span class="nav">{PAGINATION}</span></td> </tr> </table> </form> <script language="javascript" type="text/javascript"><!-- function marklist(match, status) { len = eval('document.' + match + '.length'); for( i = 0; i < len; i++ ) { eval('document.' + match + '.elements[i].checked = ' + status); } } //--></script> --- NEW FILE: em_general.tpl --- <h1>{L_EASYMOD} - {L_GENERAL}</h1> <p>{L_GENERAL_EXPLAIN}</p> <form action="{S_PASSWORD_ACTION}" method="post"><table width="99%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline"> <tr> <th class="thHead" colspan="2">{L_PASSWORD_SETTINGS}</th> </tr> <tr> <td class="row1" width="60%">{L_PASSWORD}</td> <td class="row2" width="40%"><input class="post" type="password" maxlength="255" size="30" name="pass" value="" /></td> </tr> <tr> <td class="row1" width="60%">{L_PASSWORD_CONFIRM}</td> <td class="row2" width="40%"><input class="post" type="password" maxlength="255" size="30" name="pass_confirm" value="" /></td> </tr> <tr> <td class="catBottom" colspan="2" align="center"><input type="submit" name="submit" value="{L_SUBMIT}" class="mainoption" /> <input type="reset" value="{L_RESET}" class="liteoption" /> </td> </tr> </table></form> <form action="{S_SETTINGS_ACTION}" method="post"><table width="99%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline"> <tr> <th class="thHead" colspan="2">{L_GENERAL_SETTINGS}</th> </tr> <tr> <td class="row1" width="60%">{L_MOD_DIR}<br /><span class="gensmall">{L_MOD_DIR_EXPLAIN}</span></td> <td class="row2" width="40%"><input class="post" type="text" maxlength="255" size="30" name="em_mod_dir" value="{EM_MOD_DIR}" /></td> </tr> <tr> <td class="row1">{L_METHOD}</td> <td class="row1"><span class="gen">{EM_METHODS} <a href="javascript:help_popup('write_move_methods');">Help</a></span></td> </tr> <tr> <td class="row1">{L_TEMP_PATH}</td> <td class="row1"><span class="gen"><input type="text" name="em_tmp_path" value="{EM_TEMP_PATH}" class="post" /> <a href="javascript:help_popup('tmp_path');">Help</a></span></td> </tr> <tr> <td class="row1">{L_FILE_PERM}</td> <td class="row1"><span class="gen"><input type="text" name="em_file_perms" value="{EM_FILE_PERM}" class="post" /> <a href="javascript:help_popup('file_perms');">Help</a></span></td> </tr> <tr> <td class="row1">{L_DIR_PERM}</td> <td class="row1"><span class="gen"><input type="text" name="em_dir_perms" value="{EM_DIR_PERM}" class="post" /> <a href="javascript:help_popup('dir_perms');">Help</a></span></td> </tr> <tr> <td class="cat" colspan="2" align="center"><span class="cattitle">{L_FTP_SETTINGS}</span></td> </tr> <tr> <td class="row1">{L_FTP_USER}</td> <td class="row1"><span class="gen"><input type="text" name="em_ftp_username" class="post" value="{EM_FTP_USER}" /></span></td> </tr> <tr> <td class="row1">{L_FTP_PASS}</td> <td class="row1"><span class="gen"><input type="password" name="em_ftp_password" class="post" /></span></td> </tr> <tr> <td class="row1">{L_FTP_HOST}</td> <td class="row1"><span class="gen"><input type="text" name="em_ftp_host" class="post" value="{EM_FTP_HOST}" /></span></td> </tr> <tr> <td class="row1">{L_FTP_PATH}</td> <td class="row1"><span class="gen"><input type="text" name="em_ftp_root_path" class="post" value="{EM_FTP_PATH}" /></span></td> </tr> <tr> <td class="row1">{L_FTP_PORT}</td> <td class="row1"><span class="gen"><input type="text" name="em_ftp_port" value="{EM_FTP_PORT}" class="post" /></span></td> </tr> <tr> <td class="row1">{L_FTP_TIME}</td> <td class="row1"><span class="gen"><input type="text" name="em_ftp_timeout" value="{EM_FTP_TIME}" class="post" /></span></td> </tr> <tr> <td class="catBottom" colspan="2" align="center"><input type="submit" name="submit" value="{L_SUBMIT}" class="mainoption" /> <input type="reset" value="{L_RESET}" class="liteoption" /> </td> </tr> </table></form> --- NEW FILE: em_header.tpl --- <table width="100%" cellpadding="3" cellspacing="1" border="0"> <tr> <td><img src="../templates/subSilver/images/easymod.gif" width="200" height="91" alt="{L_EASYMOD}" /></td> <td align="center" width="100%"> <h1>{L_EASYMOD}</h1> <span class="gen">{VERSION}</span> </td> </tr> </table> <br clear="all" /> --- NEW FILE: em_manage_history.tpl --- <script type="text/javascript"><!-- function WindowPopup(URL) { var day = new Date(); var id = day.getTime(); eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=1,scrollbars=1,location=1,statusbar=0,menubar=0,resizable=1,width=500,height=500');"); } //--></script> <h1>{L_EASYMOD} - {L_MANAGE}</h1> <p>{L_MANAGE_EXPLAIN}</p> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center"> <tr> <th class="thHead" colspan="7">{L_INSTALLED_MODS}</th> </tr> <tr> <td width="50" class="catLeft" align="center" valign="middle"><span class="gen"><b>{L_MOD_STATUS}</b></span></td> <td width="150" class="cat" align="center" valign="middle"><span class="gen"><b>{L_MOD_NAME}</b></span></td> <td class="cat" align="center" valign="middle"><span class="gen"><b>{L_MOD_DESCRIPTION}</b></span></td> <td width="90" class="cat" align="center" valign="middle"><span class="gen"><b>{L_MOD_VERSION}</b></span></td> <td width="65" class="cat" align="center" valign="middle"><span class="gen"><b>{L_MORE_INFO}</b></span></td> <td width="65" class="cat" align="center" valign="middle"><span class="gen"><b>{L_UPDATE}</b></span></td> <td width="65" class="catRight" align="center" valign="middle"><span class="gen"><b>{L_UNINSTALL}</b></span></td> </tr> <!-- BEGIN installed_mods --> <tr> <td class="{installed_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen"><img src="../{installed_mods.MOD_STATUS_IMG}" title="{installed_mods.MOD_STATUS_LANG}" alt="{installed_mods.MOD_STATUS_LANG}" border="0" /></span></td> <td class="{installed_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen">{installed_mods.MOD_NAME}</span></td> <td height="40" class="{installed_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen">{installed_mods.MOD_DESC}</span></td> <td class="{installed_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen">{installed_mods.MOD_VERSION}</span></td> <td class="{installed_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen"><a href="javascript:WindowPopup('{installed_mods.S_MORE_INFO}')"><img src="../templates/subSilver/images/em_moreinfo.gif" title="{L_MORE_INFO}" alt="{L_MORE_INFO}" border="0" /></a></span></td> <td class="{installed_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen"><a href="{installed_mods.S_UPDATE}"><img src="../templates/subSilver/images/em_update.gif" title="{L_UPDATE}" alt="{L_UPDATE}" border="0" /></a></span></td> <td class="{installed_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen"><a href="{installed_mods.S_UNINSTALL}"><img src="../templates/subSilver/images/em_uninstall.gif" title="{L_UNINSTALL}" alt="{L_UNINSTALL}" border="0" /></a></span></td> </tr> <!-- END installed_mods --> <!-- BEGIN no_installed_mods --> <tr> <td class="row2" colspan="7" align="center" valign="middle"><span class="gen">{no_installed_mods.L_NO_INSTALLED_MODS}</span></td> </tr> <!-- END no_installed_mods --> <tr> <td class="catBottom" colspan="7" height="28"> </td> </tr> </table> <br/> --- NEW FILE: em_manage_install.tpl --- <script type="text/javascript"><!-- function WindowPopup(URL) { var day = new Date(); var id = day.getTime(); eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=1,scrollbars=1,location=1,statusbar=0,menubar=0,resizable=1,width=500,height=500');"); } //--></script> <h1>{L_EASYMOD} - {L_MANAGE}</h1> <p>{L_MANAGE_EXPLAIN}</p> <table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center"> <tr> <th class="thHead" colspan="7">{L_AVAILABLE_MODS}</th> </tr> <tr> <td width="150" class="catLeft" align="center" valign="middle"><span class="gen"><b>{L_MOD_NAME}</b></span></td> <td class="cat" align="center" valign="middle"><span class="gen"><b>{L_MOD_DESCRIPTION}</b></span></td> <td width="90" class="cat" align="center" valign="middle"><span class="gen"><b>{L_MOD_VERSION}</b></span></td> <td width="90" class="cat" align="center" valign="middle"><span class="gen"><b>{L_MOD_AUTHOR}</b></span></td> <td width="65" class="cat" align="center" valign="middle"><span class="gen"><b>{L_MORE_INFO}</b></span></td> <td width="65" class="cat" align="center" valign="middle"><span class="gen"><b>{L_PREVIEW}</b></span></td> <td width="65" class="catRight" align="center" valign="middle"><span class="gen"><b>{L_INSTALL}</b></span></td> </tr> <!-- BEGIN available_mods --> <tr> <td class="{available_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen">{available_mods.MOD_NAME}</span></td> <td height="40" class="{available_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen">{available_mods.MOD_DESC}</span></td> <td class="{available_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen">{available_mods.MOD_VERSION}</span></td> <td class="{available_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen">{available_mods.MOD_AUTHOR}</span></td> <td class="{available_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen"><a href="javascript:WindowPopup('{available_mods.S_MORE_INFO}')"><img src="../templates/subSilver/images/em_moreinfo.gif" title="{L_MORE_INFO}" alt="{L_MORE_INFO}" border="0" /></a></span></td> <td class="{available_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen"><a href="{available_mods.S_PREVIEW}"><img src="../templates/subSilver/images/em_preview.gif" title="{L_PREVIEW}" alt="{L_PREVIEW}" border="0" /></a></span></td> <td class="{available_mods.ROW_CLASS}" align="center" valign="middle"><span class="gen"><a href="{available_mods.S_INSTALL}"><img src="../templates/subSilver/images/em_install.gif" title="{L_INSTALL}" alt="{L_INSTALL}" border="0" /></a></span></td> </tr> <!-- END available_mods --> <!-- BEGIN no_available_mods --> <tr> <td class="row2" colspan="7" align="center" valign="middle"><span class="gen">{no_available_mods.L_NO_AVAILABLE_MODS}</span></td> </tr> <!-- END no_available_mods --> <tr> <td class="catBottom" colspan="7" height="28"> </td> </tr> </table> <br/> --- NEW FILE: index.htm --- <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> </body> </html> |
Update of /cvsroot/easymod/easymod/install/em_files/includes/em In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29556/install/em_files/includes/em Added Files: em_acp_menu.php em_actions.php em_common.php em_crypt.php em_functions.php em_functions_20x.php em_functions_30x.php em_methods_ftp.php em_methods_ftp_fsock.php em_methods_server.php em_methods_ssh2.php em_parser_text.php em_parser_xml.php em_processing.php index.htm Log Message: First commit to SourceForge. Enjoy! --- NEW FILE: em_functions_30x.php --- <?php /** * * @package EasyMOD * @version $Id: em_functions_30x.php,v 1.1 2005/12/04 03:12:30 wgeric Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU General Public License * */ /** * This file contains wrapper functions that are for 3.0.x versions of phpBB * Doing this makes it easier to have EasyMOD work on both 2.0.x and 3.0.x */ $lang = &$user->lang; $userdata = &$user->data; $board_config = &$config; function em_load_lang(&$lang) { } function em_trigger_error($msg_text = '', $msg_code = 0, $msg_title = '', $err_line = '', $err_file = '', $sql = '') { trigger_error($msg_text); } function em_auth() { // use olympus' auth system } ?> --- NEW FILE: em_actions.php --- <?php /** * * @package EasyMOD * @version $Id: em_actions.php,v 1.1 2005/12/04 03:12:30 wgeric Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** * @package EasyMOD * File actions */ class actions { var $contents; var $size_contents; var $start; var $end; var $target_contents; var $filename; var $inline_index; var $inline_start; var $inline_end; var $inline_target_contents; var $user_search; var $io; function actions($mod_io) { $this->io = $mod_io; } function copy($from_file, $to_file) { global $mod_dir; $files = array(); $filename = basename($from_file); if ( strstr($filename, '*') ) { $to_dir = dirname($to_file) . '/'; $directory = $mod_dir . dirname($from_file); if( strpos($directory, '\\') !== false ) { $directory = str_replace('\\', '/', $directory); } if( empty($directory) ) { $directory = './'; } elseif( substr($directory, -1) != '/' ) { $directory .= '/'; } if ( $filename == '*.*' || $filename == '*' ) { $max_levels = 99; } else { $max_levels = 1; } $pattern = str_replace('\*', '.*', preg_quote($filename)); $files_temp = em_find_files($directory, $pattern, $max_levels); for( $i = 0, $total = sizeof($files_temp); $i < $total; $i++ ) { $files[] = array( 'to' => str_replace($directory, $to_dir, $files_temp[$i]), 'from' => str_replace($mod_dir, '', $files_temp[$i])); } } // normal copy, nothing special about it else { $files[] = array( 'to' => $to_file, 'from' => $from_file); } return $files; } function open($filename) { $this->filename = $filename; $this->contents = open_file($this->filename); $this->contents = preg_split("/(\r|\n|\r\n)/", $this->contents, -1, PREG_SPLIT_DELIM_CAPTURE); $this->size_contents = count($this->contents); $this->start = $this->end = 0; $this->inline_index = $this->inline_start = $this->inline_end = 0; $this->target_contents = array(); $this->inline_target_contents = ''; return ( empty($this->contents) ) ? false : true; } function close() { global ${$this->io}; $this->commit_block_changes(); ${$this->io}->write_file($this->filename,implode('',$this->contents)); } function find($lines) { if ( !is_array($lines) ) { $lines = explode("\n", $lines); } $this->commit_block_changes(); $size_find = 0; // remove empty lines from $lines $temp = array(); foreach ($lines as $current_line) { $temp[] = trim($current_line); $size_find++; } $this->user_search = $lines = $temp; unset($temp); // we skip every other line because every other line is going to be some type of new line character. $search_end = $this->size_contents - 2 * $size_find; for ($line_num = $this->start;$line_num < $search_end;$line_num+=2) { $num_whitespaces = 0; $match_end = $line_num + 2*$size_find; for ($line_inum = $line_num;$line_inum < $match_end;$line_inum+=2) { $desired_line = trim($lines[($line_inum - $line_num) / 2]); $current_line = trim($this->contents[$line_inum]); // if the desired line is blank, skip it if ( empty($desired_line) ) { continue; } // if an empty line is encountered, adjust $match_end so that the empty line is, essentially, ignored if (empty($current_line) && $line_inum != $line_num) { // if adjusting $match_end would make it larger than $size_contents, then break out of both loops. if ($match_end >= $this->size_contents) { $line_num = $this->size_contents; break; } else { continue; } } // break out of this for loop if there isn't a match. $search_pattern = preg_replace('#\\\\\\{%\\\\\\:(\\d+)\\\\\\}#','(\\d+|\\{%\\:$1\\})', preg_quote($desired_line, '#')); if (!preg_match("#{$search_pattern}#", $current_line)) { break; } } // if a match has been found, break out of the loop if ($line_inum == $match_end) { break; } } // if a match hasn't been found... if ($line_num > $search_end) { return false; } $this->start = $line_num; $this->end = $line_inum; for (;$line_num<$this->end;$line_num++) { $this->target_contents[] = $this->contents[$line_num]; } return true; } function after_add($lines) { if ( !is_array($lines) ) { $lines = explode("\n", $lines); } foreach ($lines as $line) { // linux uses "\n", apples use "\r", and windows uses "\r\n" to represent new lines. of these, only "\r\n" // will be interpreted as a new line character on all systems. granted, each new line will be preceeded or // followed by an odd character, but chances are good that that character won't even be shown by the // editor. $this->target_contents[] = $line; $this->target_contents[] = "\r\n"; } return true; } function before_add($lines) { if ( !is_array($lines) ) { $lines = explode("\n", $lines); } $temp = $this->target_contents; $this->target_contents = array(); foreach ($lines as $line) { $this->target_contents[] = $line; $this->target_contents[] = "\r\n"; } foreach ($temp as $line) { $this->target_contents[] = $line; } return true; } function replace_with($lines) { if ( !is_array($lines) ) { $lines = explode("\n", $lines); } $this->target_contents = array(); foreach ($lines as $line) { $this->target_contents[] = $line; $this->target_contents[] = "\r\n"; } return true; } function increment($line) { $inc_data = array(); $line = is_array($line) ? $line[0] : $line; preg_match('#(%\:\d+)\s*([\+\-]\d+)?#',trim($line),$inc_data); $inc_data[1] = '{'.$inc_data[1].'}'; $inc_data[2] = isset($inc_data[2]) ? $inc_data[2] : 1; if (!empty($this->inline_target_contents)) { $this->inline_target_contents = $this->increment_helper($inc_data[1], $inc_data[2], $this->user_search, $this->inline_target_contents); } else { $size_target_contents = count($this->target_contents); for ($num=0;$num<$size_target_contents;$num+=2) { $this->target_contents[$num] = $this->increment_helper($inc_data[1], $inc_data[2], $this->user_search[$num/2], $this->target_contents[$num]); } } } // Increments variables in strings as appropriate. function increment_helper( $wildcard_identifier, $increment_value, $wildcard_search, $search_result ) { $parts = preg_split('#\{%\:\d+\}#',substr($wildcard_search,0,strpos($wildcard_search,$wildcard_identifier))); for ($i=0;$i<count($parts);$i++) { $parts[$i] = preg_quote($parts[$i],'#'); } $beg = preg_replace('#^(.*'.implode('\d+',$parts).').*#s','$1',$search_result,1); $aft = substr($search_result,strlen($beg)); $num = preg_replace('#^(\\d+).*#','$1',$aft); $num += $increment_value; return $beg.preg_replace('#^\\d+(.*)#',"$num$1",$aft); } function in_line_find($line) { $this->commit_inline_changes(); $this->user_search = $line = trim($line); $search_pattern = preg_replace('#\\\\\\{%\\\\\\:(\\d+)\\\\\\}#','(\\d+|\\{%\\:$1\\})', preg_quote($line, '#')); $size_target_contents = count($this->target_contents); // FINDs can have multiple lines in them. IN-LINE FINDs need to search each line in-line. for ($num=$this->inline_index;$num<$size_target_contents;$num++) { list($temp,$match) = preg_split("#($search_pattern)#", substr($this->target_contents[$num],$this->inline_end), -1, PREG_SPLIT_DELIM_CAPTURE); if (!empty($match)) { break; } $this->inline_start = $this->inline_end = 0; } if ($num > $size_target_contents) { return false; } $this->inline_index = $num; $this->inline_start = strlen($temp); $this->inline_end = $this->inline_start + strlen($match); $this->inline_target_contents = substr($this->target_contents[$num], $this->inline_start, strlen($match)); return true; } function in_line_before_add($line) { $this->inline_target_contents = $line . $this->inline_target_contents; return true; } function in_line_after_add($line) { $this->inline_target_contents .= $line; return true; } function in_line_replace_with($line) { $this->inline_target_contents = $line; return true; } function commit_inline_changes() { if (empty($this->target_contents)) { return; } $temp = substr($this->target_contents[$this->inline_index],0,$this->inline_start); $temp .= $this->inline_target_contents; $temp .= substr($this->target_contents[$this->inline_index],$this->inline_end); $this->target_contents[$this->inline_index] = $temp; } function commit_block_changes() { $this->commit_inline_changes(); $temp = array(); for ($num=0;$num<$this->start;$num++) { $temp[] = $this->contents[$num]; } $size_target = count($this->target_contents); for ($num=0;$num<$size_target;$num++) { $temp[] = $this->target_contents[$num]; } for ($num=$this->end;$num<$this->size_contents;$num++) { $temp[] = $this->contents[$num]; } $this->size_contents+=$size_target; $this->contents = $temp; $this->start+=$size_target; $this->inline_index = $this->inline_start = $this->inline_end = 0; $this->inline_target_contents = ''; $this->target_contents = array(); $this->user_search = false; } } ?> --- NEW FILE: em_parser_xml.php --- <?php /** * * @package EasyMOD_parser * @version $Id: em_parser_xml.php,v 1.1 2005/12/04 03:12:30 wgeric Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU General Public License * */ if(isset($set_parsers)) { $exts = array('xml'); return; } elseif(!class_exists('mod_parser_xml')) { /** * @package EasyMOD_parser * Parser for the XML MOD template */ class mod_parser_xml { /** * Filename of the MOD begin parsed. */ var $mod_file; var $data = array(); var $parser; var $XML; /** * Constructor * * @access public * @param string Filename */ function mod_parser_xml($mod_file) { $this->mod_file = $mod_file; } function _parse() { global $io; if(empty($io)) { $io = new_io(); } $XML = $io->open_file($this->mod_file); $this->parser = xml_parser_create(); xml_set_object($this->parser, $this); xml_set_element_handler($this->parser, "_tag_open", "_tag_closed"); xml_set_character_data_handler($this->parser, "_tag_data"); $XML = str_replace('<', '<![CDATA[<]]>', $XML); $XML = str_replace('>', '<![CDATA[>]]>', $XML); $this->XML = xml_parse($this->parser, $XML); if(!$this->XML) { die(sprintf("XML error: %s at line %d (file: {$this->mod_file})", xml_error_string(xml_get_error_code($this->parser)), xml_get_current_line_number($this->parser))); } xml_parser_free($this->parser); return $this->data; } function _tag_open($parser, $name, $attrs) { $tag = array("name" => $name, "attrs" => $attrs); array_push($this->data, $tag); } function _tag_data($parser, $tag_data) { if(trim($tag_data)) { if(isset($this->data[count($this->data)-1]['data'])) { $this->data[count($this->data)-1]['data'] .= $tag_data; } else { $this->data[count($this->data)-1]['data'] = $tag_data; } } } function _tag_closed($parser, $name) { $this->data[count($this->data)-2]['children'][$name] = $this->data[count($this->data)-1]; array_pop($this->data); } /** * Returns array of MOD header information */ function parse_header() { if(empty($this->data)) { $this->_parse($this->mod_file); } $mod_header = array(); $header_info = $this->data[0]['children']['HEADER']['children']; // Name and decription $mod_header['name'] = $header_info['TITLE']['data']; $mod_header['desc'] = $header_info['DESCRIPTION']['data']; // Version $version_info = $header_info['MOD-VERSION']['children']; $mod_header['version'] = $version_info['MAJOR']['data'] . '.' . $version_info['MINOR']['data'] . '.' . $version_info['REVISION']['data']; $mod_header['version'] = (isset($version_info['RELEASE']['data'])) ? $mod_header['version'] . $version_info['RELEASE']['data'] : $mod_header['version']; return $mod_header; } function parse_sql() { } function parse_actions() { } /** * Check the file is an install file. Return false, if it isn't */ function verify() { if(empty($this->data)) { $this->_parse($this->mod_file); } if(isset($this->data[0]['name']) && $this->data[0]['name'] == 'MOD') { return true; } return false; } } } ?> --- NEW FILE: em_methods_server.php --- <?php /** * * package EasyMOD_method * version $Id: em_methods_server.php,v 1.1 2005/12/04 03:12:30 wgeric Exp $ * copyright (c) 2005 phpBB Group * license http://opensource.org/licenses/gpl-license.php GNU Public License * */ if(isset($set_methods)) { $method_name = 'server'; $method_file = 'server'; return; } elseif(!class_exists('em_method_server')) { /** * package EasyMOD_method * Server move/write method */ class em_method_server { function init() { global $board_config; $this->tmp_path = $board_config['em_tmp_path']; $this->file_perms = 0644; $this->dir_perms = 0777; return true; } function write_file($file = '', $contents = '') { @unlink($file); $file_resource = @fopen($file, 'w'); $err = @fwrite($file_resource, $contents); @fclose($file_resource); @chmod($file, $this->file_perms); return $err; } function make_dir($dir) { global $phpbb_root_path; $dir = explode('/', $dir); $dirs = ''; for($i = 0, $total = count($dir); $i < count($dir); $i++) { $result = true; if ( $dir[$i] == '..' || $dir[$i] == '.' ) { continue; } $cur_dir = $dir[$i] . '/'; if ( !file_exists($phpbb_root_path . $dirs . $cur_dir) ) { // make the directory $result = @mkdir($phpbb_root_path . $dirs . $cur_dir); @chmod($phpbb_root_path . $dirs . $cur_dir, $this->dir_perms); } $dirs .= $cur_dir; } return $result; } function copy_file($from_loc, $to_loc) { global $phpbb_root_path; $from_loc = (( !strstr($from_loc, $phpbb_root_path) ) ? $phpbb_root_path : '') . $from_loc; $to_loc = $phpbb_root_path . str_replace($phpbb_root_path, '', $to_loc); // copy the file @unlink($to_loc); $err = @copy($from_loc, $to_loc); @chmod($to_loc, $this->file_perms); return $err; } /* * This function is used to test whether this method can be used or not */ function test(&$debug, $name = 'server') { global $phpbb_root_path, $phpEx; $debug[$name]['allowed'] = true; // check write access if ( $fout = @fopen('EM_test.txt', 'w') ) { @fwrite($fout, "EM can write!\n"); @fclose($fout); unset($fout); $debug[$name]['write'] = true; } else { $debug[$name]['write'] = false; $debug[$name]['allowed'] = false; } // check root write access if ( $fout = @fopen($phpbb_root_path . 'EM_test.txt', 'w') ) { @fwrite($fout, "EM can write!\n"); @fclose($fout); unset($fout); @unlink($phpbb_root_path . 'EM_test.txt'); $debug[$name]['write_root'] = true; } else { $debug[$name]['write_root'] = false; $debug[$name]['allowed'] = false; } // check chmod access if ( @chmod('EM_test.txt', 0777) ) { $debug[$name]['chmod'] = true; } else { $debug[$name]['chmod'] = false; $debug[$name]['allowed'] = false; } // check deleting files if ( @unlink('EM_test.txt') ) { $debug[$name]['delete'] = true; } else { $debug[$name]['delete'] = false; $debug[$name]['allowed'] = false; } // check making directories // if access to rmdir's isn't there and the file already exists, assume we have access to make directories if ( @mkdir('EM_test_dir', 0777) || file_exists('EM_test_dir') ) { $debug[$name]['mkdir'] = true; @rmdir('EM_test_dir'); } else { $debug[$name]['mkdir'] = false; $debug[$name]['allowed'] = false; } return; } function quit() { return true; } function test_connection() { echo 'No need to test anything because you have already passed the requirements if you were able to select this method'; return true; } } } // // Instinate Class // $mod_io = new em_method_server(); ?> --- NEW FILE: em_methods_ftp_fsock.php --- <?php /** * * @package EasyMOD_method * @version $Id: em_methods_ftp_fsock.php,v 1.1 2005/12/04 03:12:30 wgeric Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /* * @TODO encryption methods for the FTP password */ if(isset($set_methods)) { $method_name = 'ftp_fsock'; $method_file = 'ftp_fsock'; return; } elseif(!class_exists('em_method_ftp_fsock')) { /** * @package EasyMOD_method * FTP move/write method */ class em_method_ftp_fsock { var $connection; var $host; var $port; var $username; var $password; var $timeout; var $root_path; var $tmp_path; var $file_perms; var $dir_perms; /* Public variables */ var $debug; // print debug messages var $umask; // local umask /* Private variables */ var $_sock; var $_resp; var $_buf; function em_method_ftp_fsock() { global $board_config, $crypt; $key = ''; for($i = 1, $total = strlen($board_config['em_pass']); $i < $total; $i = round(($i+1)*2)) { $key .= md5($board_config['em_pass']{$i}); } $this->host = $board_config['em_ftp_host']; $this->port = $board_config['em_ftp_port']; $this->username = $board_config['em_ftp_username']; $this->password = $crypt->decrypt($board_config['em_ftp_password'], $key); $this->timeout = $board_config['em_ftp_timeout']; $this->root_path = $board_config['em_ftp_root_path']; $this->tmp_path = $board_config['em_tmp_path']; $this->file_perms = $board_config['em_file_perms']; $this->dir_perms = $board_config['em_dir_perms']; $this->debug = false; $this->umask = 0022; if (!defined("FTP_BINARY")) { define("FTP_BINARY", 1); } if (!defined("FTP_ASCII")) { define("FTP_ASCII", 0); } $this->_sock = FALSE; $this->_resp = ''; $this->_buf = 4096; return; } function init() { // connect to the server $this->connection = $this->_connect($this->host, $this->port); if (!$this->connection) { return false; } // login to the server if ( !@$this->_login($this->username, $this->password) ) { return false; } // change to the root directory if ( !$this->_chdir($this->root_path) ) { return false; } return true; } function open_file($file = '') { if(file_exists($file)) { if(function_exists('file_get_contents')) { $contents = file_get_contents($file); } else { $contents = implode('', file($file)); } } else { // ERROR, file doesn't exsist } if(empty($contents)) { // ERROR, read error or file empty } else { return $contents; } } function write_file($file = '', $contents = '') { if ( empty($file) ) { $file = $this->cur_file; } if ( empty($contents) ) { $contents = $this->files[$file]; } // need to create a temp file and then move that temp file. // ftp functions can only move files around and can't create. // This means that the users will need to have access to write // temporary files or have write access on a folder within phpBB // like the cache folder. If the user can't do either, then // he/she needs to use the fsock ftp method $temp_name = tempnam($this->tmp_path, 'em_'); $file_resource = fopen($temp_name, 'w'); fwrite($file_resource, $contents); fclose($file_resource); $err = $this->_put($temp_name, $file); $this->_chmod($file, $this->file_perms); unlink($temp_name); return $err; } function make_dir($dir) { $dir = explode('/', $dir); for($i = 0, $total = count($dir); $i < count($dir); $i++) { $cur_dir = $dir[$i] . '/'; if ( !file_exists($cur_dir) ) { // make the directory @ftp_mkdir($this->connection, $dir[$i]); $this->_chmod($dir[$i], $this->dir_perms); } $this->_chdir($dir[$i]); } $this->_chdir(); return; } function copy_file($from_loc, $to_loc) { global $phpbb_root_path; $to_loc = $this->root_path . '/' . str_replace($phpbb_root_path, '', $to_loc); $from_loc = $this->root_path . str_replace('//', '/', str_replace('./', '/', str_replace('../', '/', $from_loc))); // copy the file $err = $this->_put($from_loc, $to_loc); $this->_chmod($to_loc, $this->file_perms); return $err; } /********************************************************************* * * PHP FTP Client Class By TOMO ( gr...@sp... ) * * - Version 0.13 (2002/06/19) * - This script is free but without any warranty. * - You can freely copy, use, modify or redistribute this script * for any purpose. * - But please do not erase this information!!. * ********************************************************************/ // // modified by wGEric // /* Public functions */ function _connect($server, $port = 21) { $this->_debug_print("Trying to connect to ".$server.":".$port." ...\n"); $this->_sock = @fsockopen($server, $port, $errno, $errstr, $this->timeout); if (!$this->_sock || !$this->_ok()) { $this->_debug_print("Error : Cannot connect to remote host \"".$server.":".$port."\"\n"); $this->_debug_print("Error : fsockopen() ".$errstr." (".$errno.")\n"); return FALSE; } $this->_debug_print("Connected to remote host \"".$server.":".$port."\"\n"); return TRUE; } function _login($user, $pass) { $this->_putcmd("USER", $user); if (!$this->_ok()) { $this->_debug_print("Error : USER command failed\n"); return FALSE; } $this->_putcmd("PASS", $pass); if (!$this->_ok()) { $this->_debug_print("Error : PASS command failed\n"); return FALSE; } $this->_debug_print("Authentication succeeded\n"); return TRUE; } function _pwd() { $this->_putcmd("PWD"); if (!$this->_ok()) { $this->_debug_print("Error : PWD command failed\n"); return FALSE; } return ereg_replace("^[0-9]{3} \"(.+)\" .+\r\n", "\\1", $this->_resp); } function _size($pathname) { $this->_putcmd("SIZE", $pathname); if (!$this->_ok()) { $this->_debug_print("Error : SIZE command failed\n"); return -1; } return ereg_replace("^[0-9]{3} ([0-9]+)\r\n", "\\1", $this->_resp); } function _chdir($pathname) { $this->_putcmd("CWD", $pathname); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : CWD command failed\n"); } return $response; } function _delete($pathname) { $this->_putcmd("DELE", $pathname); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : DELE command failed\n"); } return $response; } function _rmdir($pathname) { $this->_putcmd("RMD", $pathname); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : RMD command failed\n"); } return $response; } function _mkdir($pathname) { $this->_putcmd("MKD", $pathname); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : MKD command failed\n"); } return $response; } function _nlist($arg = "", $pathname = "") { if (!($string = $this->_pasv())) { return FALSE; } if ($arg == "") { $nlst = "NLST"; } else { $nlst = "NLST ".$arg; } $this->_putcmd($nlst, $pathname); $sock_data = $this->_open_data_connection($string); if (!$sock_data || !$this->_ok()) { $this->_debug_print("Error : Cannot connect to remote host\n"); $this->_debug_print("Error : NLST command failed\n"); return FALSE; } $this->_debug_print("Connected to remote host\n"); $list = array(); while (!feof($sock_data)) { $list[] = ereg_replace("[\r\n]", "", fgets($sock_data, 512)) ; } $this->_close_data_connection($sock_data); $this->_debug_print(implode("\n", $list)); if (!$this->_ok()) { $this->_debug_print("Error : NLST command failed\n"); return FALSE; } return $list; } function _put($localfile, $remotefile, $mode = 1) { if (!@file_exists($localfile)) { $this->_debug_print("Error : No such file or directory \"".$localfile."\"\n"); $this->_debug_print("Error : PUT command failed\n"); return FALSE; } $fp = @fopen($localfile, "rb"); if (!$fp) { $this->_debug_print("Error : Cannot read file \"".$localfile."\"\n"); $this->_debug_print("Error : PUT1 command failed\n"); return FALSE; } if (!$this->_type($mode)) { $this->_debug_print("Error : PUT2 command failed\n"); return FALSE; } if (!($string = $this->_pasv())) { $this->_debug_print("Error : PUT3 command failed\n"); return FALSE; } // delete the old file and then move on $this->_delete($remotefile); $this->_putcmd("STOR", $remotefile); $sock_data = $this->_open_data_connection($string); if (!$sock_data || !$this->_ok()) { $this->_debug_print("Error : Cannot connect to remote host\n"); $this->_debug_print("Error : PUT4 command failed\n"); return FALSE; } $this->_debug_print("Connected to remote host\n"); $this->_debug_print("Storing local file \"".$localfile."\" to remote file \"".$remotefile."\"\n"); while (!feof($fp)) { fwrite($sock_data, fread($fp, $this->_buf)); } fclose($fp); $this->_close_data_connection($sock_data); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : PUT5 command failed\n"); // try deleting the file and then moving it into place after that if ( $this->_delete($remotefile) ) { $this->_putcmd("STOR", $remotefile); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : PUT6 command failed\n"); } } else { $this->_debug_print("Error : DELE command failed\n"); } } return $response; } function _chmod($file, $perms) { $this->_putcmd('SITE CHMOD', $perms . ' ' . $file); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : CHMOD command failed\n"); } return $response; } function _site($command) { $this->_putcmd("SITE", $command); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : SITE command failed\n"); } return $response; } function _quit() { $this->_putcmd("QUIT"); if (!$this->_ok() || !fclose($this->_sock)) { $this->_debug_print("Error : QUIT command failed\n"); return FALSE; } $this->_debug_print("Disconnected from remote host\n"); return TRUE; } /* Private Functions */ function _type($mode) { if ($mode) { $type = "I"; //Binary mode } else { $type = "A"; //ASCII mode } $this->_putcmd("TYPE", $type); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : TYPE command failed\n"); } return $response; } function _port($ip_port) { $this->_putcmd("PORT", $ip_port); $response = $this->_ok(); if (!$response) { $this->_debug_print("Error : PORT command failed\n"); } return $response; } function _pasv() { $this->_putcmd("PASV"); if (!$this->_ok()) { $this->_debug_print("Error : PASV command failed\n"); return FALSE; } $ip_port = ereg_replace("^.+ \\(?([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+)\\)?.*\r\n$", "\\1", $this->_resp); return $ip_port; } function _putcmd($cmd, $arg = "") { if ($arg != "") { $cmd = $cmd." ".$arg; } fwrite($this->_sock, $cmd."\r\n"); $this->_debug_print("> ".$cmd."\n"); return TRUE; } function _ok() { $this->_resp = ""; do { $res = fgets($this->_sock, 512); $this->_resp .= $res; } while (substr($res, 3, 1) != " "); $this->_debug_print(str_replace("\r\n", "\n", $this->_resp)); if (!ereg("^[123]", $this->_resp)) { return FALSE; } return TRUE; } function _close_data_connection($sock) { $this->_debug_print("Disconnected from remote host\n"); return fclose($sock); } function _open_data_connection($ip_port) { if (!ereg("[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+", $ip_port)) { $this->_debug_print("Error : Illegal ip-port format(".$ip_port.")\n"); return FALSE; } $DATA = explode(",", $ip_port); $ipaddr = $DATA[0].".".$DATA[1].".".$DATA[2].".".$DATA[3]; $port = $DATA[4]*256 + $DATA[5]; $this->_debug_print("Trying to ".$ipaddr.":".$port." ...\n"); $data_connection = @fsockopen($ipaddr, $port, $errno, $errstr); if (!$data_connection) { $this->_debug_print("Error : Cannot open data connection to ".$ipaddr.":".$port."\n"); $this->_debug_print("Error : ".$errstr." (".$errno.")\n"); return FALSE; } return $data_connection; } function _debug_print($message = "") { // htmlspecialchars and str_replace added by Nuttzy $message = htmlspecialchars($message) ; $message = str_replace( "\n", "<br />\n", $message) ; // hide the password added by Nuttzy $words = explode(" ", $message) ; if ($words[1] == 'PASS') { $message = "> PASS ********<br />\n" ; } if ($this->debug) { echo $message ; } return TRUE; } function quit() { return $this->_close(); } function test_connection() { global $phpEx; // close the current connection if it is open if ( !empty($this->connection) ) { $this->_quit(); } echo 'FTP fsock method<br />'; // connect to server echo 'Connecting to <em>' . $this->host . '</em> ... '; flush(); if ( !$this->connection = $this->_connect($this->host, $this->port) ) { echo '<strong>Error!</strong><br />'; return false; } else { echo '<strong>Success!</strong><br />'; } // login to server echo 'Logging into the server ... '; flush(); if ( !$this->_login($this->username, $this->password) ) { $status = false; } else { $status = true; } echo ( $status ) ? '<strong>Success!</strong><br />' : '<strong>Error!</strong><br />'; echo '--> USERNAME: ' . $this->username . '<br />'; echo '--> PASSWORD: ' . (( !empty($this->password) ) ? '******<br />' : 'No Password<br />'); if ( !$status ) { $this->_quit(); return false; } unset($status); // change to root directory echo 'Changing to directory to <em>' . $this->root_path . '</em> ... '; flush(); if ( !@$this->_chdir($this->root_path) ) { echo '<strong>Error!</strong><br />'; $this->_quit(); return false; } else { echo '<strong>Success!</strong><br />'; } // print a list of files in the root directory // and see if a file we know is part of phpBB is there echo 'Listing files within <em>' . $this->root_path . '</em> ...'; flush(); if ( !$cur_dir = $this->_nlist('.') ) { echo '<strong>Error!</strong><br />'; $this->_quit(); return false; } else { echo '<strong>Success!</strong><br />'; for($i = 0, $total = sizeof($cur_dir); $i < $total; $i++) { echo '--> ' . $cur_dir[$i] . '<br />'; } } echo 'Looking for viewtopic.' . $phpEx . ' ... '; flush(); $status = $this->_size('viewtopic.'.$phpEx); if ( $status <= 0 ) { echo '<strong>Error!</strong><br />'; $this->_quit(); return false; } else { echo '<strong>Success!</strong> ' . $status . ' bytes<br />'; } // close the connection echo 'Closing connection ... '; flush(); if ( !$this->_quit() ) { echo '<strong>Error!</strong><br />'; return false; } else { echo '<strong>Success!</strong><br />'; } // if it has reached this point, test was successful! return true; } function test(&$debug, $name = 'ftp_fsock') { global $board_config; $debug[$name]['allowed'] = true; // see if the ftp extension has been loaded if ( function_exists('fsockopen') ) { $debug[$name]['fsock_func'] = true; } else { $debug[$name]['allowed'] = false; $debug[$name]['fsock_func'] = false; } return; } } } // // Instinate Class // $mod_io = new em_method_ftp_fsock(); ?> --- NEW FILE: em_processing.php --- <?php /** * * @package EasyMOD * @version $Id: em_processing.php,v 1.1 2005/12/04 03:12:30 wgeric Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ function add_after($cur_file, $cur_find, $command) { } function add_after_inline($cur_file, $cur_find, $command, $cur_inline) { } function add_before($cur_file, $cur_find, $command) { } function add_before_inline($cur_file, $cur_find, $command, $cur_inline) { } function process_increment($cur_file, $cur_find, $command) { } ?> --- NEW FILE: em_methods_ssh2.php --- <?php /** * * @package EasyMOD_method * @version $Id: em_methods_ssh2.php,v 1.1 2005/12/04 03:12:30 wgeric Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /* * @TODO encrypt password */ if(isset($set_methods)) { $method_name = 'ssh2_php'; $method_file = 'ssh2'; return; } elseif(!class_exists('em_method_ssh2')) { /** * @package EasyMOD_method * SSH move/write method */ class em_method_ssh2 { var $connection; var $root_path; var $tmp_path; var $file_perms; var $dir_perms; function init() { return true; } function open_file($file = '') { if(file_exists($file)) { if(function_exists('file_get_contents')) { $contents = file_get_contents($file); } else { $contents = implode('', file($file)); } } else { // ERROR, file doesn't exsist } if(empty($contents)) { // ERROR, read error or file empty } else { return $contents; } } function write_file($file = '', $contents = '') { if ( empty($file) ) { $file = $this->cur_file; } if ( empty($contents) ) { $contents = $this->files[$file]; } } function make_dir($dir) { $dir = explode('/', $dir); for($i = 0, $total = count($dir); $i < count($dir); $i++) { $cur_dir = $dir[$i] . '/'; if ( !file_exists($cur_dir) ) { // make the directory $this->_chmod($dir[$i], $this->dir_perms); } $this->_chdir($dir[$i]); } $this->_chdir(); return; } function copy_file($from_loc, $to_loc) { } function quit() { } function test_connection() { global $ftp_host, $ftp_port, $ftp_username, $ftp_password, $ftp_root_path, $phpEx; // connect to server echo 'Connecting to <em>' . $ftp_host . '</em> ... '; flush(); if ( !$this->connection = @ssh2_connect($ftp_host, $ftp_port) ) { echo '<strong>Error!</strong><br />'; return false; } else { echo '<strong>Success!</strong><br />'; } // login to server echo 'Logging into the server ... '; flush(); $methods = @ssh2_auth_none($this->connection, $ftp_username); if ( $methods == true ) { $status = true; } else { vd($methods); if ( in_array('publickey', $methods) ) { if ( @ssh2_auth_pubkey_file($this->connection, $ftp_username, '/home/' . $ftp_username . '/.ssh/id_rsa.pub', '/home/' . $ftp_username . '/.ssh/id_rsa', $ftp_password) ) { $status = true; } else { $status = false; } } else if ( in_array('password', $methods) ) { if ( @ssh2_auth_password($this->connection, $ftp_username, $ftp_password) ) { $status = true; } else { $status = false; } } } echo ( $status ) ? '<strong>Success!</strong><br />' : '<strong>Error!</strong><br />'; echo '--> USERNAME: ' . $ftp_username . '<br />'; echo '--> PASSWORD: ' . (( !empty($ftp_password) ) ? '******<br />' : 'No Password<br />'); if ( !$status ) { return false; } unset($status); // if it has reached this point, test was successful! return true; } function test(&$debug, $name = 'ssh2_php') { global $board_config; // see if the ftp extension has been loaded if ( extension_loaded('ssh2') ) { $debug[$name]['allowed'] = true; $debug[$name]['ssh2_extension'] = true; } else { $debug[$name]['allowed'] = false; $debug[$name]['ssh2_extension'] = false; } return; } } } // // Instinate Class // $mod_io = new em_method_ssh2(); ?> --- NEW FILE: em_crypt.php --- <?php /** * * @package EasyMOD * @version $Id: em_crypt.php,v 1.1 2005/12/04 03:12:30 wgeric Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /* * THE PURPOSE of this module is purely to encrypt the FTP password. Since I can't * be sure what PHP libraries are installed, I cannot use mcrypt. Thus the addition * of this 29k file just to make a password safe. Oh well, EM spares no expense ;-) */ /** * The Cipher_blowfish class implements the Cipher interface enryption data * using the Blowfish algorithm. * * Copyright 2002-2003 Mike Cochrane <mi...@gr...> * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. * * @author Mike Cochrane <mi...@gr...> * @version $Revision: 1.1 $ * //// //// NOTE: a few small cosmetic changes made by Nuttzy //// * */ class Cipher_blowfish { /* Pi Array */ var $p = array( 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, 0x9216D5D9, 0x8979FB1B); /* S Boxes */ var $s1 = array( 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE, 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA, 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A); var $s2 = array( 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84, 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7); var $s3 = array( 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33, 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C, 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3, 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC, 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17, 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564, 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B, 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115, 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922, 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728, 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0, 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E, 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37, 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D, 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804, 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B, 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3, 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB, 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D, 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C, 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350, 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9, 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A, 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE, 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D, 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC, 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F, 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61, 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2, 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9, 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2, 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C, 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E, 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633, 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10, 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169, 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52, 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027, 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5, 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62, 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634, 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76, 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24, 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC, 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4, 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C, 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837, 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0); var $s4 = array( 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B, 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE, 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B, 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4, 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8, 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6, 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304, 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22, 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4, 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6, 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9, 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59, 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593, 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51, 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28, 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C, 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B, 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28, 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C, 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD, 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A, 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319, 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB, 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F, 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991, 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32, 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680, 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166, 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE, 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB, 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5, 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47, 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370, 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D, 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84, 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048, 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8, 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD, 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9, 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7, 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38, 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F, 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C, 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525, 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1, 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442, 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964, 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E, 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8, 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D, 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F, 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299, 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02, 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC, 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614, 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A, 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6, 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B, 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0, 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060, 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E, 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9, 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F, 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6); /* The number of rounds to do */ var $_rounds = 16; /* Constructor */ function Cipher_blowfish() { } /** * Set the key to be used for en/decryption * * @param String $key The key to use */ function setKey($key) { $key = $this->_formatKey($key); $keyPos = 0; $keyXor = 0; $iMax = count($this->p); $keyLen = count($key); for ($i = 0; $i < $iMax; $i++) { for ($t = 0; $t < 4; $t++) { $keyXor = ($keyXor << 8) | (($key[$keyPos]) & 0x0ff); if (++$keyPos == $keyLen) { $keyPos = 0; } } $this->p[$i] = $this->p[$i] ^ $keyXor; } $encZero = array('L' => 0, 'R' => 0); for ($i = 0; $i + 1 < $iMax; $i+=2) { $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); $this->p[$i] = $encZero['L']; $this->p[$i + 1] = $encZero['R']; } $iMax = count($this->s1); for ($i = 0; $i < $iMax; $i+=2) { $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); $this->s1[$i] = $encZero['L']; $this->s1[$i + 1] = $encZero['R']; } $iMax = count($this->s2); for ($i = 0; $i < $iMax; $i+=2) { $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); $this->s2[$i] = $encZero['L']; $this->s2[$i + 1] = $encZero['R']; } $iMax = count($this->s3); for ($i = 0; $i < $iMax; $i+=2) { $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); $this->s3[$i] = $encZero['L']; $this->s3[$i + 1] = $encZero['R']; } $iMax = count($this->s4); for ($i = 0; $i < $iMax; $i+=2) { $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); $this->s4[$i] = $encZero['L']; $this->s4[$i + 1] = $encZero['R']; } } /** * Return the size of the blocks that this cipher needs * * @return Integer The number of characters per block */ function getBlockSize() { return 8; } /** * Encrypt a block on data. * * @param String $block The data to encrypt * @param optional String $key The key to use * @param optional boolean $allparts Return an array containing the two * 32bit ints also. * * @return String the encrypted output */ function encryptBlock($block, $key = null, $allparts = false) { if (!is_null($key)) { $this->setKey($key); } list($L, $R) = array_values(unpack('N*', $block)); $parts = $this->_encryptBlock($L, $R); return pack("NN", $parts['L'], $parts['R']); } /** * Encrypt a block on data. * * @param String $block The data to encrypt * * @return String the encrypted output */ function _encryptBlock($L, $R) { $L ^= $this->p[0]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[1]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[2]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[3]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[4]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[5]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[6]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[7]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[8]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[9]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[10]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[11]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[12]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[13]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[14]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[15]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff])... [truncated message content] |
From: Eric F. <wg...@us...> - 2005-12-04 03:12:39
|
Update of /cvsroot/easymod/easymod/install/em_files/templates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29556/install/em_files/templates Added Files: index.htm Log Message: First commit to SourceForge. Enjoy! --- NEW FILE: index.htm --- <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> </body> </html> |
From: Eric F. <wg...@us...> - 2005-12-04 03:12:39
|
Update of /cvsroot/easymod/easymod/install/em_files/includes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29556/install/em_files/includes Added Files: index.htm Log Message: First commit to SourceForge. Enjoy! --- NEW FILE: index.htm --- <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> </body> </html> |
From: Eric F. <wg...@us...> - 2005-12-04 03:12:39
|
Update of /cvsroot/easymod/easymod/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29556/docs Added Files: method_guidelines parser_guidelines Log Message: First commit to SourceForge. Enjoy! --- NEW FILE: parser_guidelines --- //-----------------------// // Parser Guidelines // //-----------------------// - Every parser must have these functions/methods, that return the indicated array of information: ~~~~~~~~~~~~~~~~ ~ parse_header ~ ~~~~~~~~~~~~~~~~ array( - 'name' : MOD Name - 'authors' : array( array( - 'username' : Author Username - 'email' : Author Email - 'name' : Author Email - 'website' : Author Website ) ... ) - 'desc' : MOD Description (OPTIONAL) - 'version' : MOD Version - 'file_edit': Files to be edited (OPTIONAL) - 'file_inc': Files included (OPTIONAL) - 'notes' : Authors notes (OPTIONAL) - 'license' : License for MOD (OPTIONAL) - 'history' : (OPTIONAL) array( array( - 'date' : Date of entry - 'version' : Version on entry - 'note' : Note about entry ) ... ) ) ~~~~~~~~~~~~~ ~ parse_sql ~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ ~ parse_actions ~ ~~~~~~~~~~~~~~~~~ array( array( - 'type' : OPEN/COPY/FIND etc... - 'command' : The contents of the action, I.e. the FIND string, or the filename to copy ) ... ) - The parser must also have a verify() function, that returns true or false on wetyher the parsed file is a MOD install file - The file should include a test for if the class already exists - The file should end with the class being instinated into $mod_parser - Each parse function should use the io class object (testing and creating if nesscecary) --- NEW FILE: method_guidelines --- //---------------------------------------// // Read/Write/Move Method Guidelines // //---------------------------------------// - Each method needs to have the following at the top if ( isset($set_methods) ) { $method = 'lang_variable'; return; } This is used by easymod so that it knows the method is there. EasyMOD will look for 'lang_variable' in the $lang variables. If it doesn't exist, it will use that string but with underscores (_) replaced with spaces. @TODO Need to think of the way to test if the function is usable or not. I want only those methods that will work to be displayed to the user. - Every method must have the following functions - open_file($file = '') - write_file($file = '', $contents = '') - make_dir($dir) - copy_file($from_file, $to_file) - clean() - test() - Each function needs to return true if successfully and false if not successfull - Each method needs a clean function which will be used to close any connections like with the FTP method. This function can be left empty. - Functions that start with _ are private and are only used by that class itself. An exception to this is if the class needs to log in so it has an constructor function. An example of this would be the function to change the directory in the ftp method - The file should include a test for if the class already exists - The file should end with the class being instinated into $mod_io |
From: Eric F. <wg...@us...> - 2005-12-04 03:08:22
|
Update of /cvsroot/easymod/easymod/install/em_files/templates/subSilver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28901/templates/subSilver Log Message: Directory /cvsroot/easymod/easymod/install/em_files/templates/subSilver added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:08:22
|
Update of /cvsroot/easymod/easymod/install/em_files/templates/subSilver/admin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28901/templates/subSilver/admin Log Message: Directory /cvsroot/easymod/easymod/install/em_files/templates/subSilver/admin added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:08:22
|
Update of /cvsroot/easymod/easymod/install/em_files/templates/subSilver/images In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28901/templates/subSilver/images Log Message: Directory /cvsroot/easymod/easymod/install/em_files/templates/subSilver/images added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:08:20
|
Update of /cvsroot/easymod/easymod/install/em_files/language/lang_english In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28901/language/lang_english Log Message: Directory /cvsroot/easymod/easymod/install/em_files/language/lang_english added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:08:20
|
Update of /cvsroot/easymod/easymod/install/em_files/includes/em In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28901/includes/em Log Message: Directory /cvsroot/easymod/easymod/install/em_files/includes/em added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:06:16
|
Update of /cvsroot/easymod/easymod/install/em_files/language In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28558/em_files/language Log Message: Directory /cvsroot/easymod/easymod/install/em_files/language added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:06:16
|
Update of /cvsroot/easymod/easymod/install/em_files/includes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28558/em_files/includes Log Message: Directory /cvsroot/easymod/easymod/install/em_files/includes added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:06:15
|
Update of /cvsroot/easymod/easymod/install/em_files/templates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28558/em_files/templates Log Message: Directory /cvsroot/easymod/easymod/install/em_files/templates added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:06:15
|
Update of /cvsroot/easymod/easymod/install/em_files/admin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28558/em_files/admin Log Message: Directory /cvsroot/easymod/easymod/install/em_files/admin added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:05:13
|
Update of /cvsroot/easymod/easymod/install/schemas In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28401/install/schemas Log Message: Directory /cvsroot/easymod/easymod/install/schemas added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:05:12
|
Update of /cvsroot/easymod/easymod/install/em_files In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28401/install/em_files Log Message: Directory /cvsroot/easymod/easymod/install/em_files added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:04:33
|
Update of /cvsroot/easymod/easymod/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28287/docs Log Message: Directory /cvsroot/easymod/easymod/docs added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:04:33
|
Update of /cvsroot/easymod/easymod/install In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28287/install Log Message: Directory /cvsroot/easymod/easymod/install added to the repository |
From: Eric F. <wg...@us...> - 2005-12-04 03:04:33
|
Update of /cvsroot/easymod/easymod/dev In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28287/dev Log Message: Directory /cvsroot/easymod/easymod/dev added to the repository |
From: Markus P. <mar...@us...> - 2005-11-11 22:38:06
|
Update of /cvsroot/easymod/easymod2/dev In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv621 Added Files: compare_lang_file_versions.php Log Message: * Developed to automatically generate the information required to * update the EasyMOD Language Pack Changelog posted here: * http://area51.phpbb.com/phpBB/viewtopic.php?f=17&t=20153 --- NEW FILE: compare_lang_file_versions.php --- <?php /** * Compare 2 language files. * * Developed to automatically generate the information required to * update the EasyMOD Language Pack Changelog posted here: * http://area51.phpbb.com/phpBB/viewtopic.php?f=17&t=20153 */ // Two different versions of the same language file ;-) $myfiles = array( 'old' => 'lang_easymod_021.php', 'new' => 'lang_easymod_030.php' ); // This is where we store the comparission results, the diffs $diff = array( 'Added' => array(), 'Modified' => array(), 'Removed' => array() ); /** * Load language files into $mylangs array */ $mylangs = array(); foreach( $myfiles as $key => $filename ) { $lang = array(); include($filename); $mylangs[$key] = $lang; unset($lang); } // Extract Added entries foreach( $mylangs['new'] as $key => $text ) { if( !isset($mylangs['old'][$key]) ) { $diff['Added'][] = $key; } } // Extract Modified and Removed entries foreach( $mylangs['old'] as $key => $text ) { if( !isset($mylangs['new'][$key]) ) { $diff['Removed'][] = $key; } else { if( $text != $mylangs['new'][$key] ) { $diff['Modified'][] = $key; } } } // Generate the diff report formatted for forum posting foreach( $diff as $type => $array ) { echo '[size=14][b]' . $type . "[/b][/size]<br />\n"; echo "[list]<br />\n"; for( $i=0; $i < count($array); $i++ ) { echo '[*]$lang[\'' . $array[$i] . "']<br />\n"; } echo "[/list]<br />\n"; } ?> |
From: Markus P. <mar...@us...> - 2005-11-10 02:09:43
|
Update of /cvsroot/easymod/sql_parser/root/includes/sql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv842 Modified Files: sql_builder_mysql.php Log Message: Fixed display length in MySQL builder. Index: sql_builder_mysql.php =================================================================== RCS file: /cvsroot/easymod/sql_parser/root/includes/sql/sql_builder_mysql.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** sql_builder_mysql.php 4 Nov 2005 05:44:33 -0000 1.4 --- sql_builder_mysql.php 10 Nov 2005 02:09:34 -0000 1.5 *************** *** 35,39 **** else { ! $datatype .= '(' . implode(', ', $column_data['datatype_argv']) . ')'; } return $datatype; --- 35,42 ---- else { ! if( $column_data['datatype_argc'] > 0 ) ! { ! $datatype .= '(' . implode(', ', $column_data['datatype_argv']) . ')'; ! } } return $datatype; |
From: Markus P. <mar...@us...> - 2005-11-10 01:57:52
|
Update of /cvsroot/easymod/easymod2/mods/easymod/em_includes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30338 Modified Files: em_ftp.php Log Message: Fixed ftp_chmod for PHP5, the mode was not passed correctly. Index: em_ftp.php =================================================================== RCS file: /cvsroot/easymod/easymod2/mods/easymod/em_includes/em_ftp.php,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** em_ftp.php 6 Nov 2005 15:19:30 -0000 1.14 --- em_ftp.php 10 Nov 2005 01:57:43 -0000 1.15 *************** *** 1069,1074 **** else { ! $perms = 0 . intval($perms); ! if ( function_exists('ftp_chmod') && ftp_chmod($this->ftp_conn_id, $perms, $file) ) { return true; --- 1069,1073 ---- else { ! if ( function_exists('ftp_chmod') && ftp_chmod($this->ftp_conn_id, intval($perms, 8), $file) ) { return true; |
From: Markus P. <mar...@us...> - 2005-11-09 04:39:36
|
Update of /cvsroot/easymod/sql_parser/root/includes/sql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11257/root/includes/sql Modified Files: sql_parser.php Log Message: Added a version number for easy user identification. Index: sql_parser.php =================================================================== RCS file: /cvsroot/easymod/sql_parser/root/includes/sql/sql_parser.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** sql_parser.php 4 Nov 2005 05:44:33 -0000 1.5 --- sql_parser.php 9 Nov 2005 04:39:17 -0000 1.6 *************** *** 11,14 **** --- 11,20 ---- /** + * SQL Parser Version. + */ + define('SQL_PARSER_VERSION', '1.0.0'); + + + /** * SQL References... * |
From: Markus P. <mar...@us...> - 2005-11-08 19:35:22
|
Update of /cvsroot/easymod/easymod2/mods/easymod In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11041/mods/easymod Modified Files: easymod_display_functions.php Log Message: Changing 'beta 1' by 'beta' for the installer panel title. Index: easymod_display_functions.php =================================================================== RCS file: /cvsroot/easymod/easymod2/mods/easymod/easymod_display_functions.php,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** easymod_display_functions.php 8 Nov 2005 19:24:05 -0000 1.24 --- easymod_display_functions.php 8 Nov 2005 19:35:12 -0000 1.25 *************** *** 114,118 **** $variables = array(); ! $variables['TITLE'] = sprintf($lang['EM_installing_beta1'], $easymod_install_version); $variables['TEXT'] = $text; --- 114,118 ---- $variables = array(); ! $variables['TITLE'] = sprintf($lang['EM_installing_beta'], $easymod_install_version); $variables['TEXT'] = $text; |