|
From: <luc...@us...> - 2015-02-03 22:32:22
|
Revision: 12965
http://sourceforge.net/p/xoops/svn/12965
Author: luciorota
Date: 2015-02-03 22:32:13 +0000 (Tue, 03 Feb 2015)
Log Message:
-----------
xoosp 2.5.7.1 compatible
change directory structure
improved subscr form
standardize code
code cleanup
Modified Paths:
--------------
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/catsubscr.php
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/subscr.php
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/common.php
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/xoops_version.php
Added Paths:
-----------
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/breadcrumb.php
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/breadcrumb.tpl
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/session.php
Removed Paths:
-------------
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/session.php
XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/xNewsletter_common_breadcrumb.tpl
Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php 2015-02-03 22:20:34 UTC (rev 12964)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/admin/subscr.php 2015-02-03 22:32:13 UTC (rev 12965)
@@ -172,6 +172,7 @@
}
$GLOBALS['xoopsTpl']->assign('subscrs_pagenav', $pagenav);
//
+ xoops_load('XoopsFormLoader');
$filter_subscr_criteria_select = new XoopsFormSelect(_AM_XNEWSLETTER_LETTER_TITLE, 'filter_subscr_criteria', $filter_subscr_criteria, 1, false);
$filter_subscr_criteria_select->addOption('CONTAINS', _CONTAINS);
$filter_subscr_criteria_select->addOption('MATCHES', _MATCHES);
@@ -260,7 +261,7 @@
echo $subscrAdmin->renderButton();
//
$subscrObj = $xnewsletter->getHandler('subscr')->create();
- $form = $subscrObj->getFormAdmin();
+ $form = $subscrObj->getFormAdmin();
$form->display();
include_once __DIR__ . '/admin_footer.php';
break;
@@ -283,16 +284,70 @@
$subscrObj->setVar('subscr_actkey', $_REQUEST['subscr_actkey']);
$subscrObj->setVar('subscr_activated', XoopsRequest::getInt('subscr_activated', 0));
//
- if ($xnewsletter->getHandler('subscr')->insert($subscrObj)) {
- redirect_header('?op=list_subscrs', 3, _AM_XNEWSLETTER_FORMOK);
+ if (!$xnewsletter->getHandler('subscr')->insert($subscrObj)) {
+ // render start here
+ xoops_cp_header();
+ // render form
+ echo $subscrObj->getHtmlErrors();
+ $form = $subscrObj->getFormAdmin();
+ $form->display();
+ include_once __DIR__ . '/admin_footer.php';
+ exit();
}
- // render start here
- xoops_cp_header();
- // render form
- echo $subscrObj->getHtmlErrors();
- $form = $subscrObj->getFormAdmin();
- $form->display();
- include_once __DIR__ . '/admin_footer.php';
+ //
+ $cat_ids = XoopsRequest::getArray('cat_ids', array());
+ $subscr_id = $subscrObj->getVar('subscr_id');
+ $catObjs = $xnewsletter->getHandler('cat')->getAll();
+ foreach ($catObjs as $cat_id => $catObj) {
+ $catsubscrCriteria = new CriteriaCompo();
+ $catsubscrCriteria->add(new Criteria('catsubscr_catid', $cat_id));
+ $catsubscrCriteria->add(new Criteria('catsubscr_subscrid', $subscr_id));
+ $catsubscrCount = $xnewsletter->getHandler('catsubscr')->getCount($catsubscrCriteria);
+ if (in_array($cat_id, $cat_ids)) {
+ // checked
+ switch($catsubscrCount) {
+ case 0:
+ // create catsubscr
+ $catsubscrObj = $xnewsletter->getHandler('catsubscr')->create();
+ $catsubscrObj->setVar('catsubscr_catid', $cat_id);
+ $catsubscrObj->setVar('catsubscr_subscrid', $subscr_id);
+ $catsubscrObj->setVar('catsubscr_submitter', $_REQUEST['subscr_uid']);
+ $catsubscrObj->setVar('catsubscr_created', $_REQUEST['subscr_created']);
+ $xnewsletter->getHandler('catsubscr')->insert($catsubscrObj);
+ break;
+ case 1:
+ // NOP
+ break;
+ default:
+ // delete all catsubscrs
+ $xnewsletter->getHandler('catsubscr')->deleteAll($catsubscrCriteria);
+ // create catsubscr
+ $catsubscrObj = $xnewsletter->getHandler('catsubscr')->create();
+ $catsubscrObj->setVar('catsubscr_catid', $cat_id);
+ $catsubscrObj->setVar('catsubscr_subscrid', $subscr_id);
+ $catsubscrObj->setVar('catsubscr_submitter', $_REQUEST['subscr_uid']);
+ $catsubscrObj->setVar('catsubscr_created', $_REQUEST['subscr_created']);
+ $xnewsletter->getHandler('catsubscr')->insert($catsubscrObj);
+ break;
+ }
+ } else {
+ // not checked
+ switch($catsubscrCount) {
+ case 0:
+ // NOP
+ break;
+ case 1:
+ // delete catsubscr
+ $xnewsletter->getHandler('catsubscr')->deleteAll($catsubscrCriteria);
+ break;
+ default:
+ // delete all catsubscrs
+ $xnewsletter->getHandler('catsubscr')->deleteAll($catsubscrCriteria);
+ break;
+ }
+ }
+ }
+ redirect_header('?op=list_subscrs', 3, _AM_XNEWSLETTER_FORMOK);
break;
case 'edit_subscr':
Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/catsubscr.php
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/catsubscr.php 2015-02-03 22:20:34 UTC (rev 12964)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/catsubscr.php 2015-02-03 22:32:13 UTC (rev 12965)
@@ -74,6 +74,13 @@
//
$form = new XoopsThemeForm($title, 'form', $action, 'post', true);
$form->setExtra('enctype="multipart/form-data"');
+ // catsubsr: catsubscr_subscrid
+ $subscrCriteria = new CriteriaCompo();
+ $subscrCriteria->setSort('subscr_email ');
+ $subscrCriteria->setOrder('ASC');
+ $subscr_select = new XoopsFormSelect(_AM_XNEWSLETTER_CATSUBSCR_SUBSCRID, 'catsubscr_subscrid', $this->getVar('catsubscr_subscrid'));
+ $subscr_select->addOptionArray($this->xnewsletter->getHandler('subscr')->getList($subscrCriteria));
+ $form->addElement($subscr_select, true);
// catsubsr: catsubscr_catid
$criteria = new CriteriaCompo();
$criteria->setSort('cat_id ASC, cat_name');
@@ -81,16 +88,8 @@
$cat_select = new XoopsFormSelect(_AM_XNEWSLETTER_CATSUBSCR_CATID, 'catsubscr_catid', $this->getVar('catsubscr_catid'));
$cat_select->addOptionArray($this->xnewsletter->getHandler('cat')->getList());
$form->addElement($cat_select, true);
- // catsubsr: catsubscr_subscrid
- $subscrCriteria = new CriteriaCompo();
- $subscrCriteria->setSort('subscr_email ');
- $subscrCriteria->setOrder('ASC');
- $subscr_select = new XoopsFormSelect(_AM_XNEWSLETTER_CATSUBSCR_SUBSCRID, 'catsubscr_subscrid', $this->getVar('catsubscr_subscrid'));
- $subscr_select->addOptionArray($this->xnewsletter->getHandler('subscr')->getList($subscrCriteria));
- $form->addElement($subscr_select, true);
- //
+ // form: catsubscr_quit_now
$quited_tray = new XoopsFormElementTray(_AM_XNEWSLETTER_CATSUBSCR_QUITED, ' ');
- //
$quit_now = new XoopsFormRadio('', 'catsubscr_quit_now', _XNEWSLETTER_CATSUBSCR_QUIT_NO_VAL_NONE);
$quit_now->addOptionArray(
array(
Added: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/breadcrumb.php
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/breadcrumb.php (rev 0)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/breadcrumb.php 2015-02-03 22:32:13 UTC (rev 12965)
@@ -0,0 +1,86 @@
+<?php
+/*
+ You may not change or alter any portion of this comment or credits
+ of supporting developers from this source code or any supporting source code
+ which is considered copyrighted (c) material of the original comment or credit authors.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+/**
+ * XnewsletterBreadcrumb Class
+ *
+ * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
+ * @license http://www.fsf.org/copyleft/gpl.html GNU public license
+ * @author lucio <luc...@gm...>
+ * @package Xnewsletter
+ * @since 1.00
+ * @version $Id:$
+ *
+ * Example:
+ * $breadcrumb = new XnewsletterBreadcrumb();
+ * $breadcrumb->addLink( 'bread 1', 'index1.php' );
+ * $breadcrumb->addLink( 'bread 2', '' );
+ * $breadcrumb->addLink( 'bread 3', 'index3.php' );
+ * echo $breadcrumb->render();
+ */
+defined('XOOPS_ROOT_PATH') || die('XOOPS root path not defined');
+
+/**
+ * Class XnewsletterBreadcrumb
+ */
+class XnewsletterBreadcrumb
+{
+ private $dirname;
+ private $_bread = array();
+
+ /**
+ *
+ */
+ public function __construct()
+ {
+ $this->dirname = basename(dirname(dirname(__DIR__)));
+ }
+
+ /**
+ * Add link to breadcrumb
+ *
+ * @param string $title
+ * @param string $link
+ */
+ public function addLink( $title='', $link='' )
+ {
+ $this->_bread[] = array(
+ 'link' => $link,
+ 'title' => $title
+ );
+ }
+
+ /**
+ * Render Xnewsletter BreadCrumb
+ *
+ */
+ public function render()
+ {
+ $ret = '';
+
+ if (!isset($GLOBALS['xoTheme']) || !is_object($GLOBALS['xoTheme'])) {
+ include_once $GLOBALS['xoops']->path('/class/theme.php');
+ $GLOBALS['xoTheme'] = new xos_opal_Theme();
+ }
+ require_once $GLOBALS['xoops']->path('/class/template.php');
+ $breadcrumbTpl = new XoopsTpl();
+ $breadcrumbTpl->assign('breadcrumb', $this->_bread);
+// IN PROGRESS
+// IN PROGRESS
+// IN PROGRESS
+ //$ret .= $breadcrumbTpl->fetch(__DIR__ . '_breadcrumb.tpl');
+ $tplSource = file_get_contents(__DIR__ . '/breadcrumb.tpl');
+// $ret .= $choiceByLetterTpl->fetchFromData($tplSource, false, null);
+ $ret .= $breadcrumbTpl->fetchFromData($tplSource, false, null);
+ unset($breadcrumbTpl);
+
+ return $ret;
+ }
+}
Added: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/breadcrumb.tpl
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/breadcrumb.tpl (rev 0)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/breadcrumb.tpl 2015-02-03 22:32:13 UTC (rev 12965)
@@ -0,0 +1,16 @@
+<div class="module_skeleton_headertable">
+ <div class="module_skeleton_breadcrumb">
+ <{foreach item=bread from=$breadcrumb name=bcloop}>
+ <span class="bread">
+ <{if ($bread.link)}>
+ <a href="<{$bread.link}>" title="<{$bread.title}>"><{$bread.title}></a>
+ <{else}>
+ <{$bread.title}>
+ <{/if}>
+ </span>
+ <{if !$smarty.foreach.bcloop.last}>
+ <span class="delimiter">></span>
+ <{/if}>
+ <{/foreach}>
+ </div>
+</div>
Added: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/session.php
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/session.php (rev 0)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/common/session.php 2015-02-03 22:32:13 UTC (rev 12965)
@@ -0,0 +1,110 @@
+<?php
+/*
+ You may not change or alter any portion of this comment or credits
+ of supporting developers from this source code or any supporting source code
+ which is considered copyrighted (c) material of the original comment or credit authors.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+/**
+ * XnewsletterSession class
+ *
+ * @copyright The XUUPS Project http://sourceforge.net/projects/xuups/
+ * @license http://www.fsf.org/copyleft/gpl.html GNU public license
+ * @package xnewsletter
+ * @since 1.3
+ * @author trabis <lus...@gm...>
+ * @author Harry Fuecks (PHP Anthology Volume II)
+ * @version svn:$id$
+ */
+defined('XOOPS_ROOT_PATH') || die('XOOPS root path not defined');
+
+include_once dirname(dirname(__DIR__)) . '/include/common.php';
+
+/**
+ * Class XnewsletterSession
+ */
+class XnewsletterSession
+{
+ /**
+ * Session constructor<br />
+ * Starts the session with session_start()
+ * <strong>Note:</strong> that if the session has already started,
+ * session_start() does nothing
+ */
+ protected function __construct()
+ {
+ @session_start();
+ }
+
+ /**
+ * Sets a session variable
+ *
+ * @param string $name name of variable
+ * @param mixed $value value of variable
+ *
+ * @return void
+ * @access public
+ */
+ public function set($name, $value)
+ {
+ $_SESSION[$name] = $value;
+ }
+
+ /**
+ * Fetches a session variable
+ *
+ * @param string $name name of variable
+ *
+ * @return mixed value of session variable
+ * @access public
+ */
+ public function get($name)
+ {
+ if (isset($_SESSION[$name])) {
+ return $_SESSION[$name];
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Deletes a session variable
+ *
+ * @param string $name name of variable
+ *
+ * @return void
+ * @access public
+ */
+ public function del($name)
+ {
+ unset($_SESSION[$name]);
+ }
+
+ /**
+ * Destroys the whole session
+ *
+ * @return void
+ * @access public
+ */
+ public function destroy()
+ {
+ $_SESSION = array();
+ session_destroy();
+ }
+
+ /**
+ * @return XnewsletterSession
+ */
+ public static function &getInstance()
+ {
+ static $_sess;
+ if (!isset($_sess)) {
+ $_sess = new XnewsletterSession();
+ }
+
+ return $_sess;
+ }
+}
Deleted: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/session.php
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/session.php 2015-02-03 22:20:34 UTC (rev 12964)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/session.php 2015-02-03 22:32:13 UTC (rev 12965)
@@ -1,109 +0,0 @@
-<?php
-/*
- You may not change or alter any portion of this comment or credits
- of supporting developers from this source code or any supporting source code
- which is considered copyrighted (c) material of the original comment or credit authors.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-/**
- * XnewsletterSession class
- *
- * @copyright The XUUPS Project http://sourceforge.net/projects/xuups/
- * @license http://www.fsf.org/copyleft/gpl.html GNU public license
- * @package xnewsletter
- * @since 1.3
- * @author trabis <lus...@gm...>
- * @author Harry Fuecks (PHP Anthology Volume II)
- * @version svn:$id$
- */
-
-include_once dirname(__DIR__) . '/include/common.php';
-
-/**
- * Class XnewsletterSession
- */
-class XnewsletterSession
-{
- /**
- * Session constructor<br />
- * Starts the session with session_start()
- * <strong>Note:</strong> that if the session has already started,
- * session_start() does nothing
- */
- protected function __construct()
- {
- @session_start();
- }
-
- /**
- * Sets a session variable
- *
- * @param string $name name of variable
- * @param mixed $value value of variable
- *
- * @return void
- * @access public
- */
- public function set($name, $value)
- {
- $_SESSION[$name] = $value;
- }
-
- /**
- * Fetches a session variable
- *
- * @param string $name name of variable
- *
- * @return mixed value of session variable
- * @access public
- */
- public function get($name)
- {
- if (isset($_SESSION[$name])) {
- return $_SESSION[$name];
- } else {
- return false;
- }
- }
-
- /**
- * Deletes a session variable
- *
- * @param string $name name of variable
- *
- * @return void
- * @access public
- */
- public function del($name)
- {
- unset($_SESSION[$name]);
- }
-
- /**
- * Destroys the whole session
- *
- * @return void
- * @access public
- */
- public function destroy()
- {
- $_SESSION = array();
- session_destroy();
- }
-
- /**
- * @return XnewsletterSession
- */
- public static function &getInstance()
- {
- static $_sess;
- if (!isset($_sess)) {
- $_sess = new XnewsletterSession();
- }
-
- return $_sess;
- }
-}
Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/subscr.php
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/subscr.php 2015-02-03 22:20:34 UTC (rev 12964)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/class/subscr.php 2015-02-03 22:32:13 UTC (rev 12965)
@@ -48,7 +48,7 @@
$this->initVar('subscr_email', XOBJ_DTYPE_TXTBOX, '', false, 255);
$this->initVar('subscr_firstname', XOBJ_DTYPE_TXTBOX, '', true, 255);
$this->initVar('subscr_lastname', XOBJ_DTYPE_TXTBOX, '', false, 255);
- $this->initVar('subscr_uid', XOBJ_DTYPE_INT, null, false);
+ $this->initVar('subscr_uid', XOBJ_DTYPE_INT, 0, false); // default: anonymous
$this->initVar('subscr_sex', XOBJ_DTYPE_TXTBOX, '', false, 100);
$this->initVar('subscr_submitter', XOBJ_DTYPE_INT, null, false);
$this->initVar('subscr_created', XOBJ_DTYPE_INT, time(), false);
@@ -115,7 +115,8 @@
public function getForm($action = false)
{
global $xoopsUser;
- //
+ $gperm_handler = xoops_gethandler('groupperm');
+ $user_handler = xoops_gethandler('user');
xoops_load('XoopsFormLoader');
//
if ($action === false) {
@@ -123,10 +124,12 @@
}
//
$isAdmin = xnewsletter_userIsAdmin();
- $groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : array(0 => XOOPS_GROUP_ANONYMOUS);
//
+ $uid = (is_object($GLOBALS['xoopsUser']) && isset($GLOBALS['xoopsUser'])) ? $GLOBALS['xoopsUser']->uid() : 0;
+ $groups = is_object($GLOBALS['xoopsUser']) ? $GLOBALS['xoopsUser']->getGroups() : array(0 => XOOPS_GROUP_ANONYMOUS);
+ //
$title = $this->isNew() ? sprintf(_MA_XNEWSLETTER_SUBSCRIPTION_ADD) : sprintf(_MA_XNEWSLETTER_SUBSCRIPTION_EDIT);
- $form = new XoopsThemeForm($title, 'form', $action, 'post', true);
+ $form = new XoopsThemeForm($title, 'form', $action, 'post', true);
$form->setExtra('enctype="multipart/form-data"');
//
$form->addElement(new XoopsFormLabel("<span style='text-decoration:underline'>" . _MA_XNEWSLETTER_SUBSCRIPTION_INFO_PERS . "</span>", ''));
@@ -155,17 +158,11 @@
//
$form->addElement(new XoopsFormLabel('<br/><br/>', ''));
// get newsletters available for current user
- $opt_cat = array();
- $opt_tray = new XoopsFormElementTray("<span style='text-decoration:underline'>" . _MA_XNEWSLETTER_SUBSCRIPTION_CATS_AVAIL . "</span>", "<br />");
- $opt_tray->setDescription(_MA_XNEWSLETTER_SUBSCRIPTION_CATS_AVAIL_DESC);
- $gperm_handler = xoops_gethandler('groupperm');
- $uid = (is_object($GLOBALS['xoopsUser']) && isset($GLOBALS['xoopsUser'])) ? $GLOBALS['xoopsUser']->uid() : 0;
- $groups = is_object($GLOBALS['xoopsUser']) ? $GLOBALS['xoopsUser']->getGroups() : array(0 => XOOPS_GROUP_ANONYMOUS);
// cats[], existing_catsubcr_id_{$cat_id}, existing_catsubscr_quited_{$cat_id}
$catCriteria = new CriteriaCompo();
$catCriteria->setSort('cat_id');
$catCriteria->setOrder('ASC');
- $catObjs = $this->xnewsletter->getHandler('cat')->getAll($catCriteria);
+ $catObjs = $this->xnewsletter->getHandler('cat')->getAll($catCriteria);
$cat_checkbox = new XoopsFormCheckBox(_MA_XNEWSLETTER_SUBSCRIPTION_SELECT_CATS, "cats", null, '<br />');
$cat_checkbox->setDescription(_MA_XNEWSLETTER_SUBSCRIPTION_CATS_AVAIL_DESC);
$values = array();
@@ -177,16 +174,16 @@
// get existing catsubscr
$catsubscrCriteria = new CriteriaCompo();
$catsubscrCriteria->add(new Criteria('catsubscr_catid', $cat_id));
- $catsubscrCriteria->add(new Criteria('catsubscr_subscrid', $subscr_id));
+ $catsubscrCriteria->add(new Criteria('catsubscr_subscrid', $this->getVar('subscr_id')));
$catsubscrCriteria->setLimit(1);
$catsubscrObjs = $this->xnewsletter->getHandler('catsubscr')->getObjects($catsubscrCriteria);
if (isset($catsubscrObjs[0])) {
- $values[] = $cat_id;
+ $values[] = $cat_id;
$catsubscr_quited = $catsubscrObjs[0]->getVar('catsubscr_quited');
- $catsubscr_id = $catsubscrObjs[0]->getVar('catsubscr_id');
+ $catsubscr_id = $catsubscrObjs[0]->getVar('catsubscr_id');
} else {
$catsubscr_quited = 0;
- $catsubscr_id = 0;
+ $catsubscr_id = 0;
}
$name = $catObj->getVar('cat_name');
$name .= "<div>" . $catObj->getVar('cat_info', 's') . "</div>";
@@ -225,10 +222,9 @@
return $form;
}
- //**********************************************************************************************
- // form for admin aerea *******************************************************************
- //**********************************************************************************************
/**
+ * Form for admin area
+ * * *
* @param bool $action
*
* @return XoopsThemeForm
@@ -236,7 +232,8 @@
public function getFormAdmin($action = false)
{
global $xoopsUser;
- //
+ $gperm_handler = xoops_gethandler('groupperm');
+ $user_handler = xoops_gethandler('user');
xoops_load('XoopsFormLoader');
//
if ($action === false) {
@@ -244,26 +241,87 @@
}
//
$isAdmin = xnewsletter_userIsAdmin();
- $groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : array(0 => XOOPS_GROUP_ANONYMOUS);
+ $subscr_uid = $this->getVar('subscr_uid');
+ $subscr_xoopsUser = $user_handler->get($subscr_uid);
+ $subscr_groups = is_object($subscr_xoopsUser) ? $subscr_xoopsUser->getGroups() : array(0 => XOOPS_GROUP_ANONYMOUS);
//
$title = $this->isNew() ? sprintf(_AM_XNEWSLETTER_SUBSCR_ADD) : sprintf(_AM_XNEWSLETTER_SUBSCR_EDIT);
$form = new XoopsThemeForm($title, 'form', $action, 'post', true);
$form->setExtra('enctype="multipart/form-data"');
+ // subscr: subscr_email
+ if ($subscr_id > 0 || $this->getVar('subscr_email') != '') {
+ $form->addElement(new XoopsFormLabel(_AM_XNEWSLETTER_SUBSCR_EMAIL, $this->getVar('subscr_email')));
+ $form->addElement(new XoopsFormHidden('subscr_email', $this->getVar('subscr_email')));
+ } else {
+ $form->addElement(new XoopsFormText(_AM_XNEWSLETTER_SUBSCR_EMAIL, 'subscr_email', 50, 255, $this->getVar('subscr_email')), true);
+ }
// subscr: subscr_sex
- $form->addElement(new XoopsFormText(_AM_XNEWSLETTER_SUBSCR_EMAIL, 'subscr_email', 50, 255, $this->getVar('subscr_email')), true);
- $select_subscr_sex = new XoopsFormSelect(_AM_XNEWSLETTER_SUBSCR_SEX, 'subscr_sex', $this->getVar('subscr_sex'));
- $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_EMPTY, _AM_XNEWSLETTER_SUBSCR_SEX_EMPTY);
- $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_FEMALE, _AM_XNEWSLETTER_SUBSCR_SEX_FEMALE);
- $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_MALE, _AM_XNEWSLETTER_SUBSCR_SEX_MALE);
- $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_COMP, _AM_XNEWSLETTER_SUBSCR_SEX_COMP);
- $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_FAMILY, _AM_XNEWSLETTER_SUBSCR_SEX_FAMILY);
- $form->addElement($select_subscr_sex);
+ if ($this->xnewsletter->getConfig('xn_use_salutation') == 1) {
+ $select_subscr_sex = new XoopsFormSelect(_AM_XNEWSLETTER_SUBSCR_SEX, 'subscr_sex', $this->getVar('subscr_sex'));
+ $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_EMPTY, _AM_XNEWSLETTER_SUBSCR_SEX_EMPTY);
+ $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_FEMALE, _AM_XNEWSLETTER_SUBSCR_SEX_FEMALE);
+ $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_MALE, _AM_XNEWSLETTER_SUBSCR_SEX_MALE);
+ $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_COMP, _AM_XNEWSLETTER_SUBSCR_SEX_COMP);
+ $select_subscr_sex->addOption(_AM_XNEWSLETTER_SUBSCR_SEX_FAMILY, _AM_XNEWSLETTER_SUBSCR_SEX_FAMILY);
+ $form->addElement($select_subscr_sex);
+ }
// subscr: subscr_firstname
$form->addElement(new XoopsFormText(_AM_XNEWSLETTER_SUBSCR_FIRSTNAME, 'subscr_firstname', 50, 255, $this->getVar('subscr_firstname')), false);
// subscr: subscr_lastname
$form->addElement(new XoopsFormText(_AM_XNEWSLETTER_SUBSCR_LASTNAME, 'subscr_lastname', 50, 255, $this->getVar('subscr_lastname')), false);
// subscr: subscr_uid
$form->addElement(new XoopsFormSelectUser(_AM_XNEWSLETTER_SUBSCR_UID, 'subscr_uid', true, $this->getVar('subscr_uid'), 1, false), false);
+ // subscr: subscr_activated
+ $form->addElement(new XoopsFormRadioYN(_AM_XNEWSLETTER_SUBSCR_ACTIVATED, 'subscr_activated', $this->getVar('subscr_activated')));
+ // get newsletters available for subscr
+ // cats[], existing_catsubcr_id_{$cat_id}, existing_catsubscr_quited_{$cat_id}
+ $catCriteria = new CriteriaCompo();
+ $catCriteria->setSort('cat_id');
+ $catCriteria->setOrder('ASC');
+ $catObjs = $this->xnewsletter->getHandler('cat')->getAll($catCriteria);
+ $cat_checkbox = new XoopsFormCheckBox(_MA_XNEWSLETTER_SUBSCRIPTION_SELECT_CATS, "cat_ids", null, '<br />');
+ $cat_checkbox->setDescription(_MA_XNEWSLETTER_SUBSCRIPTION_CATS_AVAIL_DESC);
+ $values = array();
+ foreach ($catObjs as $cat_id => $catObj) {
+ // if anonymous user or Xoops user can read cat...
+ if ($gperm_handler->checkRight('newsletter_read_cat', $cat_id, XOOPS_GROUP_ANONYMOUS, $this->xnewsletter->getModule()->mid())
+ || $gperm_handler->checkRight('newsletter_read_cat', $cat_id, $subscr_groups, $this->xnewsletter->getModule()->mid())
+ ) {
+ // get existing catsubscr
+ $catsubscrCriteria = new CriteriaCompo();
+ $catsubscrCriteria->add(new Criteria('catsubscr_catid', $cat_id));
+ $catsubscrCriteria->add(new Criteria('catsubscr_subscrid', $this->getVar('subscr_id')));
+ $catsubscrCriteria->setLimit(1);
+ $catsubscrObjs = $this->xnewsletter->getHandler('catsubscr')->getObjects($catsubscrCriteria);
+ if (isset($catsubscrObjs[0])) {
+ $values[] = $cat_id;
+ $catsubscr_quited = $catsubscrObjs[0]->getVar('catsubscr_quited');
+ $catsubscr_id = $catsubscrObjs[0]->getVar('catsubscr_id');
+ } else {
+ $catsubscr_quited = 0;
+ $catsubscr_id = 0;
+ }
+ $name = $catObj->getVar('cat_name');
+ $name .= "<div>" . $catObj->getVar('cat_info', 's') . "</div>";
+ if ($catsubscr_quited == 0) {
+ // NOP
+ } else {
+ $name .= "<div>";
+ $name .= str_replace("%q", formatTimeStamp($catsubscr_quited, $this->xnewsletter->getConfig('dateformat')), _MA_XNEWSLETTER_SUBSCRIPTION_QUITED_DETAIL);
+ $name .= "</div>";
+ }
+ $name .= "<div style='clear:both'></div>";
+ $cat_checkbox->addOption($cat_id, $name);
+ $form->addElement(new XoopsFormHidden("existing_catsubcr_id_{$cat_id}", $catsubscr_id));
+ $form->addElement(new XoopsFormHidden("existing_catsubscr_quited_{$cat_id}", $catsubscr_quited));
+ }
+ }
+ $cat_checkbox->setValue($values);
+ $form->addElement($cat_checkbox);
+
+
+
+
// subscr: subscr_submitter
$form->addElement(new XoopsFormHidden('subscr_submitter', $GLOBALS['xoopsUser']->uid()));
$form->addElement(new XoopsFormLabel(_AM_XNEWSLETTER_SUBSCR_SUBMITTER, $GLOBALS['xoopsUser']->uname()));
@@ -284,7 +342,6 @@
$form->addElement(new XoopsFormHidden('subscr_created', $time));
$form->addElement(new XoopsFormHidden('subscr_ip', $ip));
}
- $form->addElement(new XoopsFormRadioYN(_AM_XNEWSLETTER_SUBSCR_ACTIVATED, 'subscr_activated', $this->getVar('subscr_activated')));
// subscr: subscr_actkey
$form->addElement(new XoopsFormHidden('subscr_actkey', ''));
// form: button tray
Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/common.php
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/common.php 2015-02-03 22:20:34 UTC (rev 12964)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/include/common.php 2015-02-03 22:32:13 UTC (rev 12965)
@@ -30,12 +30,12 @@
xoops_loadLanguage('common', XNEWSLETTER_DIRNAME);
+include_once XNEWSLETTER_ROOT_PATH . '/class/xnewsletter.php'; // XnewsletterXnewsletter class
include_once XNEWSLETTER_ROOT_PATH . '/include/config.php'; // IN PROGRESS
include_once XNEWSLETTER_ROOT_PATH . '/include/functions.php';
include_once XNEWSLETTER_ROOT_PATH . '/include/constants.php';
-include_once XNEWSLETTER_ROOT_PATH . '/class/session.php'; // XnewsletterSession class
-include_once XNEWSLETTER_ROOT_PATH . '/class/xnewsletter.php'; // XnewsletterXnewsletter class
-//include_once XNEWSLETTER_ROOT_PATH . '/class/breadcrumb.php'; // XnewsletterBreadcrumb class
+include_once XNEWSLETTER_ROOT_PATH . '/class/common/session.php'; // XnewsletterSession class
+include_once XNEWSLETTER_ROOT_PATH . '/class/common/breadcrumb.php'; // XnewsletterBreadcrumb class
xoops_load('XoopsUserUtility');
xoops_load('XoopsRequest');
Deleted: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/xNewsletter_common_breadcrumb.tpl
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/xNewsletter_common_breadcrumb.tpl 2015-02-03 22:20:34 UTC (rev 12964)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/templates/xNewsletter_common_breadcrumb.tpl 2015-02-03 22:32:13 UTC (rev 12965)
@@ -1,16 +0,0 @@
-<div class="xnewsletter_headertable">
- <div class="xnewsletter_breadcrumb">
- <{foreach item=bread from=$breadcrumb name=bcloop}>
- <span class="bread">
- <{if ($bread.link)}>
- <a href="<{$bread.link}>" title="<{$bread.title}>"><{$bread.title}></a>
- <{else}>
- <{$bread.title}>
- <{/if}>
- </span>
- <{if !$smarty.foreach.bcloop.last}>
- <span class="delimiter">></span>
- <{/if}>
- <{/foreach}>
- </div>
-</div>
Modified: XoopsModules/xnewsletter/branches/luciorota/xnewsletter/xoops_version.php
===================================================================
--- XoopsModules/xnewsletter/branches/luciorota/xnewsletter/xoops_version.php 2015-02-03 22:20:34 UTC (rev 12964)
+++ XoopsModules/xnewsletter/branches/luciorota/xnewsletter/xoops_version.php 2015-02-03 22:32:13 UTC (rev 12965)
@@ -48,8 +48,8 @@
include_once XOOPS_ROOT_PATH . '/modules/' . $modversion['dirname'] . '/include/constants.php';
// About
-$modversion['module_status'] = 'Beta 1';
-$modversion['release_date'] = '2014/12/22';
+$modversion['module_status'] = 'RC 1';
+$modversion['release_date'] = '2015/02/03';
$modversion['module_website_url'] = 'wedega.com';
$modversion['module_website_name'] = 'Webdesign Gabor';
$modversion['min_php'] = '5.3.7';
@@ -308,9 +308,9 @@
$modversion['templates'][$i]['file'] = $modversion['dirname'] . '_protocol.tpl';
$modversion['templates'][$i]['description'] = '';
// Common templates
-++$i;
-$modversion['templates'][$i]['file'] = $modversion['dirname'] . '_common_breadcrumb.tpl';
-$modversion['templates'][$i]['description'] = '';
+
+
+
// Admin templates
++$i;
$modversion['templates'][$i]['file'] = $modversion['dirname'] . '_admin_subscrs_list.tpl';
|