From: <luc...@us...> - 2014-12-13 13:16:32
|
Revision: 12902 http://sourceforge.net/p/xoops/svn/12902 Author: luciorota Date: 2014-12-13 13:16:18 +0000 (Sat, 13 Dec 2014) Log Message: ----------- fixed huge amount of small bugs standardize code templatize admin side improved admin size options Modified Paths: -------------- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/attachment.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/cat.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/import.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/index.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/letter.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/menu.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/protocol.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/sendletter.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/task.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/template.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/accounts.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/attachment.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/cat.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/catsubscr.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/import.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/letter.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/mailinglist.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/subscr.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/template.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/cron.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/docs/changelog.txt XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/constants.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/functions.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/language/english/admin.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/language/english/common.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/letter.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/plugins/csv.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/plugins/evennews.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/plugins/rmbulletin.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/plugins/smartpartner.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/plugins/subscribers.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/plugins/weblinks.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/plugins/xoopsuser.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/print.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/sendletter.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/admin/xnewsletter_admin_attachments_list.tpl XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/admin/xnewsletter_admin_letters_list.tpl XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/admin/xnewsletter_admin_subscrs_list.tpl XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/admin/xnewsletter_admin_templates_list.tpl XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/xNewsletter_letter_preview.tpl XoopsModules/xnewsletter/branches/luciorota/xnewsletter/xoops_version.php Added Paths: ----------- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/assets/images/module_logo.png XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/functions.task.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/onuninstall.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/admin/xnewsletter_admin_cats_list.tpl XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/admin/xnewsletter_admin_protocols_list.tpl XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/admin/xnewsletter_admin_tasks_list.tpl Removed Paths: ------------- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/task.inc.php Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/attachment.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/attachment.php 2014-12-11 16:21:06 UTC (rev 12901) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/attachment.php 2014-12-13 13:16:18 UTC (rev 12902) @@ -43,6 +43,7 @@ echo $indexAdmin->renderButton(); // $attachmentCount = $xnewsletter->getHandler('attachment')->getCount(); + $GLOBALS['xoopsTpl']->assign('attachmentCount', $attachmentCount); if ($attachmentCount > 0) { $attachmentCriteria = new CriteriaCompo(); // Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/cat.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/cat.php 2014-12-11 16:21:06 UTC (rev 12901) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/cat.php 2014-12-13 13:16:18 UTC (rev 12902) @@ -37,109 +37,90 @@ switch ($op) { case 'list': + case 'list_cats': default: echo $indexAdmin->addNavigation($currentFile); $indexAdmin->addItemButton(_AM_XNEWSLETTER_NEWCAT, '?op=new_cat', 'add'); echo $indexAdmin->renderButton(); // - $start = xnewsletterRequest::getInt('start', 0); - $limit = $xnewsletter->getConfig('adminperpage'); - $catsCount = $xnewsletter->getHandler('cat')->getCount(); - $catCriteria = new CriteriaCompo(); - $catCriteria->setSort('cat_id ASC, cat_name'); - $catCriteria->setOrder('ASC'); - $catCriteria->setStart($start); - $catCriteria->setLimit($limit); - $catObjs = $xnewsletter->getHandler('cat')->getAll($catCriteria); - if ($catsCount > $limit) { - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; - $pagenav = new XoopsPageNav($catsCount, $limit, $start, 'start', 'op=list'); - $pagenav = $pagenav->renderNav(4); - } else { - $pagenav = ''; - } - - // View Table - echo "<table class='outer width100' cellspacing='1'>"; - echo "<tr>"; - echo " <th>" . _AM_XNEWSLETTER_CAT_ID . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_CAT_NAME . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_CAT_INFO . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_CAT_GPERMS_ADMIN . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_CAT_GPERMS_CREATE . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_CAT_GPERMS_LIST . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_CAT_GPERMS_READ . "</th>"; - if ($xnewsletter->getConfig('xn_use_mailinglist') == true) { - echo " <th>" . _AM_XNEWSLETTER_CAT_MAILINGLIST . "</th>"; - } - echo " <th>" . _AM_XNEWSLETTER_FORMACTION . "</th>"; - echo "</tr>"; - - if (count($catObjs) > 0) { - $class = 'odd'; + $catCount = $xnewsletter->getHandler('cat')->getCount(); + $GLOBALS['xoopsTpl']->assign('catCount', $catCount); + if ($catCount > 0) { + $catCriteria = new CriteriaCompo(); + // + $catCriteria->setSort('cat_id ASC, cat_name'); + $catCriteria->setOrder('ASC'); + // + $start = xnewsletterRequest::getInt('start', 0); + $limit = $xnewsletter->getConfig('adminperpage'); + $catCriteria->setStart($start); + $catCriteria->setLimit($limit); + // + if ($catCount > $limit) { + include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; + $pagenav = new XoopsPageNav($catCount, $limit, $start, 'start', 'op=list'); + $pagenav = $pagenav->renderNav(4); + } else { + $pagenav = ''; + } + $GLOBALS['xoopsTpl']->assign('cats_pagenav', $pagenav); + // + $catObjs = $xnewsletter->getHandler('cat')->getAll($catCriteria); + $cats = $xnewsletter->getHandler('cat')->getObjects($catCriteria, true, false); // as array $groupNames = $member_handler->getGroupList(); $gperm_handler = xoops_gethandler('groupperm'); - foreach ($catObjs as $cat_id => $catObj) { - echo "<tr class='{$class}'>"; - $class = ($class == 'even') ? 'odd' : 'even'; - echo "<td>{$cat_id}</td>"; - echo "<td>{$catObj->getVar("cat_name")}</td>"; - echo "<td>{$catObj->getVar("cat_info")} </td>"; + foreach ($cats as $cat_id => $cat) { // cat_gperms_admin $cat_gperms_admin_groupids = $gperm_handler->getGroupIds('newsletter_admin_cat', $cat_id, $xnewsletter->getModule()->mid()); sort($cat_gperms_admin_groupids); - $cat_gperms_admin = ''; + $cat_gperms_admin = array(); foreach ($cat_gperms_admin_groupids as $groupid) { - $cat_gperms_admin .= $groupNames[$groupid] . ' | '; + $cat_gperms_admin[$groupid] = array( + 'group_id' => $groupid, + 'group_name' => $groupNames[$groupid]); } - $cat_gperms_admin = substr($cat_gperms_admin, 0, -3); - echo "<td>" . $cat_gperms_admin . "</td>"; - + $cat['cat_gperms_admin_groups'] = $cat_gperms_admin; // cat_gperms_create $cat_gperms_create_groupids = $gperm_handler->getGroupIds('newsletter_create_cat', $cat_id, $xnewsletter->getModule()->mid()); sort($cat_gperms_create_groupids); - $cat_gperms_create = ''; + $cat_gperms_create = array(); foreach ($cat_gperms_create_groupids as $groupid) { - $cat_gperms_create .= $groupNames[$groupid] . " | "; + $cat_gperms_create[$groupid] = array( + 'group_id' => $groupid, + 'group_name' => $groupNames[$groupid]); } - $cat_gperms_create = substr($cat_gperms_create, 0, -3); - echo "<td>" . $cat_gperms_create . "</td>"; - + $cat['cat_gperms_create_groups'] = $cat_gperms_create; // cat_gperms_list $cat_gperms_list_groupids = $gperm_handler->getGroupIds('newsletter_list_cat', $cat_id, $xnewsletter->getModule()->mid()); sort($cat_gperms_list_groupids); - $cat_gperms_list = ''; + $cat_gperms_list = array(); foreach ($cat_gperms_list_groupids as $groupid) { - $cat_gperms_list .= $groupNames[$groupid] . " | "; + $cat_gperms_list[$groupid] = array( + 'group_id' => $groupid, + 'group_name' => $groupNames[$groupid]); } - $cat_gperms_list = substr($cat_gperms_list, 0, -3); - echo "<td>" . $cat_gperms_list . "</td>"; - + $cat['cat_gperms_list_groups'] = $cat_gperms_list; // cat_gperms_read $cat_gperms_read_groupids = $gperm_handler->getGroupIds('newsletter_read_cat', $cat_id, $xnewsletter->getModule()->mid()); sort($cat_gperms_read_groupids); - $cat_gperms_read = ''; + $cat_gperms_read = array(); foreach ($cat_gperms_read_groupids as $groupid) { - $cat_gperms_read .= $groupNames[$groupid] . " | "; + $cat_gperms_read[$groupid] = array( + 'group_id' => $groupid, + 'group_name' => $groupNames[$groupid]); } - $cat_gperms_read = substr($cat_gperms_read, 0, -3); - echo "<td>" . $cat_gperms_read . "</td>"; - - if ($xnewsletter->getConfig('xn_use_mailinglist') == true) { - echo "<td>" . $catObj->getVar("cat_mailinglist") . "</td>"; - } - echo "<td class='center' nowrap='nowrap'>"; - echo "<a href='?op=edit_cat&cat_id={$cat_id}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_edit.png alt='" . _EDIT . "' title='" . _EDIT . "' /></a>"; - echo " "; - echo "<a href='?op=delete_cat&cat_id={$cat_id}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_delete.png alt='" . _DELETE . "' title='" . _DELETE . "' /></a>"; - echo "</td>"; - echo "</tr>"; + $cat['cat_gperms_read_groups'] = $cat_gperms_read; + // + $GLOBALS['xoopsTpl']->append('cats', $cat); } + // config + $GLOBALS['xoopsTpl']->assign('xn_use_mailinglist', $xnewsletter->getConfig('xn_use_mailinglist')); + // + $GLOBALS['xoopsTpl']->display("db:{$xnewsletter->getModule()->dirname()}_admin_cats_list.tpl"); + } else { + echo _CO_XNEWSLETTER_WARNING_NOCATS; } - echo "</table>"; - echo "<br />"; - echo "<div>" . $pagenav . "</div>"; - echo "<br />"; + include_once __DIR__ . '/admin_footer.php'; break; case 'new_cat': @@ -150,6 +131,7 @@ $catObj = $xnewsletter->getHandler('cat')->create(); $form = $catObj->getForm(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'save_cat': @@ -206,6 +188,7 @@ echo $catObj->getHtmlErrors(); $form = $catObj->getForm(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'edit_cat': @@ -217,6 +200,7 @@ $catObj = $xnewsletter->getHandler('cat')->get($cat_id); $form = $catObj->getForm(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'delete_cat': @@ -233,6 +217,6 @@ } else { xoops_confirm(array('ok' => true, 'cat_id' => $cat_id, 'op' => 'delete_cat'), $_SERVER['REQUEST_URI'], sprintf(_AM_XNEWSLETTER_FORMSUREDEL, $catObj->getVar('cat_name'))); } + include_once __DIR__ . '/admin_footer.php'; break; } -include_once __DIR__ . '/admin_footer.php'; Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/import.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/import.php 2014-12-11 16:21:06 UTC (rev 12901) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/import.php 2014-12-13 13:16:18 UTC (rev 12902) @@ -34,57 +34,54 @@ define('XNEWSLETTER_BASIC_LIMIT_IMPORT_CHECKED', 100); define('XNEWSLETTER_BASIC_LIMIT_IMPORT_AT_ONCE', 10); -$op = xnewsletterRequest::getString('op', 'default'); -$plugin = xnewsletterRequest::getString('plugin', 'csv'); -$cat_id = xnewsletterRequest::getInt('cat_id', 0, 'int'); -$action_after_read = xnewsletterRequest::getInt('action_after_read', 1); -$start = xnewsletterRequest::getInt('start', 0); -$limitcheck = xnewsletterRequest::getInt('limitcheck', XNEWSLETTER_BASIC_LIMIT_IMPORT_CHECKED); +$plugin = xnewsletterRequest::getString('plugin', 'csv'); +$cat_id = xnewsletterRequest::getInt('cat_id', 0, 'int'); +$start = xnewsletterRequest::getInt('start', 0); +$checkSubscrsAfterRead = xnewsletterRequest::getBool('checkSubscrsAfterRead', true); +$checkLimit = xnewsletterRequest::getInt('checkLimit', XNEWSLETTER_BASIC_LIMIT_IMPORT_CHECKED); $skipcatsubscrexist = xnewsletterRequest::getInt('skipcatsubscrexist', 1); -$check_import = xnewsletterRequest::getInt('check_import', 0); +$checkImport = xnewsletterRequest::getInt('checkImport', 0); echo $indexAdmin->addNavigation($currentFile); +$op = xnewsletterRequest::getString('op', 'default'); switch ($op) { case 'show_formcheck': $indexAdmin->addItemButton(_AM_XNEWSLETTER_IMPORT_PLUGINS_AVAIL, $currentFile, 'list'); echo $indexAdmin->renderButton(); // - $importCriteria = new CriteriaCompo(); - $importCriteria->setSort("import_id"); - $importCriteria->setOrder("ASC"); - $importsCount = $xnewsletter->getHandler('import')->getCount($importCriteria); - - $importCriteria->setStart($start); - $importCriteria->setLimit($limitcheck); - $importObjs = $xnewsletter->getHandler('import')->getAll($importCriteria); - - if ($importsCount > 0) { + $importCount = $xnewsletter->getHandler('import')->getCount(); + if ($importCount > 0) { + $importCriteria = new CriteriaCompo(); + $importCriteria->setSort("import_id"); + $importCriteria->setOrder("ASC"); + $importCriteria->setStart($start); + $importCriteria->setLimit($checkLimit); + $importObjs = $xnewsletter->getHandler('import')->getAll($importCriteria); + // include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php'; - - $action = $_SERVER['REQUEST_URI']; + $action = $_SERVER['REQUEST_URI']; $unique_id = uniqid(mt_rand()); $form = "<br/>"; - $form .= "<form name=\"form_import_{$unique_id}\" id=\"form_import_{$unique_id}\" action=\"{$currentFile}\" method=\"post\" enctype=\"multipart/form-data\">"; + $form .= "<form name='form_import_{$unique_id}' id='form_import_{$unique_id}' action='{$currentFile}' method='post' enctype='multipart/form-data'>"; $showlimit = str_replace("%s", $start + 1, _AM_XNEWSLETTER_IMPORT_SHOW); - if ($limitcheck < $importsCount) { - $showlimit = str_replace("%l", $limitcheck, $showlimit); + if ($checkLimit < $importCount) { + $showlimit = str_replace("%l", $checkLimit, $showlimit); } else { - $showlimit = str_replace("%l", $importsCount, $showlimit); + $showlimit = str_replace("%l", $importCount, $showlimit); } - $showlimit = str_replace("%n", $importsCount, $showlimit); + $showlimit = str_replace("%n", $importCount, $showlimit); - $form - .= " + $form .= " + <h3>" . _AM_XNEWSLETTER_IMPORT_AFTER_READ . "</h3> <table width='100%' cellspacing='1' class='outer'> <tr> <td align='left' colspan='8'>" . $showlimit . "</td> </tr>"; $class = "odd"; - $form - .= " + $form .= " <tr> <th> </th> <th>" . _AM_XNEWSLETTER_SUBSCR_EMAIL . "</th> @@ -107,101 +104,86 @@ foreach ($importObjs as $i => $importObj) { ++$counter; - $form .= "<tr class='{$class}'>"; + $form .= "<tr class='{$class}' >"; $class = ($class == 'even') ? 'odd' : 'even'; + // import_id $form .= "<td>" . $counter; - $form .= "<input type='hidden' name='import_id_{$counter}' title='import_id_{$counter}' id='import_id_{$counter}' value='" . $importObj->getVar('import_id') . "' />"; + $form .= "<input type='hidden' name='import_id_{$counter}' title='import_id_{$counter}' id='import_id_{$counter}' value='{$importObj->getVar('import_id')}' />"; $form .= "</td>"; + // import_email + $email_text = new XoopsFormText(_AM_XNEWSLETTER_SUBSCR_EMAIL, "email_{$counter}", 25, 255, $importObj->getVar('import_email')); + $email_text->setExtra('disabled=disabled'); $form .= "<td>"; - $form .= "<input type='text' disabled=disabled name='email_{$counter}' title='" . _AM_XNEWSLETTER_SUBSCR_EMAIL . "' id='email_{$counter}' value='" . $importObj->getVar('import_email') - . "' />"; + $form .= $email_text->render(); + unset($email_text); $form .= "</td>"; - + // import_sex + $sex_select = new XoopsFormSelect(_AM_XNEWSLETTER_SUBSCR_SEX, "sex_{$counter}", $importObj->getVar('import_sex'), 1, false); + $sex_options = array( + _AM_XNEWSLETTER_SUBSCR_SEX_EMPTY => _AM_XNEWSLETTER_SUBSCR_SEX_EMPTY, + _AM_XNEWSLETTER_SUBSCR_SEX_FEMALE => _AM_XNEWSLETTER_SUBSCR_SEX_FEMALE, + _AM_XNEWSLETTER_SUBSCR_SEX_MALE => _AM_XNEWSLETTER_SUBSCR_SEX_MALE, + _AM_XNEWSLETTER_SUBSCR_SEX_COMP => _AM_XNEWSLETTER_SUBSCR_SEX_COMP, + _AM_XNEWSLETTER_SUBSCR_SEX_FAMILY => _AM_XNEWSLETTER_SUBSCR_SEX_FAMILY + ); + $sex_select->addOptionArray($sex_options); $form .= "<td>"; - $sex = $importObj->getVar('import_sex'); - $form .= "<select size='1' name='sex_{$counter}' id='sex_{$counter}' title='" . _AM_XNEWSLETTER_SUBSCR_SEX . "' "; - $form .= "value='" . $sex . "'>"; - $form .= "<option value=''"; - if ($sex == _AM_XNEWSLETTER_SUBSCR_SEX_EMPTY) { - $form .= " selected='selected'"; - } - $form .= ">" . _AM_XNEWSLETTER_SUBSCR_SEX_EMPTY . "</option>"; - $form .= "<option value='" . _AM_XNEWSLETTER_SUBSCR_SEX_FEMALE . "'"; - if ($sex == _AM_XNEWSLETTER_SUBSCR_SEX_FEMALE) { - $form .= " selected='selected'"; - } - $form .= ">" . _AM_XNEWSLETTER_SUBSCR_SEX_FEMALE . "</option>"; - $form .= "<option value='" . _AM_XNEWSLETTER_SUBSCR_SEX_MALE . "'"; - if ($sex == _AM_XNEWSLETTER_SUBSCR_SEX_MALE) { - $form .= " selected='selected'"; - } - $form .= ">" . _AM_XNEWSLETTER_SUBSCR_SEX_MALE . "</option>"; - $form .= "<option value='" . _AM_XNEWSLETTER_SUBSCR_SEX_COMP . "'"; - if ($sex == _AM_XNEWSLETTER_SUBSCR_SEX_COMP) { - $form .= " selected='selected'"; - } - $form .= ">" . _AM_XNEWSLETTER_SUBSCR_SEX_COMP . "</option>"; - $form .= "<option value='" . _AM_XNEWSLETTER_SUBSCR_SEX_FAMILY . "'"; - if ($sex == _AM_XNEWSLETTER_SUBSCR_SEX_FAMILY) { - $form .= " selected='selected'"; - } - $form .= ">" . _AM_XNEWSLETTER_SUBSCR_SEX_FAMILY . "</option>"; - $form .= "</select>\n"; + $form .= $sex_select->render(); + unset($sex_select); $form .= "</td>"; - + // import_firstname + $firstname_text = new XoopsFormText(_AM_XNEWSLETTER_SUBSCR_FIRSTNAME, "firstname_{$counter}", 25, 255, $importObj->getVar('import_firstname')); $form .= "<td>"; - $form .= "<input type='text' name='firstname_{$counter}' title='" . _AM_XNEWSLETTER_SUBSCR_FIRSTNAME . "' id='firstname_{$counter}' value='" . $importObj->getVar("import_firstname") - . "' />"; + $form .= $firstname_text->render(); + unset($firstname_text); $form .= "</td>"; + // import_lastname + $lastname_text = new XoopsFormText(_AM_XNEWSLETTER_SUBSCR_LASTNAME, "lastname_{$counter}", 25, 255, $importObj->getVar('import_lastname')); $form .= "<td>"; - $form .= "<input type='text' name='lastname_{$counter}' title='" . _AM_XNEWSLETTER_SUBSCR_LASTNAME . "' id='lastname_{$counter}' value='" . $importObj->getVar("import_lastname") - . "' />"; + $form .= $lastname_text->render(); + unset($lastname_text); $form .= "</td>"; + // import_subscr_id $form .= "<td>"; - $subscr_id = $importObj->getVar("import_subscr_id"); - $form .= "<input type='hidden' name='subscr_id_{$counter}' title='subscr_id' id='subscr_id_{$counter}' value='" . $subscr_id . "' />"; + $subscr_id = $importObj->getVar('import_subscr_id'); + $form .= "<input type='hidden' name='subscr_id_{$counter}' title='subscr_id' id='subscr_id_{$counter}' value='{$subscr_id}' />"; if ($subscr_id > 0) { $form .= "<img src='" . XNEWSLETTER_ICONS_URL . "/xn_ok.png' alt='" . _AM_XNEWSLETTER_IMPORT_EMAIL_EXIST . "' title='" . _AM_XNEWSLETTER_IMPORT_EMAIL_EXIST . "' />"; } - $form .= "</td>"; + $form .= " </td>"; + // import_catsubscr_id $form .= "<td>"; - $catsubscr_id = $importObj->getVar("import_catsubscr_id"); - $form .= "<input type='hidden' name='catsubscr_id_{$counter}' title='catsubscr_id' id='catsubscr_id_{$counter}' value='" . $catsubscr_id . "' />"; + $catsubscr_id = $importObj->getVar('import_catsubscr_id'); + $form .= "<input type='hidden' name='catsubscr_id_{$counter}' title='catsubscr_id' id='catsubscr_id_{$counter}' value='{$catsubscr_id}' />"; if ($catsubscr_id > 0) { $form .= "<img src='" . XNEWSLETTER_ICONS_URL . "/xn_ok.png' alt='" . _AM_XNEWSLETTER_IMPORT_CATSUBSCR_EXIST . "' title='" . _AM_XNEWSLETTER_IMPORT_CATSUBSCR_EXIST . "' />"; } - $form .= "</td>"; - $form .= "</td>"; - $form .= "<td>"; - $curr_cat_id = $importObj->getVar("import_cat_id"); - $form .= "<select size='1' name='cat_id_{$counter}' id=\"cat_id_{$counter}' title='cat' "; - $form .= "value='" . $curr_cat_id . "'>"; - $cat_select = "<option value='0'"; - $cat_select .= ">" . _AM_XNEWSLETTER_IMPORT_NOIMPORT . "</option>"; + $form .= " </td>"; + // import_cat_id + $cat_id_select = new XoopsFormSelect(_AM_XNEWSLETTER_CAT_NAME, "cat_id_{$counter}", $importObj->getVar('import_cat_id'), 1, false); + $cat_id_select->addOption('0', _AM_XNEWSLETTER_IMPORT_NOIMPORT); foreach ($catObjs as $cat_id => $catObj) { - $cat_select .= "<option value='" . $cat_id . "'"; - if ($curr_cat_id == $j) { - $cat_select .= " selected='selected'"; - } - $cat_select .= ">" . $catObj->getVar("cat_name") . "</option>"; + $cat_id_select->addOption($cat_id, $catObj->getVar('cat_name')); } + $form .= "<td>"; + $form .= $cat_id_select->render(); + unset($cat_id_select); + $form .= "</td>"; - $form .= $cat_select; - $form .= "</select>\n"; - - $form .= "</td>"; $form .= "</tr>"; } $form .= "<tr class='{$class}'>"; $class = ($class == 'even') ? 'odd' : 'even'; $form .= "<td colspan='8'>"; $form .= "<input type='hidden' name='counter' title='counter' id='counter' value='{$counter}' />"; - $form .= "<input type='hidden' name='limitcheck' title='limitcheck' id='limitcheck' value='" . $limitcheck . "' />"; + $form .= "<input type='hidden' name='checkLimit' title='checkLimit' id='checkLimit' value='" . $checkLimit . "' />"; $form .= "<input type='hidden' name='op' title='op' id='op' value='apply_import_form' />"; $form .= "<input type='submit' class='formButton' name='submit' id='submit' value='" . _AM_XNEWSLETTER_IMPORT_EXEC . "' title='" . _AM_XNEWSLETTER_IMPORT_EXEC . "' />"; - $form .= "</td></tr>"; + $form .= "</td>"; + $form .= "</tr>"; - $form .= "</table></form>"; + $form .= "</table>"; + $form .= "</form>"; echo $form; } break; @@ -209,50 +191,47 @@ case 'apply_import_form': //update xnewsletter with settings form_import $counter = xnewsletterRequest::getInt('counter', 0); - for ($i = 1; $i < ($counter + 1); ++$i) { $import_id = xnewsletterRequest::getString("import_id_{$i}", 'default'); $subscr_firstname = xnewsletterRequest::getString("firstname_{$i}", ''); $subscr_lastname = xnewsletterRequest::getString("lastname_{$i}", ''); $subscr_sex = xnewsletterRequest::getString("sex_{$i}", ''); $cat_id = xnewsletterRequest::getInt("cat_id_{$i}", 0); - if ($cat_id > 0) { if ($subscr_id == 0) { //update sex, firstname, lastname $sql = "UPDATE {$GLOBALS['xoopsDB']->prefix('xnewsletter_import')}"; - $sql .= " SET `import_sex`='{$subscr_sex}', `import_firstname`='{$subscr_firstname}', `import_lastname`='{$subscr_lastname}'"; + $sql .= " SET `import_sex` = '{$subscr_sex}', `import_firstname` = '{$subscr_firstname}', `import_lastname` = '{$subscr_lastname}'"; $sql .= " WHERE `import_id`={$import_id}"; $result = $GLOBALS['xoopsDB']->queryF($sql); } } //update cat_id and import_status $sql = "UPDATE {$GLOBALS['xoopsDB']->prefix('xnewsletter_import')}"; - $sql .= " SET `import_cat_id`='{$cat_id}', `import_status`=1"; - $sql .= " WHERE `import_id`={$import_id}"; + $sql .= " SET `import_cat_id` = '{$cat_id}', `import_status` = " . _XNEWSLETTER_IMPORT_STATUS_IMPORTABLE . ""; + $sql .= " WHERE `import_id` = {$import_id}"; $result = $GLOBALS['xoopsDB']->queryF($sql); } - - redirect_header("?op=exec_import_final&check_import=1&limitcheck={$limitcheck}", 0, ''); + redirect_header("?op=exec_import_final&checkImport=1&checkLimit={$checkLimit}", 0, ''); break; case 'exec_import_final': - //execute final import of all data from xnewsletter_import, where import_status = true + //execute final import of all data from xnewsletter_import, where import_status = _XNEWSLETTER_IMPORT_STATUS_IMPORTABLE //delete data from xnewsletter_import, when imported (successful or not) $indexAdmin->addItemButton(_AM_XNEWSLETTER_IMPORT_PLUGINS_AVAIL, $currentFile, 'list'); echo $indexAdmin->renderButton(); // - $ip = xoops_getenv('REMOTE_ADDR'); + $ip = xoops_getenv('REMOTE_ADDR'); $submitter = $GLOBALS['xoopsUser']->uid(); - + // + $importCount = $xnewsletter->getHandler('import')->getCount(); $importCriteria = new CriteriaCompo(); - $importCriteria->add(new Criteria('import_status', true)); - $numrows_total = $xnewsletter->getHandler('import')->getCount(); - $numrows_act = $xnewsletter->getHandler('import')->getCount($importCriteria); - if ($numrows_act > 0) { + $importCriteria->add(new Criteria('import_status', _XNEWSLETTER_IMPORT_STATUS_IMPORTABLE)); + $importCheckedCount = $xnewsletter->getHandler('import')->getCount($importCriteria); + if ($importCheckedCount > 0) { $sql = "SELECT *"; $sql .= " FROM {$GLOBALS['xoopsDB']->prefix('xnewsletter_import')}"; - $sql .= " WHERE ((import_status)=1)"; + $sql .= " WHERE ((import_status) = " . _XNEWSLETTER_IMPORT_STATUS_IMPORTABLE . ")"; $sql .= " ORDER BY `import_id` ASC"; $counter = 0; if (!$users_import = $GLOBALS['xoopsDB']->queryF($sql)) { @@ -274,35 +253,42 @@ $status = str_replace("%e", $subscr_email, _AM_XNEWSLETTER_IMPORT_RESULT_SKIP); $xnewsletter->getHandler('protocol')->protocol(0, 0, $status, _XNEWSLETTER_PROTOCOL_STATUS_SKIP_IMPORT, array('%subscr_email' => $subscr_email), true); } else { - //register email + // register email if ($subscr_id == 0) { $subscr_uid = 0; $sql = "SELECT `uid`"; $sql .= " FROM {$GLOBALS['xoopsDB']->prefix('users')}"; - $sql .= " WHERE (`email`='{$subscr_email}') LIMIT 1"; + $sql .= " WHERE (`email` = '{$subscr_email}') LIMIT 1"; if ($user = $GLOBALS['xoopsDB']->queryF($sql)) { $row_user = mysql_fetch_array($user); $subscr_uid = $row_user[0]; } unset($row_user); unset($user); - - $sql = "INSERT"; - $sql .= " INTO `{$GLOBALS['xoopsDB']->prefix('xnewsletter_subscr')}`"; - $sql .= " (`subscr_email`, `subscr_firstname`, `subscr_lastname`, `subscr_uid`, `subscr_sex`, `subscr_submitter`, `subscr_created`, `subscr_ip`, `subscr_activated`, `subscr_actoptions`)"; - $sql .= " VALUES ('{$subscr_email}', '{$subscr_firstname}', '{$subscr_lastname}', " . (int) $subscr_uid . ", '{$subscr_sex}', {$submitter}, " . time() . ",'{$ip}', 1, '')"; - if (!$GLOBALS['xoopsDB']->queryF($sql)) { + // + $subscrObj = $xnewsletter->getHandler('subscr')->create(); + $subscrObj->setVar('subscr_email', $subscr_email); + $subscrObj->setVar('subscr_firstname', $subscr_firstname); + $subscrObj->setVar('subscr_lastname', $subscr_lastname); + $subscrObj->setVar('subscr_uid', (int) $subscr_uid); + $subscrObj->setVar('subscr_sex', $subscr_sex); + $subscrObj->setVar('subscr_submitter', $submitter); + $subscrObj->setVar('subscr_created', time()); + $subscrObj->setVar('subscr_ip', $ip); + $subscrObj->setVar('subscr_activated', 1); + // add subscriber + if (!$xnewsletter->getHandler('subscr')->insert($subscrObj)) { // IN PROGRESS $status = str_replace("%e", $subscr_email, _AM_XNEWSLETTER_IMPORT_RESULT_FAILED); $xnewsletter->getHandler('protocol')->protocol(0, 0, $status, _XNEWSLETTER_PROTOCOL_STATUS_ERROR_IMPORT, array('%subscr_email' => $subscr_email), false); } else { - //register email successful + // register email successful $resulttext = $subscr_email . ': ' . _AM_XNEWSLETTER_IMPORT_RESULT_REG_OK . ' | '; $subscr_id = $GLOBALS['xoopsDB']->getInsertId(); $subscribe = true; } } else { - //email already registered + // email already registered $resulttext = $subscr_email . ': ' . _AM_XNEWSLETTER_IMPORT_EMAIL_EXIST . ' | '; $subscribe = true; } @@ -312,7 +298,7 @@ $sql = "INSERT"; $sql .= " INTO `{$GLOBALS['xoopsDB']->prefix('xnewsletter_catsubscr')}`"; $sql .= " (`catsubscr_catid`, `catsubscr_subscrid`, `catsubscr_submitter`, `catsubscr_created`)"; - $sql .= " VALUES ({$cat_id}, {$subscr_id}, {$submitter}," . time() . ")"; + $sql .= " VALUES ({$cat_id}, {$subscr_id}, {$submitter}, " . time() . ")"; if ($GLOBALS['xoopsDB']->queryF($sql)) { // IN PROGRESS $status = $resulttext . _AM_XNEWSLETTER_IMPORT_RESULT_SUBSCR_OK; @@ -320,8 +306,8 @@ //handle mailinglists $cat_mailinglist = 0; $sql = "SELECT `cat_mailinglist`"; - $sql .= " FROM {$GLOBALS['xoopsDB']->prefix("xnewsletter_cat")}"; - $sql .= " WHERE (`cat_id`={$cat_id}) LIMIT 1"; + $sql .= " FROM {$GLOBALS['xoopsDB']->prefix('xnewsletter_cat')}"; + $sql .= " WHERE (`cat_id` = {$cat_id}) LIMIT 1"; if ($cat_mls = $GLOBALS['xoopsDB']->queryF($sql)) { $cat_ml = mysql_fetch_array($cat_mls); $cat_mailinglist = $cat_ml[0]; @@ -347,39 +333,47 @@ } } } - $sql_del = "DELETE"; - $sql_del .= " FROM {$GLOBALS['xoopsDB']->prefix('xnewsletter_import')}"; - $sql_del .= " WHERE `import_id`={$import_id}"; - $result = $GLOBALS['xoopsDB']->queryF($sql_del); + $sql_delete = "DELETE"; + $sql_delete .= " FROM {$GLOBALS['xoopsDB']->prefix('xnewsletter_import')}"; + $sql_delete .= " WHERE `import_id` = {$import_id}"; + $result = $GLOBALS['xoopsDB']->queryF($sql_delete); } echo "<div style='margin-top:20px;margin-bottom:20px;color:#ff0000;font-weight:bold;font-size:14px'>"; - $resulttext = str_replace("%p", $numrows_act, _AM_XNEWSLETTER_IMPORT_FINISHED); - $resulttext = str_replace("%t", $numrows_total, $resulttext); + $resulttext = str_replace("%p", $importCheckedCount, _AM_XNEWSLETTER_IMPORT_FINISHED); + $resulttext = str_replace("%t", $importCount, $resulttext); echo XNEWSLETTER_IMG_OK . $resulttext; echo "</div>"; - $numrows_pend = $xnewsletter->getHandler('xnewsletter_import')->getCount(); - if ($numrows_pend > 0) { + $importPendingCount = $xnewsletter->getHandler('import')->getCount(); + if ($importPendingCount > 0) { $form_continue = "<form id='form_continue' enctype='multipart/form-data' method='post' action='{$currentFile}' name='form_continue'>"; $form_continue .= "<input id='submit' class='formButton' type='submit' title='" . _AM_XNEWSLETTER_IMPORT_CONTINUE . "' value='" . _AM_XNEWSLETTER_IMPORT_CONTINUE . "' name='submit'>"; - $form_continue .= '<input id="limitcheck" type="hidden" value="' . $limitcheck . '" name="limitcheck">'; - if ($check_import == 1) { + $form_continue .= "<input type='hidden' id='checkLimit' name='checkLimit' value='{$checkLimit}'>"; + if ($checkImport === 1) { //show next form for check settings - $form_continue .= '<input id="op" type="hidden" value="show_formcheck" name="op">'; + $form_continue .= "<input type='hidden' id='op' name='op' value='show_formcheck'>"; } else { - // set import_status = 1 for next package - $sql_update = "UPDATE " . $GLOBALS['xoopsDB']->prefix("xnewsletter_import") . " SET `import_status`=1 ORDER BY import_id LIMIT " . $limitcheck; + // set import_status = _XNEWSLETTER_IMPORT_STATUS_IMPORTABLE for next package + $sql_update = "UPDATE {$GLOBALS['xoopsDB']->prefix('xnewsletter_import')}"; + $sql_update .= " SET `import_status` = " . _XNEWSLETTER_IMPORT_STATUS_IMPORTABLE . ""; + $sql_update .= " ORDER BY import_id LIMIT " . $checkLimit; $GLOBALS['xoopsDB']->queryF($sql_update); //execute import for the next package - $form_continue .= '<input id="op" type="hidden" value="exec_import_final" name="op">'; + $form_continue .= "<input type='hidden' id='op' name='op' value='exec_import_final' >"; } - $form_continue .= '<input id="action_after_read" type="hidden" value="' . $action_after_read . '" name="action_after_read">'; - $form_continue .= '<input id="limitcheck" type="hidden" value="' . $limitcheck . '" name="limitcheck">'; - $form_continue .= '<input id="plugin" type="hidden" value="' . $plugin . '" name="plugin">'; - $form_continue .= '<input id="check_import" type="hidden" value="' . $check_import . '" name="check_import">'; + $form_continue .= "<input type='hidden' id='checkSubscrsAfterRead' name='checkSubscrsAfterRead' value='{$checkSubscrsAfterRead}'>"; + $form_continue .= "<input type='hidden' id='checkLimit' name='checkLimit' value='{$checkLimit}'>"; + $form_continue .= "<input type='hidden' id='plugin' name='plugin' value='{$plugin}'>"; + $form_continue .= "<input type='hidden' id='checkImport' name='checkImport' value='{$checkImport}' >"; $form_continue .= "</form>"; echo $form_continue; + } else { + $form_continue = "<form id='form_continue' enctype='multipart/form-data' method='post' action='{$currentFile}' name='form_continue'>"; + $form_continue .= "<input id='submit' class='formButton' type='submit' title='" . _AM_XNEWSLETTER_IMPORT_END . "' value='" . _AM_XNEWSLETTER_IMPORT_END . "' name='submit'>"; + $form_continue .= "<input type='hidden' id='op' name='op' value='default'>"; + $form_continue .= "</form>"; + echo $form_continue; } } else { echo _AM_XNEWSLETTER_IMPORT_NODATA; @@ -387,53 +381,51 @@ break; case 'searchdata': - //delete all existing data, import data into xnewsletter_import with plugin - //set cat_id as preselected, update information about existing registration/subscriptions - //if ($action_after_read==1) execute import else show form for check before executing import + // delete all existing import data + // import data into xnewsletter_import table with plugin + // set cat_id as preselected, update information about existing registration/subscriptions + // if ($checkSubscrsAfterRead === true) execute import else show form for check before executing import + // delete all existing data + $sql = "TRUNCATE TABLE " . $GLOBALS['xoopsDB']->prefix('xnewsletter_import'); + $result = $GLOBALS['xoopsDB']->queryF($sql); + // check and load plugin $pluginFile = XNEWSLETTER_ROOT_PATH . "/plugins/{$plugin}.php"; if (!file_exists($pluginFile)) { echo str_replace("%p", $plugin, _AM_XNEWSLETTER_IMPORT_ERROR_NO_PLUGIN); break; } require_once $pluginFile; - $function = 'xnewsletter_plugin_getdata_' . $plugin; if (!function_exists($function)) { echo "Error: require function 'xnewsletter_plugin_getdata_{$plugin}' doesn't exist"; echo str_replace("%f", $plugin, _AM_XNEWSLETTER_IMPORT_ERROR_NO_FUNCTION); break; } - - //delete all existing data - $sql = "TRUNCATE TABLE " . $GLOBALS['xoopsDB']->prefix('xnewsletter_import'); - $result = $GLOBALS['xoopsDB']->queryF($sql); - //import data into xnewsletter_import with plugin if ($plugin == 'csv') { - $csv_file = $_FILES['csv_file']['tmp_name']; - $csv_header = xnewsletterRequest::getInt('csv_header', 0); - $csv_delimiter = xnewsletterRequest::getString('csv_delimiter', ','); - //$numData = $function($cat_id, $action_after_read, $limitcheck, $skipcatsubscrexist, $csv_file, $csv_delimiter, $csv_header); - $numData = call_user_func($function, $cat_id, $action_after_read, $limitcheck, $skipcatsubscrexist, $csv_file, $csv_delimiter, $csv_header); + $csv_file = $_FILES['csv_file']['tmp_name']; + $csvSkipHeader = xnewsletterRequest::getBool('csvSkipHeader', false); + $csvDelimiter = xnewsletterRequest::getString('csvDelimiter', ','); + //$numData = $function($cat_id, $checkSubscrsAfterRead, $checkLimit, $skipcatsubscrexist, $csv_file, $csvDelimiter, $csvSkipHeader); + $numData = call_user_func($function, $cat_id, $checkSubscrsAfterRead, $checkLimit, $skipcatsubscrexist, $csv_file, $csvDelimiter, $csvSkipHeader); } else { if ($plugin == 'xoopsuser') { $arr_groups = $_POST['xoopsuser_group']; - //$numData = $function($cat_id, $action_after_read, $limitcheck, $skipcatsubscrexist, $arr_groups); - $numData = call_user_func($function, $cat_id, $action_after_read, $limitcheck, $skipcatsubscrexist, $arr_groups); + //$numData = $function($cat_id, $checkSubscrsAfterRead, $checkLimit, $skipcatsubscrexist, $arr_groups); + $numData = call_user_func($function, $cat_id, $checkSubscrsAfterRead, $checkLimit, $skipcatsubscrexist, $arr_groups); } else { - //$numData = $function($cat_id, $action_after_read, $limitcheck, $skipcatsubscrexist); - $numData = call_user_func($function, $cat_id, $action_after_read, $limitcheck, $skipcatsubscrexist); + //$numData = $function($cat_id, $checkSubscrsAfterRead, $checkLimit, $skipcatsubscrexist); + $numData = call_user_func($function, $cat_id, $checkSubscrsAfterRead, $checkLimit, $skipcatsubscrexist); } } - if ($numData > 0) { - if ($action_after_read == 0) { + if ($checkSubscrsAfterRead === false) { //execute import without check - redirect_header("{$currentFile}?op=exec_import_final&action_after_read=0&limitcheck={$limitcheck}", 0, ''); + redirect_header("{$currentFile}?op=exec_import_final&checkSubscrsAfterRead=0&checkLimit={$checkLimit}", 3, ''); } else { //show form for check before executing import - redirect_header("{$currentFile}?op=show_formcheck&action_after_read=1&plugin={$plugin}&limitcheck={$limitcheck}", 0, ''); + redirect_header("{$currentFile}?op=show_formcheck&checkSubscrsAfterRead=1&plugin={$plugin}&checkLimit={$checkLimit}", 3, ''); } } else { redirect_header($currentFile, 3, _AM_XNEWSLETTER_IMPORT_NODATA); @@ -457,8 +449,8 @@ echo str_replace("%f", $plugin, _AM_XNEWSLETTER_IMPORT_ERROR_NO_FUNCTION); break; } - //$form = $function( $cat_id, $action_after_read, $limitcheck, $skipcatsubscrexist ); - $form = call_user_func($function, $cat_id, $action_after_read, $limitcheck, $skipcatsubscrexist); + //$form = $function( $cat_id, $checkSubscrsAfterRead, $checkLimit, $skipcatsubscrexist ); + $form = call_user_func($function, $cat_id, $checkSubscrsAfterRead, $checkLimit, $skipcatsubscrexist); $form->display(); break; @@ -466,7 +458,7 @@ default: //show basic search form $importObj = $xnewsletter->getHandler('import')->create(); - $form = $importObj->getSearchForm($plugin, $action_after_read, $limitcheck); + $form = $importObj->getSearchForm($plugin, $checkSubscrsAfterRead, $checkLimit); $form->display(); break; } Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/index.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/index.php 2014-12-11 16:21:06 UTC (rev 12901) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/index.php 2014-12-13 13:16:18 UTC (rev 12902) @@ -39,6 +39,7 @@ $letterCount = $xnewsletter->getHandler('letter')->getCount(); $protocolCount = $xnewsletter->getHandler('protocol')->getCount(); $attachmentCount = $xnewsletter->getHandler('attachment')->getCount(); +$templateCount = $xnewsletter->getHandler('template')->getCount(); if ($xnewsletter->getConfig('xn_use_mailinglist') == true) { $mailinglistCount = $xnewsletter->getHandler('mailinglist')->getCount(); } @@ -60,6 +61,7 @@ $indexAdmin->addInfoBoxLine(_AM_XNEWSLETTER_LETTER, _AM_XNEWSLETTER_THEREARE_SUBSCR, $subscrCount, ($subscrCount == 0) ? _RED : _GREEN); $indexAdmin->addInfoBoxLine(_AM_XNEWSLETTER_LETTER, _AM_XNEWSLETTER_THEREARE_CATSUBSCR, $catsubscrCount, ($catsubscrCount == 0) ? _RED : _GREEN); $indexAdmin->addInfoBoxLine(_AM_XNEWSLETTER_LETTER, _AM_XNEWSLETTER_THEREARE_LETTER, $letterCount, ($letterCount == 0) ? _RED : _GREEN); +$indexAdmin->addInfoBoxLine(_AM_XNEWSLETTER_LETTER, _AM_XNEWSLETTER_THEREARE_TEMPLATE, $templateCount, ($templateCount == 0) ? _RED : _GREEN); $indexAdmin->addInfoBoxLine(_AM_XNEWSLETTER_LETTER, _AM_XNEWSLETTER_THEREARE_ATTACHMENT, $attachmentCount, ($attachmentCount == 0) ? _RED : _GREEN); $indexAdmin->addInfoBoxLine(_AM_XNEWSLETTER_LETTER, _AM_XNEWSLETTER_THEREARE_PROTOCOL, $protocolCount, ($protocolCount == 0) ? _RED : _GREEN); if ($xnewsletter->getConfig('xn_use_mailinglist') == true) { Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/letter.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/letter.php 2014-12-11 16:21:06 UTC (rev 12901) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/letter.php 2014-12-13 13:16:18 UTC (rev 12902) @@ -55,6 +55,7 @@ $letterTpl->assign('subscr_email', _AM_XNEWSLETTER_SUBSCR_EMAIL_PREVIEW); $letterTpl->assign('email', _AM_XNEWSLETTER_SUBSCR_EMAIL_PREVIEW); // new from v1.3 // letter data + $letterTpl->assign('letter_id', $letter_id); // new from v1.3 $letterTpl->assign('title', $letterObj->getVar('letter_title', 'n')); // new from v1.3 $letterTpl->assign('content', $letterObj->getVar('letter_content', 'n')); // letter attachments as link @@ -92,10 +93,10 @@ echo "<h2>{$letterObj->getVar("letter_title")}</h2>"; echo "<div style='clear:both'>"; - echo "<div style='padding:10px;border:1px solid black'>"; + echo "<div style='padding:0px; margin:0px; border:none;'>"; echo $htmlBody; echo "</div>"; - echo "<div style='padding:10px;border:1px solid black; font-family: monospace;'>"; + echo "<div style='padding:10px; margin:0px; border:1px solid black; font-family: monospace;'>"; echo nl2br(utf8_encode($textBody)); echo "</div>"; echo "</div>"; @@ -116,6 +117,7 @@ $letterCriteria->setSort('letter_id'); $letterCriteria->setOrder('DESC'); $letterCount = $xnewsletter->getHandler('letter')->getCount(); + $GLOBALS['xoopsTpl']->assign('letterCount', $letterCount); if ($letterCount > 0) { $limit = $xnewsletter->getConfig('adminperpage'); $start = xnewsletterRequest::getInt('start', 0); @@ -140,9 +142,10 @@ $letter_cat_ids = explode('|', $letter['letter_cats']); unset($letter['letter_cats']); foreach ($letter_cat_ids as $letter_cat_id) { - $catObj = $xnewsletter->getHandler('cat')->get($letter_cat_id); - $cat = $catObj->toArray(); - $letter['letter_cats']['letter_cat_id'] = $cat; + if ($catObj = $xnewsletter->getHandler('cat')->get($letter_cat_id)) { + $cat = $catObj->toArray(); + $letter['letter_cats']['letter_cat_id'] = $cat; + } } // $letter['letter_submitter_uname'] = XoopsUser::getUnameFromId($letter['letter_submitter'], 's'); Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/menu.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/menu.php 2014-12-11 16:21:06 UTC (rev 12901) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/menu.php 2014-12-13 13:16:18 UTC (rev 12902) @@ -64,18 +64,18 @@ $adminmenu[$i]['title'] = _MI_XNEWSLETTER_ADMENU8; $adminmenu[$i]['link'] = 'admin/protocol.php'; $adminmenu[$i]['icon'] = $pathImageAdmin . '/xn_protocol.png'; +if ($xnewsletter->getConfig('xn_send_in_packages') > 0) { + ++$i; + $adminmenu[$i]['title'] = _MI_XNEWSLETTER_ADMENU13; + $adminmenu[$i]['link'] = 'admin/task.php'; + $adminmenu[$i]['icon'] = $pathImageAdmin . '/xn_task.png'; +} if ($xnewsletter->getConfig('xn_use_mailinglist') == 1) { ++$i; $adminmenu[$i]['title'] = _MI_XNEWSLETTER_ADMENU9; $adminmenu[$i]['link'] = 'admin/mailinglist.php'; $adminmenu[$i]['icon'] = $pathImageAdmin . '/xn_mailinglist.png'; } -if ($xnewsletter->getConfig('xn_send_in_packages') > 0) { - ++$i; - $adminmenu[$i]['title'] = _MI_XNEWSLETTER_ADMENU13; - $adminmenu[$i]['link'] = 'admin/task.php'; - $adminmenu[$i]['icon'] = $pathImageAdmin . '/xn_task.png'; -} ++$i; $adminmenu[$i]['title'] = _MI_XNEWSLETTER_ADMENU10; $adminmenu[$i]['link'] = 'admin/bmh.php'; Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/protocol.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/protocol.php 2014-12-11 16:21:06 UTC (rev 12901) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/protocol.php 2014-12-13 13:16:18 UTC (rev 12902) @@ -29,202 +29,190 @@ $currentFile = basename(__FILE__); include_once __DIR__ . '/admin_header.php'; -xoops_cp_header(); // We recovered the value of the argument op in the URL$ -$op = xnewsletterRequest::getString('op', 'list'); - -$protocolAdmin = new ModuleAdmin(); -$letterAdmin = new ModuleAdmin(); - +$op = xnewsletterRequest::getString('op', 'list_protocols'); switch ($op) { case 'list': case 'list_protocols': - echo $letterAdmin->addNavigation($currentFile); + default: + $apply_filter = xnewsletterRequest::getBool('apply_filter', false); + // render start here + xoops_cp_header(); + // render submenu + $protocolAdmin = new ModuleAdmin(); + echo $protocolAdmin->addNavigation($currentFile); + if ($apply_filter == true) { + $protocolAdmin->addItemButton(_AM_XNEWSLETTER_PROTOCOL_SHOW_ALL, '?op=list_protocols', 'view_detailed'); + } + $protocolCount = $xnewsletter->getHandler('protocol')->getCount(); + if ($protocolCount > 0) { + $protocolAdmin->addItemButton(_AM_XNEWSLETTER_PROTOCOL_DELETE_ALL, '?op=delete_protocols', 'delete'); + } + echo $protocolAdmin->renderButton(); // - $limit = $xnewsletter->getConfig('adminperpage'); - $letterCriteria = new CriteriaCompo(); - $letterCriteria->setSort('letter_id'); - $letterCriteria->setOrder('DESC'); - $letterCount = $xnewsletter->getHandler('letter')->getCount(); - $start = xnewsletterRequest::getInt('start', 0); - $letterCriteria->setStart($start); - $letterCriteria->setLimit($limit); - $letterObjs = $xnewsletter->getHandler('letter')->getAll($letterCriteria); - if ($letterCount > $limit) { - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; - $pagenav = new XoopsPageNav($letterCount, $limit, $start, 'start', 'op=list'); - $pagenav = $pagenav->renderNav(4); - } else { - $pagenav = ''; - } - - // View Table - echo " - <table class='outer width100' cellspacing='1'> - <tr> - <th>" . _AM_XNEWSLETTER_LETTER_ID . "</th> - <th>" . _AM_XNEWSLETTER_LETTER_TITLE . "</th> - <th>" . _AM_XNEWSLETTER_PROTOCOL_LAST_STATUS . "</th> - <th>" . _AM_XNEWSLETTER_PROTOCOL_CREATED . "</th> - <th>" . _AM_XNEWSLETTER_FORMACTION . "</th> - </tr>"; - if ($letterCount > 0) { - $class = 'odd'; - //first show misc protocol items - echo "<tr class='{$class}'>"; - $class = ($class == 'even') ? 'odd' : 'even'; - echo "<td> - </td>"; - echo "<td>" . _AM_XNEWSLETTER_PROTOCOL_MISC . "</td>"; - + $protocolCount = $xnewsletter->getHandler('protocol')->getCount(); + $GLOBALS['xoopsTpl']->assign('protocolCount', $protocolCount); + if ($protocolCount > 0) { $protocolCriteria = new CriteriaCompo(); - $protocolCriteria->add(new Criteria('protocol_letter_id', '0')); - $protocolCriteria->setSort('protocol_id'); + // get filter parameters + $filter_protocol_letter_ids = xnewsletterRequest::getArray('filter_protocol_letter_ids', array()); + // + $filter_protocol_success = xnewsletterRequest::getInt('filter_protocol_success', 2); // all + // + if (isset($_REQUEST['filter_protocol_created_from']['date'])) { + $dateTimeObj = DateTime::createFromFormat(_SHORTDATESTRING, $_REQUEST['filter_protocol_created_from']['date']); + $dateTimeObj->setTime(0, 0, 0); + $filter_protocol_created_from = (int) ($dateTimeObj->getTimestamp() + $_REQUEST['filter_protocol_created_from']['time']); + unset($dateTimeObj); + } elseif (isset($_REQUEST['filter_protocol_created_from'])) { + $filter_protocol_created_from = $_REQUEST['filter_protocol_created_from']; + } else { + $filter_protocol_created_from = 3600; + } + if (isset($_REQUEST['filter_protocol_created_to']['date'])) { + $dateTimeObj = DateTime::createFromFormat(_SHORTDATESTRING, $_REQUEST['filter_protocol_created_to']['date']); + $dateTimeObj->setTime(0, 0, 0); + $filter_protocol_created_to = (int) ($dateTimeObj->getTimestamp() + $_REQUEST['filter_protocol_created_to']['time']); + unset($dateTimeObj); + } elseif (isset($_REQUEST['filter_protocol_created_to'])) { + $filter_protocol_created_to = $_REQUEST['filter_protocol_created_to']; + } else { + $filter_protocol_created_to = time(); + } + if ($apply_filter == true) { + // apply filter + if (count($filter_protocol_letter_ids) > 0) { + $protocolCriteria->add(new Criteria('protocol_letter_id', '(' . implode(',', $filter_protocol_letter_ids) . ')', 'IN')); + } + // + if ($filter_protocol_success == 0 or $filter_protocol_success == 1) { + $protocolCriteria->add(new Criteria('protocol_success', $filter_protocol_success)); + } + // + if ($filter_protocol_created_from != 0) { + $protocolCriteria->add(new Criteria('protocol_created', $filter_protocol_created_from, '>=')); + } + if ($filter_protocol_created_to != 0) { + $protocolCriteria->add(new Criteria('p... [truncated message content] |