From: <luc...@us...> - 2014-12-02 21:23:40
|
Revision: 12883 http://sourceforge.net/p/xoops/svn/12883 Author: luciorota Date: 2014-12-02 21:23:27 +0000 (Tue, 02 Dec 2014) Log Message: ----------- ! fixed some database fields length + support multiple test emails * templatize some admin side page + use DateTime object instead of strtotime() function + added xnewsletter_randomLipsum() function (in_progress) Modified Paths: -------------- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/attachment.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/letter.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/maintenance.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/template.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/import.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/letter.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/subscr.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/template.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/docs/changelog.txt XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/functions.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/task.inc.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/language/english/admin.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/language/english/common.php XoopsModules/xnewsletter/branches/luciorota/xnewsletter/sql/mysql.sql XoopsModules/xnewsletter/branches/luciorota/xnewsletter/xoops_version.php Added Paths: ----------- 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 Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/attachment.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/attachment.php 2014-12-02 21:16:19 UTC (rev 12882) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/attachment.php 2014-12-02 21:23:27 UTC (rev 12883) @@ -37,64 +37,50 @@ switch ($op) { case 'list': + case 'list_attachments': default: echo $indexAdmin->addNavigation($currentFile); echo $indexAdmin->renderButton(); // - $limit = $xnewsletter->getConfig('adminperpage'); - $attachmentCriteria = new CriteriaCompo(); - $attachmentCriteria->setSort('attachment_letter_id DESC, attachment_id'); - $attachmentCriteria->setOrder('DESC'); $attachmentCount = $xnewsletter->getHandler('attachment')->getCount(); - $start = xnewsletterRequest::getInt('start', 0); - $attachmentCriteria->setStart($start); - $attachmentCriteria->setLimit($limit); - $attachmentObjs = $xnewsletter->getHandler('attachment')->getObjects($attachmentCriteria, true); - if ($attachmentCount > $limit) { - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; - $pagenav = new XoopsPageNav($attachmentCount, $limit, $start, 'start', 'op=list'); - $pagenav = $pagenav->renderNav(4); - } else { - $pagenav = ''; - } - // output table - echo "<table class='outer' cellspacing='1'>"; - echo "<tr>"; - echo " <th>" . _AM_XNEWSLETTER_ATTACHMENT_ID . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_ATTACHMENT_LETTER_ID . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_ATTACHMENT_NAME . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_ATTACHMENT_SIZE . "<br />" . _AM_XNEWSLETTER_ATTACHMENT_TYPE . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_ATTACHMENT_SUBMITTER . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_ATTACHMENT_CREATED . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_FORMACTION . "</th>"; - echo "</tr>"; if ($attachmentCount > 0) { - $class = 'odd'; - foreach ($attachmentObjs as $attachment_id => $attachmentObj) { - $letterObj = $xnewsletter->getHandler('letter')->get($attachmentObj->getVar('attachment_letter_id')); - echo "<tr class='{$class}'>"; - $class = ($class == 'even') ? 'odd' : 'even'; - echo "<td class='center'>{$attachment_id}</td>"; - echo "<td>" . $letterObj->getVar('letter_title') . "</td>"; - echo "<td>" . $attachmentObj->getVar('attachment_name') . "</td>"; - echo "<td>"; - echo "<span title='" . $attachmentObj->getVar('attachment_size') . " B'>" . xnewsletter_bytesToSize1024($attachmentObj->getVar('attachment_size')) . "</span>"; - echo "<br />"; - echo $attachmentObj->getVar('attachment_type'); - echo "</td>"; - echo "<td>" . XoopsUser::getUnameFromId($attachmentObj->getVar('attachment_submitter'), 'S') . "</td>"; - echo "<td>" . formatTimeStamp($attachmentObj->getVar('attachment_created'), 'S') . "</td>"; - echo "<td class='center'>"; - echo " <a href='?op=edit_attachment&attachment_id={$attachment_id}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_edit.png alt='" . _EDIT . "' title='" . _EDIT . "' /></a>"; - echo " "; - echo " <a href='?op=delete_attachment&attachment_id={$attachment_id}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_delete.png alt='" . _DELETE . "' title='" . _DELETE . "' /></a>"; - echo "</td>"; + $attachmentCriteria = new CriteriaCompo(); + // + $attachmentCriteria->setSort('attachment_letter_id DESC, attachment_id'); + $attachmentCriteria->setOrder('DESC'); + // + $start = xnewsletterRequest::getInt('start', 0); + $limit = $xnewsletter->getConfig('adminperpage'); + $attachmentCriteria->setStart($start); + $attachmentCriteria->setLimit($limit); + // + if ($attachmentCount > $limit) { + include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; + $pagenav = new XoopsPageNav($attachmentCount, $limit, $start, 'start', 'op=list'); + $pagenav = $pagenav->renderNav(4); + } else { + $pagenav = ''; } + $GLOBALS['xoopsTpl']->assign('attachments_pagenav', $pagenav); + // + $attachmentObjs = $xnewsletter->getHandler('attachment')->getObjects($attachmentCriteria, true); + $attachments = $xnewsletter->getHandler('attachment')->getObjects($attachmentCriteria, true, false); // as array + foreach ($attachments as $attachment_id => $attachment) { + $letterObj = $xnewsletter->getHandler('letter')->get($attachment['attachment_letter_id']); + $attachment['attachment_letter_title'] = $letterObj->getVar('letter_title'); +// IN PROGRESS +// IN PROGRESS +// IN PROGRESS + $attachment['attachment_submitter_uname'] = XoopsUser::getUnameFromId($attachment['attachment_submitter'], 'S'); + $attachment['attachment_created_formatted'] = formatTimestamp($template['attachment_created'], $xnewsletter->getConfig('dateformat')); + $GLOBALS['xoopsTpl']->append('attachments', $attachment); + } + // + $GLOBALS['xoopsTpl']->display("db:{$xnewsletter->getModule()->dirname()}_admin_attachments_list.tpl"); + } else { + echo _CO_XNEWSLETTER_WARNING_NOATTACHMENTS; } - echo "</table>"; - echo "<br />"; - echo "<div>" . $pagenav . "</div>"; - echo "<br />"; + include_once __DIR__ . '/admin_footer.php'; break; case 'edit_attachment': @@ -105,6 +91,7 @@ $attachmentObj = $xnewsletter->getHandler('attachment')->get($attachment_id); $form = $attachmentObj->getForm(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'save_attachment': @@ -123,6 +110,7 @@ $form = $attachmentObj->getForm(); $form->display(); } + include_once __DIR__ . '/admin_footer.php'; break; case 'delete_attachment': @@ -143,7 +131,6 @@ sprintf(_AM_XNEWSLETTER_FORMSUREDEL, $attachmentObj->getVar('attachment_letter_id')) ); } + include_once __DIR__ . '/admin_footer.php'; break; } - -include_once __DIR__ . '/admin_footer.php'; Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/letter.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/letter.php 2014-12-02 21:16:19 UTC (rev 12882) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/letter.php 2014-12-02 21:23:27 UTC (rev 12883) @@ -29,7 +29,6 @@ $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'); @@ -38,13 +37,16 @@ switch ($op) { case 'show_preview': case 'show_letter_preview': + // render start here + xoops_cp_header(); + // render submenu echo $indexAdmin->addNavigation($currentFile); $indexAdmin->addItemButton(_AM_XNEWSLETTER_LETTERLIST, '?op=list', 'list'); echo $indexAdmin->renderButton(); // + $letterObj = $xnewsletter->getHandler('letter')->get($letter_id); + // $letterTpl = new XoopsTpl(); - - $letterObj = $xnewsletter->getHandler('letter')->get($letter_id); // subscr data $letterTpl->assign('sex', _AM_XNEWSLETTER_SUBSCR_SEX_PREVIEW); $letterTpl->assign('salutation', _AM_XNEWSLETTER_SUBSCR_SEX_PREVIEW); // new from v1.3 @@ -97,124 +99,109 @@ echo nl2br(utf8_encode($textBody)); echo "</div>"; echo "</div>"; + include_once __DIR__ . '/admin_footer.php'; break; + case 'list': case 'list_letters': default: + // render start here + xoops_cp_header(); + // render submenu echo $indexAdmin->addNavigation($currentFile); $indexAdmin->addItemButton(_AM_XNEWSLETTER_NEWLETTER, '?op=new_letter', 'add'); echo $indexAdmin->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')->getObjects($letterCriteria, true); - - // pagenav - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; - $pagenav = new XoopsPageNav($letterCount, $limit, $start, 'start', 'op=list'); - $pagenav = $pagenav->renderNav(); - - // View Table - echo "<table class='outer' cellspacing='1'> - <tr> - <th>" . _AM_XNEWSLETTER_LETTER_ID . "</th> - <th>" . _AM_XNEWSLETTER_LETTER_TITLE . "</th> - <th>" . _AM_XNEWSLETTER_LETTER_CATS . "</th> - <th style='white-space: nowrap'>" . _AM_XNEWSLETTER_LETTER_SUBMITTER . "<br />" . _AM_XNEWSLETTER_LETTER_CREATED . "</th> - <th style='white-space: nowrap'>" . _AM_XNEWSLETTER_LETTER_SENDER . "<br />" . _AM_XNEWSLETTER_LETTER_SENT . "</th> - <th>" . _AM_XNEWSLETTER_LETTER_TEMPLATE . "</th> - <th>" . _AM_XNEWSLETTER_LETTER_ATTACHMENT . "<br />" . _AM_XNEWSLETTER_LETTER_SIZE . "</th> - <th>" . _AM_XNEWSLETTER_LETTER_ACCOUNT . "</th> - <th>" . _AM_XNEWSLETTER_LETTER_EMAIL_TEST . "</th> - <th>" . _AM_XNEWSLETTER_PROTOCOL_LAST_STATUS . "</th> - <th>" . _AM_XNEWSLETTER_FORMACTION . "</th> - </tr>"; if ($letterCount > 0) { - $class = 'odd'; + $limit = $xnewsletter->getConfig('adminperpage'); + $start = xnewsletterRequest::getInt('start', 0); + $letterCriteria->setStart($start); + $letterCriteria->setLimit($limit); + // + $letterObjs = $xnewsletter->getHandler('letter')->getObjects($letterCriteria, true); + $letters = $xnewsletter->getHandler('letter')->getObjects($letterCriteria, true, false); // as array + // pagenav + if ($letterCount > $limit) { + include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; + $pagenav = new XoopsPageNav($letterCount, $limit, $start, 'start', 'op=list'); + $pagenav = $pagenav->renderNav(); + } else { + $pagenav = ''; + } + $GLOBALS['xoopsTpl']->assign('letters_pagenav', $pagenav); + // fill letters array foreach ($letterObjs as $letter_id => $letterObj) { - echo "<tr class='{$class}'>"; - $class = ($class == 'even') ? 'odd' : 'even'; - - echo "<td>{$letter_id}</td>"; - - echo "<td>{$letterObj->getVar('letter_title')}</td>"; - - echo "<td style='white-space: nowrap'>"; - $letter_cat_ids = explode('|', $letterObj->getVar('letter_cats')); + $letter = $letterObj->toArray(); + // + $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); - if (is_object($catObj)) { - echo $catObj->getVar('cat_name') . " <a href='cat.php?op=edit_cat&cat_id={$catObj->getVar('cat_id')}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_edit.png alt='" . _EDIT - . "' title='" . _EDIT . "' style='padding:1px' /></a>"; - } else { - $letter_cats .= 'Invalid cat_name'; - } - echo "<br />"; + $cat = $catObj->toArray(); + $letter['letter_cats']['letter_cat_id'] = $cat; } - echo "</td>"; - - echo "<td>" . XoopsUser::getUnameFromId($letterObj->getVar('letter_submitter'), 's') . "<br />" . formatTimeStamp($letterObj->getVar('letter_created'), 's') . "</td>"; - - echo "<td>"; - if ($letterObj->getVar('letter_sender') != 0) { - echo XoopsUser::getUnameFromId($letterObj->getVar('letter_sender'), 's'); - } - echo "<br />"; - if ($letterObj->getVar('letter_sent') != false) { - echo formatTimeStamp($letterObj->getVar('letter_sent'), 's'); - } - echo "</td>"; - - echo "<td>"; - preg_match('/db:([0-9]*)/', $letterObj->getVar('letter_template'), $matches); + // + $letter['letter_submitter_uname'] = XoopsUser::getUnameFromId($letter['letter_submitter'], 's'); + $letter['letter_created_formatted'] = formatTimeStamp($letter['letter_created'], 's'); + // + $letter['letter_sender_uname'] = ($letter['letter_sender'] != 0) ? XoopsUser::getUnameFromId($letter['letter_sender'], 's') : ''; + $letter['letter_sent_formatted'] = ($letter['letter_sent'] != false) ? formatTimeStamp($letter['letter_sent'], 's') : ''; + // + preg_match('/db:([0-9]*)/', $letter['letter_template'], $matches); if (isset($matches[1]) && ($templateObj = $xnewsletter->getHandler('template')->get((int)$matches[1]))) { - echo "db:" . $templateObj->getVar('template_title'); - echo " <a href='template.php?op=edit_template&template_id={$templateObj->getVar('template_id')}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_edit.png alt='" . _EDIT . "' title='" - . _EDIT . "' style='padding:1px' /></a>"; + $template = $templateObj->toArray(); + $template['template_submitter_uname'] = XoopsUser::getUnameFromId($template['template_submitter'], 's'); + $template['template_created_formatted'] = formatTimeStamp($template['template_created'], 's'); } else { - echo "file:" . $letterObj->getVar('letter_template'); + $template_path = XOOPS_ROOT_PATH . '/modules/xnewsletter/language/' . $GLOBALS['xoopsConfig']['language'] . '/templates/'; + if (!is_dir($template_path)) { + $template_path = XOOPS_ROOT_PATH . '/modules/xnewsletter/language/english/templates/'; + } + $templateFile = $template_path . $letter['letter_template'] . '.tpl'; + $template = array( + 'template_id' => null, + 'template_title' => $letter['letter_template'], + 'template_description' => '', + 'template_content' => file_get_contents($templateFile), + 'template_submitter' => null, + 'template_submitter_uname' => '', + 'template_created' => filemtime($templateFile), + 'template_created_formatted' => formatTimeStamp(filemtime($templateFile), 's') + ); } - echo "</td>"; - + unset($letter['letter_template']); + $letter['letter_template'] = $template; + // $attachmentCriteria = new CriteriaCompo(); $attachmentCriteria->add(new Criteria('attachment_letter_id', $letter_id)); $attachmentCount = $xnewsletter->getHandler('attachment')->getCount($attachmentCriteria); $attachmentObjs = $xnewsletter->getHandler('attachment')->getObjects($attachmentCriteria, true); - echo "<td style='white-space: nowrap'>"; - //echo "({$attachmentCount})"; $attachmentsSize = 0; - if ($attachmentCount > 0) { - $attachmentsSize = 0; - echo "<ul>"; - foreach ($attachmentObjs as $attachment_id => $attachmentObj) { - $attachmentsSize = $attachmentsSize + $attachmentObj->getVar('attachment_size'); - $size = xnewsletter_bytesToSize1024($attachmentObj->getVar('attachment_size')); - echo "<li><span title='" . $attachmentObj->getVar('attachment_type') . " " . $size . "'>{$attachmentObj->getVar('attachment_name')}</span></li>"; - } - echo "</ul>"; - echo _AM_XNEWSLETTER_LETTER_ATTACHMENT_TOTALSIZE . ": <span title='" . $attachmentsSize . " Bytes'>" . xnewsletter_bytesToSize1024($attachmentsSize) . "</span>"; - echo "<br />"; + foreach ($attachmentObjs as $attachment_id => $attachmentObj) { + $attachment = $attachmentObj->toArray(); + $attachmentsSize = $attachmentsSize + $attachment['attachment_size']; + $attachment['attachment_size1024'] = xnewsletter_bytesToSize1024($attachment['attachment_size']); + $letter['letter_attachments'][$attachment_id] = $attachment; } + $letter['letter_attachments_size'] = $attachmentsSize; + $letter['letter_attachments_size1024'] = xnewsletter_bytesToSize1024($attachmentsSize); + // $emailSize = xnewsletter_emailSize($letter_id); - echo _AM_XNEWSLETTER_LETTER_EMAIL_SIZE . ": <span title='" . $emailSize . " Bytes (" . _AM_XNEWSLETTER_LETTER_EMAIL_SIZE_DESC . ")'>" . xnewsletter_bytesToSize1024($emailSize) - . "</span>"; - echo "</td>"; - + $letter['letter_size'] = $emailSize; + $letter['letter_size1024'] = xnewsletter_bytesToSize1024($emailSize); + // $accountCriteria = new CriteriaCompo(); $accountCriteria->setSort('accounts_id'); $accountCriteria->setOrder('ASC'); - $accountObj = $xnewsletter->getHandler('accounts')->get($letterObj->getVar('letter_account')); - $letter_account = ($accountObj) ? $accountObj->getVar('accounts_name') : _NONE; - echo "<td>{$letter_account}</td>"; - - echo "<td>{$letterObj->getVar('letter_email_test')} </td>"; - + $accountObj = $xnewsletter->getHandler('accounts')->get($letter['letter_account']); + $account = $accountObj->toArray(); + unset($letter['letter_account']); + $letter['letter_account'] = $account; + // // take last item protocol_subscriber_id=0 from table protocol as actual status $protocolCriteria = new CriteriaCompo(); $protocolCriteria->add(new Criteria('protocol_letter_id', $letter_id)); @@ -222,46 +209,26 @@ $protocolCriteria->setSort('protocol_id'); $protocolCriteria->setOrder('DESC'); $protocolCriteria->setLimit(1); - $protocolObjs = $xnewsletter->getHandler('protocol')->getAll($protocolCriteria); -// IN PROGRESS - $protocol_status = ''; - $protocol_letter_id = 0; - foreach ($protocolObjs as $protocolObj) { -// IN PROGRESS - $protocol_status .= $protocolObj->getVar('protocol_status'); - $protocol_letter_id = $protocolObj->getVar('protocol_letter_id'); + $protocolObjs = $xnewsletter->getHandler('protocol')->getAll($protocolCriteria); + foreach ($protocolObjs as $protocol_id => $protocolObj) { + $protocol = $protocolObj->toArray(); + $letter['letter_protocols'][$protocol_id] = $protocol; } - echo "<td class='center'><a href=' protocol.php?op=list_letter&letter_id={$protocol_letter_id}'>{$protocol_status}</a></td>"; - - echo "<td class='center'>"; - echo " <a href='?op=edit_letter&letter_id={$letter_id}'><img src='" . XNEWSLETTER_ICONS_URL . "/xn_edit.png' alt='" . _EDIT . "' title='" . _EDIT . "' style='padding:1px' /></a>"; - echo " <a href='?op=clone_letter&letter_id={$letter_id}'><img src='" . XNEWSLETTER_ICONS_URL . "/xn_clone.png' alt='" . _CLONE . "' title='" . _CLONE - . "' style='padding:1px' /></a>"; - echo " <a href='?op=delete_letter&letter_id={$letter_id}'><img src='" . XNEWSLETTER_ICONS_URL . "/xn_delete.png' alt='" . _DELETE . "' title='" . _DELETE - . "' style='padding:1px' /></a>"; - echo " <br />"; - echo " <a href='sendletter.php?op=send_test&letter_id={$letter_id}'><img src='" . XNEWSLETTER_ICONS_URL . "/xn_sendtest.png' alt='" . _AM_XNEWSLETTER_LETTER_ACTION_SENDTEST - . "' title='" . _AM_XNEWSLETTER_LETTER_ACTION_SENDTEST . "' style='padding:1px' /></a>"; - echo " <a href='sendletter.php?op=send_letter&letter_id={$letter_id}'><img src='" . XNEWSLETTER_ICONS_URL . "/xn_send.png' alt='" . _AM_XNEWSLETTER_LETTER_ACTION_SEND . "' title='" - . _AM_XNEWSLETTER_LETTER_ACTION_SEND . "' style='padding:1px' /></a>"; - echo " <a href='sendletter.php?op=resend_letter&letter_id={$letter_id}'><img src='" . XNEWSLETTER_ICONS_URL . "/xn_resend.png' alt='" . _AM_XNEWSLETTER_LETTER_ACTION_RESEND - . "' title='" . _AM_XNEWSLETTER_LETTER_ACTION_RESEND . "' style='padding:1px' /></a>"; - echo " <br />"; - echo " <a href='?op=show_preview&letter_id={$letter_id}'><img src='" . XNEWSLETTER_ICONS_URL . "/xn_preview.png' alt='" . _AM_XNEWSLETTER_LETTER_ACTION_PREVIEW . "' title='" - . _AM_XNEWSLETTER_LETTER_ACTION_PREVIEW . "' style='padding:1px' /></a>"; - echo " <a href='" . XNEWSLETTER_URL . "/print.php?letter_id={$letter_id}' target='_BLANK' ><img src='" . XNEWSLETTER_ICONS_URL . "/printer.png' alt='" - . _AM_XNEWSLETTER_LETTER_ACTION_PRINT . "' title='" . _AM_XNEWSLETTER_LETTER_ACTION_PRINT . "' style='padding:1px' /></a>"; - echo "</td>"; - echo "</tr>"; + // + $GLOBALS['xoopsTpl']->append('letters', $letter); } + // + $GLOBALS['xoopsTpl']->display("db:{$xnewsletter->getModule()->dirname()}_admin_letters_list.tpl"); + } else { + echo _CO_XNEWSLETTER_WARNING_NOLETTERS; } - echo "</table>"; - echo "<br />"; - echo "<div>{$pagenav}</div>"; - echo "<br />"; + include_once __DIR__ . '/admin_footer.php'; break; case 'new_letter': + // render start here + xoops_cp_header(); + // render submenu echo $indexAdmin->addNavigation($currentFile); $indexAdmin->addItemButton(_AM_XNEWSLETTER_LETTERLIST, '?op=list', 'list'); echo $indexAdmin->renderButton(); @@ -269,9 +236,13 @@ $letterObj = $xnewsletter->getHandler('letter')->create(); $form = $letterObj->getForm(false, true); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'edit_letter': + // render start here + xoops_cp_header(); + // render submenu echo $indexAdmin->addNavigation($currentFile); $indexAdmin->addItemButton(_AM_XNEWSLETTER_NEWLETTER, '?op=new_letter', 'add'); $indexAdmin->addItemButton(_AM_XNEWSLETTER_LETTERLIST, '?op=list', 'list'); @@ -280,9 +251,13 @@ $letterObj = $xnewsletter->getHandler('letter')->get($letter_id); $form = $letterObj->getForm(false, true); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'delete_attachment': + // render start here + xoops_cp_header(); + // render submenu echo $indexAdmin->addNavigation($currentFile); $indexAdmin->addItemButton(_AM_XNEWSLETTER_NEWLETTER, '?op=new_letter', 'add'); $indexAdmin->addItemButton(_AM_XNEWSLETTER_LETTERLIST, '?op=list', 'list'); @@ -319,6 +294,7 @@ } else { echo $attachmentObj->getHtmlErrors(); } + include_once __DIR__ . '/admin_footer.php'; break; case 'save_letter': @@ -432,6 +408,9 @@ case 'clone_letter': case 'copy_letter': + // render start here + xoops_cp_header(); + // render submenu echo $indexAdmin->addNavigation($currentFile); $indexAdmin->addItemButton(_AM_XNEWSLETTER_NEWLETTER, '?op=new_letter', 'add'); $indexAdmin->addItemButton(_AM_XNEWSLETTER_LETTERLIST, '?op=list', 'list'); @@ -443,6 +422,7 @@ $letterObj->setVar('letter_title', sprintf(_AM_XNEWSLETTER_LETTER_CLONED, $letterObj->getVar('letter_title'))); $form = $letterObj->getForm($currentFile, true); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'delete_letter': @@ -467,8 +447,15 @@ echo $letterObj->getHtmlErrors(); } } else { - xoops_confirm(array('ok' => true, 'letter_id' => $letter_id, 'op' => 'delete_letter'), $_SERVER['REQUEST_URI'], sprintf(_AM_XNEWSLETTER_FORMSUREDEL, $letterObj->getVar('letter_title'))); + // render start here + xoops_cp_header(); + // render confirm form + xoops_confirm( + array('ok' => true, 'letter_id' => $letter_id, 'op' => 'delete_letter'), + $_SERVER['REQUEST_URI'], + sprintf(_AM_XNEWSLETTER_FORMSUREDEL, $letterObj->getVar('letter_title')) + ); + include_once __DIR__ . '/admin_footer.php'; } break; } -include_once __DIR__ . '/admin_footer.php'; Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/maintenance.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/maintenance.php 2014-12-02 21:16:19 UTC (rev 12882) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/maintenance.php 2014-12-02 21:23:27 UTC (rev 12883) @@ -175,7 +175,10 @@ break; case 'del_oldsubscr': - $time = strtotime($_POST['del_date']); + $dateTimeObj = DateTime::createFromFormat(_SHORTDATESTRING, $_POST['del_date']); + $dateTimeObj->setTime(0, 0, 0); + $time = $dateTimeObj->getTimestamp(); + unset($dateTimeObj); if ($time >= time() || $time == 0) { $subscrCount = -1; // for error } else { Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php 2014-12-02 21:16:19 UTC (rev 12882) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php 2014-12-02 21:23:27 UTC (rev 12883) @@ -29,38 +29,21 @@ $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'); -$subscr_id = xnewsletterRequest::getInt('subscr_id', 0); -$filter_subscr = xnewsletterRequest::getString('filter_subscr', '='); -$filter_subscr_firstname = xnewsletterRequest::getString('filter_subscr_firstname', ''); -$filter_subscr_lastname = xnewsletterRequest::getString('filter_subscr_lastname', ''); -$filter_subscr_email = xnewsletterRequest::getString('filter_subscr_email', ''); - -if ($op == 'apply_filter') { - if ($filter_subscr == 'LIKE' && !$filter_subscr_firstname == '') { - $filter_subscr_firstname = "%{$filter_subscr_firstname}%"; - } - if ($filter_subscr == 'LIKE' && !$filter_subscr_lastname == '') { - $filter_subscr_lastname = "%{$filter_subscr_lastname}%"; - } - if ($filter_subscr == 'LIKE' && !$filter_subscr_email == '') { - $filter_subscr_email = "%{$filter_subscr_email}%"; - } - if ($filter_subscr_firstname == '' && $filter_subscr_lastname == '' && $filter_subscr_email == '') { - $op = 'list'; - } -} - $subscrAdmin = new ModuleAdmin(); switch ($op) { case 'show_catsubscr': + $subscr_id = xnewsletterRequest::getInt('subscr_id', 0); + // render start here + xoops_cp_header(); + // render submenu echo $subscrAdmin->addNavigation($currentFile); + // $apply_filter = xnewsletterRequest::getString('apply_filter', 'list'); - $linklist = "?op=$apply_filter&filter_subscr={$filter_subscr}"; + $linklist = "?op=$apply_filter&filter_subscr={$filter_subscr}"; $linklist .= "&filter_subscr_firstname={$filter_subscr_firstname}"; $linklist .= "&filter_subscr_lastname={$filter_subscr_lastname}"; $linklist .= "&filter_subscr_email={$filter_subscr_email}"; @@ -98,11 +81,16 @@ echo "</td>"; echo "</tr>"; echo "</table>"; + include_once __DIR__ . '/admin_footer.php'; break; case 'list': + case 'list_subscrs': case 'apply_filter': default: + // render start here + xoops_cp_header(); + // render submenu echo $subscrAdmin->addNavigation($currentFile); $subscrAdmin->addItemButton(_AM_XNEWSLETTER_NEWSUBSCR, '?op=new_subscr', 'add'); if ($op == 'apply_filter') { @@ -110,163 +98,90 @@ } echo $subscrAdmin->renderButton(); // - $limit = $xnewsletter->getConfig('adminperpage'); - $subscrCriteria = new CriteriaCompo(); - - if ($op == 'apply_filter') { - if ($filter_subscr_firstname != '') { - $subscrCriteria->add(new Criteria('subscr_firstname', $filter_subscr_firstname, $filter_subscr)); - } - if ($filter_subscr_lastname != '') { - $subscrCriteria->add(new Criteria('subscr_lastname', $filter_subscr_lastname, $filter_subscr)); - } - if ($filter_subscr_email != '') { - $subscrCriteria->add(new Criteria('subscr_email', $filter_subscr_email, $filter_subscr)); - } - } - $subscrCriteria->setSort('subscr_id'); - $subscrCriteria->setOrder('DESC'); - $subscrCount = $xnewsletter->getHandler('subscr')->getCount($subscrCriteria); - $start = xnewsletterRequest::getInt('start', 0); - $subscrCriteria->setStart($start); - $subscrCriteria->setLimit($limit); - $subscrObjs = $xnewsletter->getHandler('subscr')->getAll($subscrCriteria); - if ($subscrCount > $limit) { - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; - $linklist = "op={$op}"; - $linklist .= "&filter_subscr={$filter_subscr}"; - $linklist .= "&filter_subscr_firstname={$filter_subscr_firstname}"; - $linklist .= "&filter_subscr_lastname={$filter_subscr_lastname}"; - $linklist .= "&filter_subscr_email={$filter_subscr_email}"; - $pagenav = new XoopsPageNav($subscrCount, $limit, $start, 'start', $linklist); - $pagenav = $pagenav->renderNav(4); - } else { - $pagenav = ''; - } - if ($filter_subscr == 'LIKE') { - //clean up var for refill form - $filter_subscr_firstname = str_replace('%', '', $filter_subscr_firstname); - $filter_subscr_lastname = str_replace('%', '', $filter_subscr_lastname); - $filter_subscr_email = str_replace('%', '', $filter_subscr_email); - } - - // View Table - echo "<table class='outer width100' cellspacing='1'>"; - echo "<tr>"; - echo " <th class='center'><input type='checkbox' title='" . _ALL . "'onClick='toggle(this);'></th>"; - echo " <th>" . _AM_XNEWSLETTER_SUBSCR_ID . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_SUBSCR_SEX . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_SUBSCR_FIRSTNAME . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_SUBSCR_LASTNAME . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_SUBSCR_EMAIL . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_SUBSCR_UID . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_SUBSCR_CREATED . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_FORMACTION . "</th>"; - echo "</tr>"; - - if ($subscrCount > 0) { - $class = 'odd'; - echo "<form id='form_filter' enctype='multipart/form-data' method='post' action='{$currentFile}' name='form_filter'>"; - $inputstyle = '';//style='border: 1px solid #000000;"; - echo "<tr class='{$class}'>"; - $class = ($class == 'even') ? 'odd' : 'even'; - echo " <td class='center'> </td>"; - echo " <td colspan='2'>" . _SEARCH . ": "; - echo " <select id='filter_subscr' title='" . _SEARCH . "' name='filter_subscr' size='1'>"; - echo " <option value='='" . (($filter_subscr == "=") ? " selected='selected'" : "") . ">" . _AM_XNEWSLETTER_SEARCH_EQUAL . "</option>"; - echo " <option value='LIKE'" . (($filter_subscr == "LIKE") ? " selected='selected'" : "") . ">" . _AM_XNEWSLETTER_SEARCH_CONTAINS . "</option>"; - echo " </select>"; - echo " </td>"; - echo " <td><input {$inputstyle} id='filter_subscr_firstname' type='text' value='{$filter_subscr_firstname}' maxlength='50' size='15' title='' name='filter_subscr_firstname'></td>"; - echo " <td><input {$inputstyle} id='filter_subscr_lastname' type='text' value='{$filter_subscr_lastname}' maxlength='50' size='15' title='' name='filter_subscr_lastname'></td>"; - echo " <td><input {$inputstyle} id='filter_subscr_email' type='text' value='{$filter_subscr_email}' maxlength='255' size='40' title='' name='filter_subscr_email'></td>"; - echo " <td> </td>"; - echo " <td> </td>"; - echo " <td class='center'><input id='filter_submit' class='formButton' type='submit' title='" . _SEARCH . "' value='" . _SEARCH . "' name='filter_submit'></td>"; - echo "</tr>"; - echo "<input id='filter_op' type='hidden' value='apply_filter' name='op'>"; - echo "</form>"; - - echo "<script language='JavaScript'> - function toggle(source) - { - checkboxes = document.getElementsByName('subscr_ids[]'); - for (var i=0, n=checkboxes.length;i<n;i++) { - checkboxes[i].checked = source.checked; + $subsrCount = $xnewsletter->getHandler('subscr')->getCount(); + if ($subsrCount > 0) { + // get filter parameters + $filter_subscr = xnewsletterRequest::getString('filter_subscr', '='); + $filter_subscr_firstname = xnewsletterRequest::getString('filter_subscr_firstname', ''); + $filter_subscr_lastname = xnewsletterRequest::getString('filter_subscr_lastname', ''); + $filter_subscr_email = xnewsletterRequest::getString('filter_subscr_email', ''); + if ($op == 'apply_filter') { + if ($filter_subscr == 'LIKE' && !$filter_subscr_firstname == '') { + $filter_subscr_firstname = "%{$filter_subscr_firstname}%"; } - } - </script>"; - echo "<script language='JavaScript'> - function check(source) - { - checkboxes = document.getElementsByName('subscr_ids[]'); - for (var i=0, n=checkboxes.length;i<n;i++) { - if (checkboxes[i].checked) return true; + if ($filter_subscr == 'LIKE' && !$filter_subscr_lastname == '') { + $filter_subscr_lastname = "%{$filter_subscr_lastname}%"; } - - return false; + if ($filter_subscr == 'LIKE' && !$filter_subscr_email == '') { + $filter_subscr_email = "%{$filter_subscr_email}%"; + } + if ($filter_subscr_firstname == '' && $filter_subscr_lastname == '' && $filter_subscr_email == '') { + $op = 'list'; + } } - </script>"; - - echo "<form id='form_action' onsubmit='return check(this);' enctype='multipart/form-data' method='post' action='{$currentFile}' name='form_action'>"; - foreach ($subscrObjs as $subscr_id => $subscrObj) { - echo "<tr class='{$class}'>"; - $class = ($class == 'even') ? 'odd' : 'even'; - echo " <td class='center'><input type='checkbox' name='subscr_ids[]' value='{$subscr_id}'></td>"; - echo " <td>" . $subscr_id . "</td>"; - echo " <td>" . $subscrObj->getVar('subscr_sex') . " </td>"; - echo " <td>" . $subscrObj->getVar('subscr_firstname') . " </td>"; - echo " <td>" . $subscrObj->getVar('subscr_lastname') . " </td>"; - echo " <td>" . $subscrObj->getVar('subscr_email') . " </td>"; - echo " <td>"; - if ($subscrObj->getVar('subscr_uid') > 0) { - echo XoopsUser::getUnameFromId($subscrObj->getVar('subscr_uid'), 'S'); - } else { - echo "-"; + // get filtered subscrs criteria + $subscrCriteria = new CriteriaCompo(); + if ($op == 'apply_filter') { + if ($filter_subscr_firstname != '') { + $subscrCriteria->add(new Criteria('subscr_firstname', $filter_subscr_firstname, $filter_subscr)); } - echo " </td>"; - echo " <td>"; - if ($subscrObj->getVar('subscr_activated') == 0) { - echo '<img src="' . XNEWSLETTER_ICONS_URL . '/xn_failed.png" alt="' . _AM_XNEWSLETTER_SUBSCRWAIT . '" title="' . _AM_XNEWSLETTER_SUBSCRWAIT . '" /> '; - } else { - echo '<img src="' . XNEWSLETTER_ICONS_URL . '/xn_ok.png" alt="' . _MA_XNEWSLETTER_SUBSCRIPTION_REG_CLOSED . '" title="' . _MA_XNEWSLETTER_SUBSCRIPTION_REG_CLOSED . '" /> '; + if ($filter_subscr_lastname != '') { + $subscrCriteria->add(new Criteria('subscr_lastname', $filter_subscr_lastname, $filter_subscr)); } - echo formatTimestamp($subscrObj->getVar("subscr_created"), $xnewsletter->getConfig('dateformat')) . " [" . $subscrObj->getVar('subscr_ip') . "]"; - echo " </td>"; - - echo " <td class='center' nowrap='nowrap'>"; - echo " <a href='?op=edit_subscr&subscr_id={$subscr_id}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_edit.png alt='" . _EDIT . "' title='" . _EDIT . "' /></a>"; - echo " "; - echo " <a href='?op=delete_subscr&subscr_id={$subscr_id}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_delete.png alt='" . _DELETE . "' title='" . _DELETE . "' /></a>"; - echo " "; - echo " <a href='?op=show_catsubscr&subscr_id={$subscr_id}&filter_subscr={$filter_subscr}&filter_subscr_firstname={$filter_subscr_firstname}&filter_subscr_lastname={$filter_subscr_lastname}&filter_subscr_email={$filter_subscr_email}&apply_filter={$op}'>"; - echo " <img src=" . XNEWSLETTER_ICONS_URL . "/xn_details.png alt='" . _AM_XNEWSLETTER_DETAILS . "' title='" . _AM_XNEWSLETTER_DETAILS . "' />"; - echo " </a>"; - echo " </td>"; - echo "</tr>"; - -// $filter_subscr = xnewsletterRequest::getString('filter_subscr', '='); -// $filter_subscr_firstname = xnewsletterRequest::getString('filter_subscr_firstname', ''); -// $filter_subscr_lastname = xnewsletterRequest::getString('filter_subscr_lastname', ''); -// $filter_subscr_email = xnewsletterRequest::getString('filter_subscr_email', ''); + if ($filter_subscr_email != '') { + $subscrCriteria->add(new Criteria('subscr_email', $filter_subscr_email, $filter_subscr)); + } } - echo "<tr>"; - echo " <td colspan='9'>"; - echo " <select id='actions_action' name='actions_action' size='1'>"; - echo " <option value='delete'>" . _DELETE . "</option>"; - echo " <option value='activate'>" . _AM_XNEWSLETTER_ACTIONS_ACTIVATE . "</option>"; - echo " <option value='unactivate'>" . _AM_XNEWSLETTER_ACTIONS_UNACTIVATE . "</option>"; - echo " </select>"; - echo " <input id='actions_submit' class='formButton' type='submit' title='" . _AM_XNEWSLETTER_ACTIONS_EXEC . "' value='" . _AM_XNEWSLETTER_ACTIONS_EXEC . "' name='actions_submit'>"; - echo " </td>"; - echo "</tr>"; - echo "<input id='actions_op' type='hidden' value='apply_actions' name='op'>"; - echo "</form>"; + $subsrFilterCount = $xnewsletter->getHandler('subscr')->getCount($subscrCriteria); + // + $subscrCriteria->setSort('subscr_id'); + $subscrCriteria->setOrder('DESC'); + // + $start = xnewsletterRequest::getInt('start', 0); + $limit = $xnewsletter->getConfig('adminperpage'); + $subscrCriteria->setStart($start); + $subscrCriteria->setLimit($limit); + // + $subscrObjs = $xnewsletter->getHandler('subscr')->getAll($subscrCriteria); + $subscrs = $xnewsletter->getHandler('subscr')->getObjects($subscrCriteria, true, false); // as array + if ($subsrFilterCount > $limit) { + include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; + $linklist = "op={$op}"; + $linklist .= "&filter_subscr={$filter_subscr}"; + $linklist .= "&filter_subscr_firstname={$filter_subscr_firstname}"; + $linklist .= "&filter_subscr_lastname={$filter_subscr_lastname}"; + $linklist .= "&filter_subscr_email={$filter_subscr_email}"; + $pagenav = new XoopsPageNav($subsrFilterCount, $limit, $start, 'start', $linklist); + $pagenav = $pagenav->renderNav(4); + } else { + $pagenav = ''; + } + $GLOBALS['xoopsTpl']->assign('subscrs_pagenav', $pagenav); + // + if ($filter_subscr == 'LIKE') { + //clean up var for refill form + $filter_subscr_firstname = str_replace('%', '', $filter_subscr_firstname); + $filter_subscr_lastname = str_replace('%', '', $filter_subscr_lastname); + $filter_subscr_email = str_replace('%', '', $filter_subscr_email); + } + $GLOBALS['xoopsTpl']->assign('filter_subscr', $filter_subscr); + $GLOBALS['xoopsTpl']->assign('filter_subscr_firstname', $filter_subscr_firstname); + $GLOBALS['xoopsTpl']->assign('filter_subscr_lastname', $filter_subscr_lastname); + $GLOBALS['xoopsTpl']->assign('filter_subscr_email', $filter_subscr_email); + // + $GLOBALS['xoopsTpl']->assign('token', $GLOBALS['xoopsSecurity']->getTokenHTML()); + // fill subscrs array + foreach ($subscrs as $subscr_id => $subscr) { + $subscr['subscr_uname'] = XoopsUser::getUnameFromId($subscr['subscr_uid'], 'S'); + $subscr['subscr_created_formatted'] = formatTimestamp($subscr['subscr_created'], $xnewsletter->getConfig('dateformat')); + $GLOBALS['xoopsTpl']->append('subscrs', $subscr); + } + // + $GLOBALS['xoopsTpl']->display("db:{$xnewsletter->getModule()->dirname()}_admin_subscrs_list.tpl"); + } else { + echo _CO_XNEWSLETTER_WARNING_NOSUBSCRS; } - echo "</table>"; - echo "<br />"; - echo "<div>" . $pagenav . "</div>"; - echo "<br />"; + include_once __DIR__ . '/admin_footer.php'; break; case 'apply_actions': @@ -287,11 +202,15 @@ foreach ($xnewsletter->getHandler('subscr')->getObjects($subscrCriteria) as $subscrObj) { $subscr_emails[] = $subscrObj->getVar('subscr_email'); } + // render start here + xoops_cp_header(); + // render confirm form xoops_confirm( array('ok' => true, 'op' => 'apply_actions', 'actions_action' => $action, 'serialize_subscr_ids' => serialize($subscr_ids)), $_SERVER['REQUEST_URI'], sprintf(_AM_XNEWSLETTER_FORMSUREDEL, implode(', ', $subscr_emails)) ); + include_once __DIR__ . '/admin_footer.php'; } break; case 'activate': @@ -317,6 +236,9 @@ break; case 'new_subscr': + // render start here + xoops_cp_header(); + // render submenu echo $subscrAdmin->addNavigation($currentFile); $subscrAdmin->addItemButton(_AM_XNEWSLETTER_SUBSCRLIST, '?op=list', 'list'); echo $subscrAdmin->renderButton(); @@ -324,9 +246,11 @@ $subscrObj = $xnewsletter->getHandler('subscr')->create(); $form = $subscrObj->getFormAdmin(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'save_subscr': + $subscr_id = xnewsletterRequest::getInt('subscr_id', 0); if (!$GLOBALS["xoopsSecurity"]->check()) { redirect_header($currentFile, 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors())); } @@ -346,13 +270,20 @@ if ($xnewsletter->getHandler('subscr')->insert($subscrObj)) { redirect_header('?op=list', 3, _AM_XNEWSLETTER_FORMOK); } - // + // render start here + xoops_cp_header(); + // render form echo $subscrObj->getHtmlErrors(); $form = $subscrObj->getFormAdmin(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'edit_subscr': + $subscr_id = xnewsletterRequest::getInt('subscr_id', 0); + // render start here + xoops_cp_header(); + // render submenu echo $subscrAdmin->addNavigation($currentFile); $subscrAdmin->addItemButton(_AM_XNEWSLETTER_NEWSUBSCR, '?op=new_subscr', 'add'); $subscrAdmin->addItemButton(_AM_XNEWSLETTER_SUBSCRLIST, '?op=list', 'list'); @@ -361,9 +292,11 @@ $subscrObj = $xnewsletter->getHandler('subscr')->get($subscr_id); $form = $subscrObj->getFormAdmin(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'delete_subscr': + $subscr_id = xnewsletterRequest::getInt('subscr_id', 0); $subscrObj = $xnewsletter->getHandler('subscr')->get($subscr_id); if (xnewsletterRequest::getBool('ok', false, 'POST') == true) { if (!$GLOBALS['xoopsSecurity']->check()) { @@ -376,12 +309,15 @@ echo $subscrObj->getHtmlErrors(); } } else { + // render start here + xoops_cp_header(); + // render confirm form xoops_confirm( array('ok' => true, 'subscr_id' => $_REQUEST['subscr_id'], 'op' => 'delete_subscr'), $_SERVER['REQUEST_URI'], sprintf(_AM_XNEWSLETTER_FORMSUREDEL, $subscrObj->getVar('subscr_email')) ); + include_once __DIR__ . '/admin_footer.php'; } break; } -include_once __DIR__ . '/admin_footer.php'; Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/template.php =================================================================== --- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/template.php 2014-12-02 21:16:19 UTC (rev 12882) +++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/template.php 2014-12-02 21:23:27 UTC (rev 12883) @@ -36,6 +36,61 @@ $template_id = xnewsletterRequest::getInt('template_id', 0); switch ($op) { + case 'show_preview': + case 'show_template_preview': + echo $indexAdmin->addNavigation($currentFile); + $indexAdmin->addItemButton(_AM_XNEWSLETTER_NEWTEMPLATE, '?op=new_template', 'add'); + $indexAdmin->addItemButton(_AM_XNEWSLETTER_TEMPLATELIST, '?op=list', 'list'); + echo $indexAdmin->renderButton(); + // + $templateObj = $xnewsletter->getHandler('template')->get($template_id); + // + $letterTpl = new XoopsTpl(); + // subscr data + $letterTpl->assign('sex', _AM_XNEWSLETTER_SUBSCR_SEX_PREVIEW); + $letterTpl->assign('salutation', _AM_XNEWSLETTER_SUBSCR_SEX_PREVIEW); // new from v1.3 + $letterTpl->assign('firstname', _AM_XNEWSLETTER_SUBSCR_FIRSTNAME_PREVIEW); + $letterTpl->assign('lastname', _AM_XNEWSLETTER_SUBSCR_LASTNAME_PREVIEW); + $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('title', '<{$title}>'); // new from v1.3 + //$letterTpl->assign('content', xnewsletter_randomLipsum(5, 'paras', 0)); + $letterTpl->assign('content', '<{$content}>'); + // letter attachments as link + for ($i = 1; $i <= 5; ++$i) { + $attachment_array['attachment_id'] = $i; + $attachment_array['attachment_letter_id'] = '#'; + $attachment_array['attachment_name'] = '<{$attachment_name}>'; + $attachment_array['attachment_type'] = '<{$attachment_type}>'; + $attachment_array['attachment_submitter'] = '<{$attachment_submitter}>'; + $attachment_array['attachment_created'] = time(); + $attachment_array['attachment_size'] = '<{$attachment_size}>'; + $attachment_array['attachment_mode'] = '<{$attachment_mode}>'; + $attachment_array['attachment_url'] = '#'; + $attachment_array['attachment_link'] = '#'; + $letterTpl->append('attachments', $attachment_array); + } + // extra data + $letterTpl->assign('date', time()); // new from v1.3 + $letterTpl->assign('unsubscribe_url', '#'); + $letterTpl->assign('catsubscr_id', '0'); + + $htmlBody = $letterTpl->fetchFromData($templateObj->getVar('template_content', 'n')); + $textBody = xnewsletter_html2text($htmlBody); // new from v1.3 + + echo "<h2>{$templateObj->getVar('template_title')}</h2>"; + echo "<div style='clear:both'>"; + echo "<div style='padding:10px;border:1px solid black'>"; + echo $htmlBody; + echo "</div>"; + echo "<div style='padding:10px;border:1px solid black; font-family: monospace;'>"; + echo nl2br(utf8_encode($textBody)); + echo "</div>"; + echo "</div>"; + include_once __DIR__ . '/admin_footer.php'; + break; + case 'list': case 'list_templates': default: @@ -43,56 +98,40 @@ $indexAdmin->addItemButton(_AM_XNEWSLETTER_NEWTEMPLATE, '?op=new_template', 'add'); echo $indexAdmin->renderButton(); // - $limit = $xnewsletter->getConfig('adminperpage'); - $templateCriteria = new CriteriaCompo(); - $templateCriteria->setSort('template_title DESC, template_id'); - $templateCriteria->setOrder('DESC'); - $templatesCount = $xnewsletter->getHandler('template')->getCount(); - $start = xnewsletterRequest::getInt('start', 0); - $templateCriteria->setStart($start); - $templateCriteria->setLimit($limit); - $templateObjs = $xnewsletter->getHandler('template')->getAll($templateCriteria); - if ($templatesCount > $limit) { - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; - $pagenav = new XoopsPageNav($templatesCount, $limit, $start, 'start', 'op=list'); - $pagenav = $pagenav->renderNav(4); + $templateCount = $xnewsletter->getHandler('template')->getCount(); + if ($templateCount > 0) { + $templateCriteria = new CriteriaCompo(); + // + $templateCriteria->setSort('template_title DESC, template_id'); + $templateCriteria->setOrder('DESC'); + // + $start = xnewsletterRequest::getInt('start', 0); + $limit = $xnewsletter->getConfig('adminperpage'); + $templateCriteria->setStart($start); + $templateCriteria->setLimit($limit); + // + if ($templateCount > $limit) { + include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; + $pagenav = new XoopsPageNav($templateCount, $limit, $start, 'start', 'op=list'); + $pagenav = $pagenav->renderNav(4); + } else { + $pagenav = ''; + } + $GLOBALS['xoopsTpl']->assign('subscrs_pagenav', $pagenav); + // + $templateObjs = $xnewsletter->getHandler('template')->getAll($templateCriteria); + $templates = $xnewsletter->getHandler('template')->getObjects($templateCriteria, true, false); // as array + foreach ($templates as $template_id => $template) { + $template['template_submitter_uname'] = XoopsUser::getUnameFromId($template['template_submitter'], 'S'); + $template['template_created_formatted'] = formatTimestamp($template['template_created'], $xnewsletter->getConfig('dateformat')); + $GLOBALS['xoopsTpl']->append('templates', $template); + } + // + $GLOBALS['xoopsTpl']->display("db:{$xnewsletter->getModule()->dirname()}_admin_templates_list.tpl"); } else { - $pagenav = ''; + echo _CO_XNEWSLETTER_WARNING_NOTEMPLATES; } - - // View Table - echo "<table class='outer width100' cellspacing='1'>"; - echo "<tr>"; - echo " <th>" . _AM_XNEWSLETTER_TEMPLATE_ID . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_TEMPLATE_TITLE . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_TEMPLATE_DESCRIPTION . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_TEMPLATE_SUBMITTER . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_TEMPLATE_CREATED . "</th>"; - echo " <th>" . _AM_XNEWSLETTER_FORMACTION . "</th>"; - echo "</tr>"; - - if ($templatesCount > 0) { - $class = 'odd'; - foreach ($templateObjs as $template_id => $templateObj) { - echo "<tr class='{$class}'>"; - $class = ($class == 'even') ? 'odd' : 'even'; - echo "<td>" . $template_id . "</td>"; - echo "<td>" . $templateObj->getVar("template_title") . "</td>"; - echo "<td>" . $templateObj->getVar("template_description") . "</td>"; - echo "<td class='center'>" . XoopsUser::getUnameFromId($templateObj->getVar("template_submitter"), "S") . "</td>"; - echo "<td class='center'>" . formatTimeStamp($templateObj->getVar("template_created"), "S") . "</td>"; - echo "<td class='center' nowrap='nowrap'>"; - echo " <a href='?op=edit_template&template_id=" . $template_id . "'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_edit.png alt='" . _EDIT . "' title='" . _EDIT . "' /></a>"; - echo " "; - echo " <a href='?op=delete_template&template_id=" . $template_id . "'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_delete.png alt='" . _DELETE . "' title='" . _DELETE . "' /></a>"; - echo "</td>"; - echo "</tr>"; - } - } - echo "</table>"; - echo "<br />"; - echo "<div>{$pagenav}</div>"; - echo "<br />"; + include_once __DIR__ . '/admin_footer.php'; break; case 'new_template': @@ -103,6 +142,7 @@ $templateObj = $xnewsletter->getHandler('template')->create(); $form = $templateObj->getForm(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'save_template': @@ -123,6 +163,7 @@ echo $templateObj->getHtmlErrors(); $form = $templateObj->getForm(); $form->display(); + include_once __DIR__ . '/admin_footer.php'; break; case 'edit_template': @@ -134,6 +175,7 @@ $templateObj = $xnewsletter->getHandler('template')->get($template_id); $form = $templateObj->getForm(); $form->display(); + ... [truncated message content] |