示例#1
0
 function cleanVars()
 {
     if (!parent::cleanVars()) {
         return false;
     }
     // The following validation code doesn't have this class,
     // because the validation code accesses handlers.
     // But, this follows traditional architecture of XOOPS2.
     $gHandler = xoops_gethandler('group');
     $group =& $gHandler->get($this->get('gperm_groupid'));
     if (!is_object($group)) {
         return false;
     }
     $mHandler = xoops_gethandler('module');
     if ($this->get('gperm_modid') != 1) {
         $module =& $mHandler->get($this->get('gperm_modid'));
         if (!is_object($module)) {
             return false;
         }
     }
     if ($this->get('gperm_name') == GROUPPERM_VAL_MODREAD || $this->get('gperm_name') == GROUPPERM_VAL_MODADMIN) {
         $mHandler = xoops_gethandler('module');
         $module =& $mHandler->get($this->get('gperm_itemid'));
         if (!is_object($module)) {
             return false;
         }
     } else {
         if ($this->get('gperm_name') == GROUPPERM_VAL_BLOCKREAD) {
             $bHandler = xoops_gethandler('block');
             $block =& $bHandler->get($this->get('gperm_itemid'));
             if (!is_object($block)) {
                 return false;
             }
         }
     }
     return true;
 }
示例#2
0
 /**
  * Store a {@link XoopsGroupPerm}
  *
  * @param XoopsObject|XoopsGroupPerm $perm a XoopsGroupPerm object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $perm)
 {
     $className = 'XoopsGroupPerm';
     if (!$perm instanceof $className) {
         return false;
     }
     if (!$perm->isDirty()) {
         return true;
     }
     if (!$perm->cleanVars()) {
         return false;
     }
     foreach ($perm->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($perm->isNew()) {
         $gperm_id = $this->db->genId('group_permission_gperm_id_seq');
         $sql = sprintf('INSERT INTO %s (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (%u, %u, %u, %u, %s)', $this->db->prefix('group_permission'), $gperm_id, $gperm_groupid, $gperm_itemid, $gperm_modid, $this->db->quoteString($gperm_name));
     } else {
         $sql = sprintf('UPDATE %s SET gperm_groupid = %u, gperm_itemid = %u, gperm_modid = %u WHERE gperm_id = %u', $this->db->prefix('group_permission'), $gperm_groupid, $gperm_itemid, $gperm_modid, $gperm_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($gperm_id)) {
         $gperm_id = $this->db->getInsertId();
     }
     $perm->assignVar('gperm_id', $gperm_id);
     return true;
 }
示例#3
0
 /**
  * Write a {@link XoopsImageSetImg} object to the database
  *
  * @param  XoopsObject|XoopsImageSetImg $imgsetimg a XoopsImageSet object
  *
  * @return bool true on success, otherwise false
  **/
 public function insert(XoopsObject $imgsetimg)
 {
     $className = 'XoopsImageSetImg';
     if (!$imgsetimg instanceof $className) {
         return false;
     }
     if (!$imgsetimg->isDirty()) {
         return true;
     }
     if (!$imgsetimg->cleanVars()) {
         return false;
     }
     foreach ($imgsetimg->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($imgsetimg->isNew()) {
         $imgsetimg_id = $this->db->genId('imgsetimg_imgsetimg_id_seq');
         $sql = sprintf('INSERT INTO %s (imgsetimg_id, imgsetimg_file, imgsetimg_body, imgsetimg_imgset) VALUES (%u, %s, %s, %s)', $this->db->prefix('imgsetimg'), $imgsetimg_id, $this->db->quoteString($imgsetimg_file), $this->db->quoteString($imgsetimg_body), $this->db->quoteString($imgsetimg_imgset));
     } else {
         $sql = sprintf('UPDATE %s SET imgsetimg_file = %s, imgsetimg_body = %s, imgsetimg_imgset = %s WHERE imgsetimg_id = %u', $this->db->prefix('imgsetimg'), $this->db->quoteString($imgsetimg_file), $this->db->quoteString($imgsetimg_body), $this->db->quoteString($imgsetimg_imgset), $imgsetimg_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($imgsetimg_id)) {
         $imgsetimg_id = $this->db->getInsertId();
     }
     $imgsetimg->assignVar('imgsetimg_id', $imgsetimg_id);
     return true;
 }
示例#4
0
 /**
  * Store a {@link XoopsConfigCategory}
  *
  * @param XoopsObject|XoopsConfigCategory $confcat a XoopsConfigCategory object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $confcat)
 {
     $className = 'XoopsConfigCategory';
     if (!$confcat instanceof $className) {
         return false;
     }
     if (!$confcat->isDirty()) {
         return true;
     }
     if (!$confcat->cleanVars()) {
         return false;
     }
     foreach ($confcat->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($confcat->isNew()) {
         $confcat_id = $this->db->genId('configcategory_confcat_id_seq');
         $sql = sprintf('INSERT INTO %s (confcat_id, confcat_name, confcat_order) VALUES (%u, %s, %u)', $this->db->prefix('configcategory'), $confcat_id, $this->db->quoteString($confcat_name), $confcat_order);
     } else {
         $sql = sprintf('UPDATE %s SET confcat_name = %s, confcat_order = %u WHERE confcat_id = %u', $this->db->prefix('configcategory'), $this->db->quoteString($confcat_name), $confcat_order, $confcat_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($confcat_id)) {
         $confcat_id = $this->db->getInsertId();
     }
     $confcat->assignVar('confcat_id', $confcat_id);
     return $confcat_id;
 }
示例#5
0
 /**
  * Insert a new {@link XoopsConfigOption}
  *
  * @param XoopsObject|XoopsConfigOption $confoption a XoopsConfigOption object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $confoption)
 {
     $className = 'XoopsConfigOption';
     if (!$confoption instanceof $className) {
         return false;
     }
     if (!$confoption->isDirty()) {
         return true;
     }
     if (!$confoption->cleanVars()) {
         return false;
     }
     $confop_id = $confoption->getVar('confop_id');
     $confop_name = $confoption->getVar('confop_name');
     $confop_value = $confoption->getVar('confop_value');
     $conf_id = $confoption->getVar('conf_id');
     if ($confoption->isNew()) {
         $confop_id = $this->db->genId('configoption_confop_id_seq');
         $sql = sprintf('INSERT INTO %s (confop_id, confop_name, confop_value, conf_id) VALUES (%u, %s, %s, %u)', $this->db->prefix('configoption'), $confop_id, $this->db->quote($confop_name), $this->db->quote($confop_value), $conf_id);
     } else {
         $sql = sprintf('UPDATE %s SET confop_name = %s, confop_value = %s WHERE confop_id = %u', $this->db->prefix('configoption'), $this->db->quote($confop_name), $this->db->quote($confop_value), $confop_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($confop_id)) {
         $confop_id = $this->db->getInsertId();
     }
     $confoption->assignVar('confop_id', $confop_id);
     return $confop_id;
 }
示例#6
0
 /**
  * Write a {@link XoopsImageCategory} object to the database
  *
  * @param  XoopsObject|XoopsImageCategory $imgcat a XoopsImageCategory object
  *
  * @return bool true on success, otherwise false
  **/
 public function insert(XoopsObject $imgcat)
 {
     $className = 'XoopsImageCategory';
     if (!$imgcat instanceof $className) {
         return false;
     }
     if (!$imgcat->isDirty()) {
         return true;
     }
     if (!$imgcat->cleanVars()) {
         return false;
     }
     foreach ($imgcat->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($imgcat->isNew()) {
         $imgcat_id = $this->db->genId('imgcat_imgcat_id_seq');
         $sql = sprintf('INSERT INTO %s (imgcat_id, imgcat_name, imgcat_display, imgcat_weight, imgcat_maxsize, imgcat_maxwidth, imgcat_maxheight, imgcat_type, imgcat_storetype) VALUES (%u, %s, %u, %u, %u, %u, %u, %s, %s)', $this->db->prefix('imagecategory'), $imgcat_id, $this->db->quoteString($imgcat_name), $imgcat_display, $imgcat_weight, $imgcat_maxsize, $imgcat_maxwidth, $imgcat_maxheight, $this->db->quoteString($imgcat_type), $this->db->quoteString($imgcat_storetype));
     } else {
         $sql = sprintf('UPDATE %s SET imgcat_name = %s, imgcat_display = %u, imgcat_weight = %u, imgcat_maxsize = %u, imgcat_maxwidth = %u, imgcat_maxheight = %u, imgcat_type = %s WHERE imgcat_id = %u', $this->db->prefix('imagecategory'), $this->db->quoteString($imgcat_name), $imgcat_display, $imgcat_weight, $imgcat_maxsize, $imgcat_maxwidth, $imgcat_maxheight, $this->db->quoteString($imgcat_type), $imgcat_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($imgcat_id)) {
         $imgcat_id = $this->db->getInsertId();
     }
     $imgcat->assignVar('imgcat_id', $imgcat_id);
     return true;
 }
示例#7
0
 /**
  * Insert and Object into the database
  *
  * @param  XoopsObject|XoopsAvatar $avatar a XoopsAvatar object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $avatar)
 {
     $className = 'XoopsAvatar';
     if (!$avatar instanceof $className) {
         return false;
     }
     if (!$avatar->isDirty()) {
         return true;
     }
     if (!$avatar->cleanVars()) {
         return false;
     }
     foreach ($avatar->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($avatar->isNew()) {
         $avatar_id = $this->db->genId('avatar_avatar_id_seq');
         $sql = sprintf('INSERT INTO %s (avatar_id, avatar_file, avatar_name, avatar_created, avatar_mimetype, avatar_display, avatar_weight, avatar_type) VALUES (%u, %s, %s, %u, %s, %u, %u, %s)', $this->db->prefix('avatar'), $avatar_id, $this->db->quoteString($avatar_file), $this->db->quoteString($avatar_name), time(), $this->db->quoteString($avatar_mimetype), $avatar_display, $avatar_weight, $this->db->quoteString($avatar_type));
     } else {
         $sql = sprintf('UPDATE %s SET avatar_file = %s, avatar_name = %s, avatar_created = %u, avatar_mimetype= %s, avatar_display = %u, avatar_weight = %u, avatar_type = %s WHERE avatar_id = %u', $this->db->prefix('avatar'), $this->db->quoteString($avatar_file), $this->db->quoteString($avatar_name), $avatar_created, $this->db->quoteString($avatar_mimetype), $avatar_display, $avatar_weight, $this->db->quoteString($avatar_type), $avatar_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($avatar_id)) {
         $avatar_id = $this->db->getInsertId();
     }
     $avatar->assignVar('avatar_id', $avatar_id);
     return true;
 }
 function cleanVars()
 {
     $iret = parent::cleanVars();
     foreach ($this->vars as $k => $v) {
         $cleanv = $v['value'];
         if (!$v['changed']) {
         } else {
             $cleanv = is_string($cleanv) ? trim($cleanv) : $cleanv;
             switch ($v['data_type']) {
                 case XOBJ_DTYPE_FLOAT:
                     $cleanv = (double) $cleanv;
                     break;
                 default:
                     break;
             }
             //個別の変数チェックがあれば実行;
             $checkMethod = 'checkVar_' . $k;
             if (method_exists($this, $checkMethod)) {
                 $this->{$checkMethod}($cleanv);
             }
         }
         $this->cleanVars[$k] =& $cleanv;
         unset($cleanv);
     }
     if (count($this->_errors) > 0) {
         return false;
     }
     $this->unsetDirty();
     return true;
 }
示例#9
0
 /**
  * write a new block into the database
  *
  * @param  XoopsObject|XoopsTplset $tplset a XoopsTplset object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $tplset)
 {
     $className = 'XoopsTplset';
     if (!$tplset instanceof $className) {
         return false;
     }
     if (!$tplset->isDirty()) {
         return true;
     }
     if (!$tplset->cleanVars()) {
         return false;
     }
     foreach ($tplset->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($tplset->isNew()) {
         $tplset_id = $this->db->genId('tplset_tplset_id_seq');
         $sql = sprintf('INSERT INTO %s (tplset_id, tplset_name, tplset_desc, tplset_credits, tplset_created) VALUES (%u, %s, %s, %s, %u)', $this->db->prefix('tplset'), $tplset_id, $this->db->quoteString($tplset_name), $this->db->quoteString($tplset_desc), $this->db->quoteString($tplset_credits), $tplset_created);
     } else {
         $sql = sprintf('UPDATE %s SET tplset_name = %s, tplset_desc = %s, tplset_credits = %s, tplset_created = %u WHERE tplset_id = %u', $this->db->prefix('tplset'), $this->db->quoteString($tplset_name), $this->db->quoteString($tplset_desc), $this->db->quoteString($tplset_credits), $tplset_created, $tplset_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($tplset_id)) {
         $tplset_id = $this->db->getInsertId();
     }
     $tplset->assignVar('tplset_id', $tplset_id);
     return true;
 }
示例#10
0
 /**
  * save a profile field in the database
  *
  * @param XoopsObject|ProfileField $obj   reference to the object
  * @param bool                     $force whether to force the query execution despite security settings
  *
  * @internal param bool $checkObject check if the object is dirty and clean the attributes
  * @return bool FALSE if failed, TRUE if already present and unchanged or successful
  */
 public function insert(XoopsObject $obj, $force = false)
 {
     if (!$obj instanceof $this->className) {
         return false;
     }
     $profile_handler = xoops_getModuleHandler('profile', 'profile');
     $obj->setVar('field_name', str_replace(' ', '_', $obj->getVar('field_name')));
     $obj->cleanVars();
     $defaultstring = '';
     switch ($obj->getVar('field_type')) {
         case 'datetime':
         case 'date':
             $obj->setVar('field_valuetype', XOBJ_DTYPE_INT);
             $obj->setVar('field_maxlength', 10);
             break;
         case 'longdate':
             $obj->setVar('field_valuetype', XOBJ_DTYPE_MTIME);
             break;
         case 'yesno':
             $obj->setVar('field_valuetype', XOBJ_DTYPE_INT);
             $obj->setVar('field_maxlength', 1);
             break;
         case 'textbox':
             if ($obj->getVar('field_valuetype') != XOBJ_DTYPE_INT) {
                 $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTBOX);
             }
             break;
         case 'autotext':
             if ($obj->getVar('field_valuetype') != XOBJ_DTYPE_INT) {
                 $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTAREA);
             }
             break;
         case 'group_multi':
         case 'select_multi':
         case 'checkbox':
             $obj->setVar('field_valuetype', XOBJ_DTYPE_ARRAY);
             break;
         case 'language':
         case 'timezone':
         case 'theme':
             $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTBOX);
             break;
         case 'dhtml':
         case 'textarea':
             $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTAREA);
             break;
     }
     if ($obj->getVar('field_valuetype') === '') {
         $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTBOX);
     }
     if (!in_array($obj->getVar('field_name'), $this->getUserVars()) && isset($_REQUEST['field_required'])) {
         if ($obj->isNew()) {
             //add column to table
             $changetype = 'ADD';
         } else {
             //update column information
             $changetype = 'CHANGE `' . $obj->getVar('field_name', 'n') . '`';
         }
         $maxlengthstring = $obj->getVar('field_maxlength') > 0 ? '(' . $obj->getVar('field_maxlength') . ')' : '';
         //set type
         switch ($obj->getVar('field_valuetype')) {
             default:
             case XOBJ_DTYPE_ARRAY:
             case XOBJ_DTYPE_UNICODE_ARRAY:
                 $type = 'mediumtext';
                 break;
             case XOBJ_DTYPE_UNICODE_EMAIL:
             case XOBJ_DTYPE_UNICODE_TXTBOX:
             case XOBJ_DTYPE_UNICODE_URL:
             case XOBJ_DTYPE_EMAIL:
             case XOBJ_DTYPE_TXTBOX:
             case XOBJ_DTYPE_URL:
                 $type = 'varchar';
                 // varchars must have a maxlength
                 if (!$maxlengthstring) {
                     //so set it to max if maxlength is not set - or should it fail?
                     $maxlengthstring = '(255)';
                     $obj->setVar('field_maxlength', 255);
                 }
                 break;
             case XOBJ_DTYPE_INT:
                 $type = 'int';
                 break;
             case XOBJ_DTYPE_DECIMAL:
                 $type = 'decimal(14,6)';
                 break;
             case XOBJ_DTYPE_FLOAT:
                 $type = 'float(15,9)';
                 break;
             case XOBJ_DTYPE_OTHER:
             case XOBJ_DTYPE_UNICODE_TXTAREA:
             case XOBJ_DTYPE_TXTAREA:
                 $type = 'text';
                 $maxlengthstring = '';
                 break;
             case XOBJ_DTYPE_MTIME:
                 $type = 'date';
                 $maxlengthstring = '';
                 break;
         }
         $sql = 'ALTER TABLE `' . $profile_handler->table . '` ' . $changetype . ' `' . $obj->cleanVars['field_name'] . '` ' . $type . $maxlengthstring . ' NULL';
         $result = $force ? $this->db->queryF($sql) : $this->db->query($sql);
         if (!$result) {
             return false;
         }
     }
     //change this to also update the cached field information storage
     $obj->setDirty();
     if (!parent::insert($obj, $force)) {
         return false;
     }
     return $obj->getVar('field_id');
 }
示例#11
0
 /**
  * Write a notification(subscription) to database
  *
  * @param  XoopsObject|XoopsNotification $notification a XoopsNotification object
  *
  * @return bool true on success, otherwise false
  **/
 public function insert(XoopsObject $notification)
 {
     $className = 'XoopsNotification';
     if (!$notification instanceof $className) {
         return false;
     }
     if (!$notification->isDirty()) {
         return true;
     }
     if (!$notification->cleanVars()) {
         return false;
     }
     foreach ($notification->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($notification->isNew()) {
         $not_id = $this->db->genId('xoopsnotifications_not_id_seq');
         $sql = sprintf('INSERT INTO %s (not_id, not_modid, not_itemid, not_category, not_uid, not_event, not_mode) VALUES (%u, %u, %u, %s, %u, %s, %u)', $this->db->prefix('xoopsnotifications'), $not_id, $not_modid, $not_itemid, $this->db->quoteString($not_category), $not_uid, $this->db->quoteString($not_event), $not_mode);
     } else {
         $sql = sprintf('UPDATE %s SET not_modid = %u, not_itemid = %u, not_category = %s, not_uid = %u, not_event = %s, not_mode = %u WHERE not_id = %u', $this->db->prefix('xoopsnotifications'), $not_modid, $not_itemid, $this->db->quoteString($not_category), $not_uid, $this->db->quoteString($not_event), $not_mode, $not_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($not_id)) {
         $not_id = $this->db->getInsertId();
     }
     $notification->assignVar('not_id', $not_id);
     return true;
 }
示例#12
0
 /**
  * Write a comment to database
  *
  * @param XoopsObject|XoopsComment $comment a XoopsComment object
  *
  * @return bool true on success, otherwise false
  **/
 public function insert(XoopsObject $comment)
 {
     $className = 'XoopsComment';
     if (!$comment instanceof $className) {
         return false;
     }
     if (!$comment->isDirty()) {
         return true;
     }
     if (!$comment->cleanVars()) {
         return false;
     }
     foreach ($comment->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     // Start edit by voltan
     if ($comment->isNew()) {
         $com_id = $this->db->genId('xoopscomments_com_id_seq');
         $sql = sprintf('INSERT INTO %s (com_id, com_pid, com_modid, com_icon, com_title, com_text, com_created, com_modified, com_uid, com_user, com_email, com_url, com_ip, com_sig, com_itemid, com_rootid, com_status, com_exparams, dohtml, dosmiley, doxcode, doimage, dobr) VALUES (%u, %u, %u, %s, %s, %s, %u, %u, %u, %s, %s, %s, %s, %u, %u, %u, %u, %s, %u, %u, %u, %u, %u)', $this->db->prefix('xoopscomments'), $com_id, $com_pid, $com_modid, $this->db->quoteString($com_icon), $this->db->quoteString($com_title), $this->db->quoteString($com_text), $com_created, $com_modified, $com_uid, $this->db->quoteString($com_user), $this->db->quoteString($com_email), $this->db->quoteString($com_url), $this->db->quoteString($com_ip), $com_sig, $com_itemid, $com_rootid, $com_status, $this->db->quoteString($com_exparams), $dohtml, $dosmiley, $doxcode, $doimage, $dobr);
     } else {
         $sql = sprintf('UPDATE %s SET com_pid = %u, com_icon = %s, com_title = %s, com_text = %s, com_created = %u, com_modified = %u, com_uid = %u, com_user = %s, com_email = %s, com_url = %s, com_ip = %s, com_sig = %u, com_itemid = %u, com_rootid = %u, com_status = %u, com_exparams = %s, dohtml = %u, dosmiley = %u, doxcode = %u, doimage = %u, dobr = %u WHERE com_id = %u', $this->db->prefix('xoopscomments'), $com_pid, $this->db->quoteString($com_icon), $this->db->quoteString($com_title), $this->db->quoteString($com_text), $com_created, $com_modified, $com_uid, $this->db->quoteString($com_user), $this->db->quoteString($com_email), $this->db->quoteString($com_url), $this->db->quoteString($com_ip), $com_sig, $com_itemid, $com_rootid, $com_status, $this->db->quoteString($com_exparams), $dohtml, $dosmiley, $doxcode, $doimage, $dobr, $com_id);
     }
     // End edit by voltan
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($com_id)) {
         $com_id = $this->db->getInsertId();
     }
     $comment->assignVar('com_id', $com_id);
     return true;
 }
示例#13
0
 /**
  * save a profile field in the database
  *
  * @param XoopsObject|ProfileField $obj reference to the object
  * @param bool $force whether to force the query execution despite security settings
  * @return bool FALSE if failed, TRUE if already present and unchanged or successful
  */
 public function insertFields(XoopsObject $obj, $force = false)
 {
     $xoops = Xoops::getInstance();
     $profile_handler = $xoops->getModuleHandler('profile', 'profile');
     $obj->setVar('field_name', str_replace(' ', '_', $obj->getVar('field_name')));
     $obj->cleanVars(false);
     //Don't quote
     switch ($obj->getVar('field_type')) {
         case "datetime":
         case "date":
             $obj->setVar('field_valuetype', XOBJ_DTYPE_INT);
             $obj->setVar('field_maxlength', 10);
             break;
         case "longdate":
             $obj->setVar('field_valuetype', XOBJ_DTYPE_MTIME);
             break;
         case "yesno":
             $obj->setVar('field_valuetype', XOBJ_DTYPE_INT);
             $obj->setVar('field_maxlength', 1);
             break;
         case "textbox":
             if ($obj->getVar('field_valuetype') != XOBJ_DTYPE_INT) {
                 $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTBOX);
             }
             break;
         case "autotext":
             if ($obj->getVar('field_valuetype') != XOBJ_DTYPE_INT) {
                 $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTAREA);
             }
             break;
         case "group_multi":
         case "select_multi":
         case "checkbox":
             $obj->setVar('field_valuetype', XOBJ_DTYPE_ARRAY);
             break;
         case "language":
         case "timezone":
         case "theme":
             $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTBOX);
             break;
         case "dhtml":
         case "textarea":
             $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTAREA);
             break;
     }
     if ($obj->getVar('field_valuetype') == "") {
         $obj->setVar('field_valuetype', XOBJ_DTYPE_TXTBOX);
     }
     if (!in_array($obj->getVar('field_name'), $this->getUserVars())) {
         if ($obj->isNew()) {
             //add column to table
             $changetype = "ADD";
         } else {
             //update column information
             $changetype = "CHANGE `" . $obj->getVar('field_name', 'n') . "`";
         }
         $maxlengthstring = $obj->getVar('field_maxlength') > 0 ? "(" . $obj->getVar('field_maxlength') . ")" : "";
         //set type
         switch ($obj->getVar('field_valuetype')) {
             default:
             case XOBJ_DTYPE_ARRAY:
             case XOBJ_DTYPE_EMAIL:
             case XOBJ_DTYPE_TXTBOX:
             case XOBJ_DTYPE_URL:
                 $type = "varchar";
                 // varchars must have a maxlength
                 if (!$maxlengthstring) {
                     //so set it to max if maxlength is not set - or should it fail?
                     $maxlengthstring = "(255)";
                     $obj->setVar('field_maxlength', 255);
                 }
                 break;
             case XOBJ_DTYPE_INT:
                 $type = "int";
                 break;
             case XOBJ_DTYPE_DECIMAL:
                 $type = "decimal(14,6)";
                 break;
             case XOBJ_DTYPE_FLOAT:
                 $type = "float(15,9)";
                 break;
             case XOBJ_DTYPE_OTHER:
             case XOBJ_DTYPE_TXTAREA:
                 $type = "text";
                 $maxlengthstring = "";
                 break;
             case XOBJ_DTYPE_MTIME:
                 $type = "date";
                 $maxlengthstring = "";
                 break;
         }
         $sql = "ALTER TABLE `" . $profile_handler->table . "` " . $changetype . " `" . $obj->cleanVars['field_name'] . "` " . $type . $maxlengthstring . ' NULL';
         if (!$this->db->query($sql)) {
             return false;
         }
     }
     //change this to also update the cached field information storage
     $obj->setDirty();
     if (!parent::insert($obj, $force)) {
         return false;
     }
     return $obj->getVar('field_id');
 }
示例#14
0
 /**
  * Write a module to the database
  *
  * @param  XoopsObject|XoopsModule $module a XoopsModule object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $module)
 {
     $className = 'XoopsModule';
     if (!$module instanceof $className) {
         return false;
     }
     if (!$module->isDirty()) {
         return true;
     }
     if (!$module->cleanVars()) {
         return false;
     }
     foreach ($module->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($module->isNew()) {
         $mid = $this->db->genId('modules_mid_seq');
         $sql = sprintf('INSERT INTO %s (mid, name, version, last_update, weight, isactive, dirname, hasmain, hasadmin, hassearch, hasconfig, hascomments, hasnotification) VALUES (%u, %s, %u, %u, %u, %u, %s, %u, %u, %u, %u, %u, %u)', $this->db->prefix('modules'), $mid, $this->db->quoteString($name), $version, time(), $weight, 1, $this->db->quoteString($dirname), $hasmain, $hasadmin, $hassearch, $hasconfig, $hascomments, $hasnotification);
     } else {
         $sql = sprintf('UPDATE %s SET name = %s, dirname = %s, version = %u, last_update = %u, weight = %u, isactive = %u, hasmain = %u, hasadmin = %u, hassearch = %u, hasconfig = %u, hascomments = %u, hasnotification = %u WHERE mid = %u', $this->db->prefix('modules'), $this->db->quoteString($name), $this->db->quoteString($dirname), $version, time(), $weight, $isactive, $hasmain, $hasadmin, $hassearch, $hasconfig, $hascomments, $hasnotification, $mid);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($mid)) {
         $mid = $this->db->getInsertId();
     }
     $module->assignVar('mid', $mid);
     if (!empty($this->_cachedModule_dirname[$dirname])) {
         unset($this->_cachedModule_dirname[$dirname]);
     }
     if (!empty($this->_cachedModule_mid[$mid])) {
         unset($this->_cachedModule_mid[$mid]);
     }
     return true;
 }
示例#15
0
 /**
  * Write a {@link XoopsImage} object to the database
  *
  * @param  XoopsObject|XoopsImage $image a XoopsImage object
  *
  * @return bool true on success, otherwise false
  **/
 public function insert(XoopsObject $image)
 {
     $className = 'XoopsImage';
     if (!$image instanceof $className) {
         return false;
     }
     if (!$image->isDirty()) {
         return true;
     }
     if (!$image->cleanVars()) {
         return false;
     }
     foreach ($image->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($image->isNew()) {
         $image_id = $this->db->genId('image_image_id_seq');
         $sql = sprintf('INSERT INTO %s (image_id, image_name, image_nicename, image_mimetype, image_created, image_display, image_weight, imgcat_id) VALUES (%u, %s, %s, %s, %u, %u, %u, %u)', $this->db->prefix('image'), $image_id, $this->db->quoteString($image_name), $this->db->quoteString($image_nicename), $this->db->quoteString($image_mimetype), time(), $image_display, $image_weight, $imgcat_id);
         if (!($result = $this->db->query($sql))) {
             return false;
         }
         if (empty($image_id)) {
             $image_id = $this->db->getInsertId();
         }
         if (isset($image_body) && $image_body != '') {
             $sql = sprintf('INSERT INTO %s (image_id, image_body) VALUES (%u, %s)', $this->db->prefix('imagebody'), $image_id, $this->db->quoteString($image_body));
             if (!($result = $this->db->query($sql))) {
                 $sql = sprintf('DELETE FROM %s WHERE image_id = %u', $this->db->prefix('image'), $image_id);
                 $this->db->query($sql);
                 return false;
             }
         }
         $image->assignVar('image_id', $image_id);
     } else {
         $sql = sprintf('UPDATE %s SET image_name = %s, image_nicename = %s, image_display = %u, image_weight = %u, imgcat_id = %u WHERE image_id = %u', $this->db->prefix('image'), $this->db->quoteString($image_name), $this->db->quoteString($image_nicename), $image_display, $image_weight, $imgcat_id, $image_id);
         if (!($result = $this->db->query($sql))) {
             return false;
         }
         if (isset($image_body) && $image_body != '') {
             $sql = sprintf('UPDATE %s SET image_body = %s WHERE image_id = %u', $this->db->prefix('imagebody'), $this->db->quoteString($image_body), $image_id);
             if (!($result = $this->db->query($sql))) {
                 $this->db->query(sprintf('DELETE FROM %s WHERE image_id = %u', $this->db->prefix('image'), $image_id));
                 return false;
             }
         }
     }
     return true;
 }
示例#16
0
 /**
  * Insert a message in the database
  *
  * @param  XoopsPrivmessage $pm    {@link XoopsPrivmessage} object
  * @param  bool   $force flag to force the query execution skip request method check, which might be required in some situations
  * @param  XoopsObject|XoopsPrivmessage $pm a XoopsMembership object
  *
  * @return bool true on success, otherwise false
  **/
 public function insert(XoopsObject $pm, $force = false)
 {
     $className = 'XoopsPrivmessage';
     if (!$pm instanceof $className) {
         return false;
     }
     if (!$pm->isDirty()) {
         return true;
     }
     if (!$pm->cleanVars()) {
         return false;
     }
     foreach ($pm->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($pm->isNew()) {
         $msg_id = $this->db->genId('priv_msgs_msg_id_seq');
         $sql = sprintf('INSERT INTO %s (msg_id, msg_image, subject, from_userid, to_userid, msg_time, msg_text, read_msg) VALUES (%u, %s, %s, %u, %u, %u, %s, %u)', $this->db->prefix('priv_msgs'), $msg_id, $this->db->quoteString($msg_image), $this->db->quoteString($subject), $from_userid, $to_userid, time(), $this->db->quoteString($msg_text), 0);
     } else {
         $sql = sprintf('UPDATE %s SET msg_image = %s, subject = %s, from_userid = %u, to_userid = %u, msg_text = %s, read_msg = %u WHERE msg_id = %u', $this->db->prefix('priv_msgs'), $this->db->quoteString($msg_image), $this->db->quoteString($subject), $from_userid, $to_userid, $this->db->quoteString($msg_text), $read_msg, $msg_id);
     }
     $queryFunc = empty($force) ? 'query' : 'queryF';
     if (!($result = $this->db->{$queryFunc}($sql))) {
         return false;
     }
     if (empty($msg_id)) {
         $msg_id = $this->db->getInsertId();
     }
     $pm->assignVar('msg_id', $msg_id);
     return true;
 }
示例#17
0
 /**
  * inserts a membership in the database
  *
  * @param  XoopsObject|XoopsMembership $mship a XoopsMembership object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $mship)
 {
     $className = 'XoopsMembership';
     if (!$mship instanceof $className) {
         return false;
     }
     if (!$mship->isDirty()) {
         return true;
     }
     if (!$mship->cleanVars()) {
         return false;
     }
     foreach ($mship->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($mship->isNew()) {
         $linkid = $this->db->genId('groups_users_link_linkid_seq');
         $sql = sprintf('INSERT INTO %s (linkid, groupid, uid) VALUES (%u, %u, %u)', $this->db->prefix('groups_users_link'), $linkid, $groupid, $uid);
     } else {
         $sql = sprintf('UPDATE %s SET groupid = %u, uid = %u WHERE linkid = %u', $this->db->prefix('groups_users_link'), $groupid, $uid, $linkid);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($linkid)) {
         $linkid = $this->db->getInsertId();
     }
     $mship->assignVar('linkid', $linkid);
     return true;
 }
示例#18
0
 /**
  * Write a config to the database
  *
  * @param XoopsObject|XoopsConfigItem $config a XoopsConfigCategory object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $config)
 {
     $className = 'XoopsConfigItem';
     if (!$config instanceof $className) {
         return false;
     }
     if (!$config->isDirty()) {
         return true;
     }
     if (!$config->cleanVars()) {
         return false;
     }
     $conf_id = $config->getVar('conf_id', 'n');
     $conf_modid = $config->getVar('conf_modid', 'n');
     $conf_catid = $config->getVar('conf_catid', 'n');
     $conf_name = $config->getVar('conf_name', 'n');
     $conf_title = $config->getVar('conf_title', 'n');
     $conf_value = $config->getVar('conf_value', 'n');
     $conf_desc = $config->getVar('conf_desc', 'n');
     $conf_formtype = $config->getVar('conf_formtype', 'n');
     $conf_valuetype = $config->getVar('conf_valuetype', 'n');
     $conf_order = $config->getVar('conf_order', 'n');
     if ($config->isNew()) {
         $conf_id = $this->db->genId('config_conf_id_seq');
         $sql = sprintf('INSERT INTO %s (conf_id, conf_modid, conf_catid, conf_name, conf_title, conf_value, conf_desc, conf_formtype, conf_valuetype, conf_order) VALUES (%u, %u, %u, %s, %s, %s, %s, %s, %s, %u)', $this->db->prefix('config'), $conf_id, $conf_modid, $conf_catid, $this->db->quoteString($conf_name), $this->db->quoteString($conf_title), $this->db->quoteString($conf_value), $this->db->quoteString($conf_desc), $this->db->quoteString($conf_formtype), $this->db->quoteString($conf_valuetype), $conf_order);
     } else {
         $sql = sprintf('UPDATE %s SET conf_modid = %u, conf_catid = %u, conf_name = %s, conf_title = %s, conf_value = %s, conf_desc = %s, conf_formtype = %s, conf_valuetype = %s, conf_order = %u WHERE conf_id = %u', $this->db->prefix('config'), $conf_modid, $conf_catid, $this->db->quoteString($conf_name), $this->db->quoteString($conf_title), $this->db->quoteString($conf_value), $this->db->quoteString($conf_desc), $this->db->quoteString($conf_formtype), $this->db->quoteString($conf_valuetype), $conf_order, $conf_id);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($conf_id)) {
         $conf_id = $this->db->getInsertId();
     }
     $config->assignVar('conf_id', $conf_id);
     return true;
 }
示例#19
0
 /**
  * write a new block into the database
  *
  * @param XoopsObject|XoopsBlock $block a XoopsBlock object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $block)
 {
     $className = 'XoopsBlock';
     if (!$block instanceof $className) {
         return false;
     }
     if (!$block->isDirty()) {
         return true;
     }
     if (!$block->cleanVars()) {
         return false;
     }
     $bid = $block->getVar('bid', 'n');
     $mid = $block->getVar('mid', 'n');
     $func_num = $block->getVar('func_num', 'n');
     $options = $block->getVar('options', 'n');
     $name = $block->getVar('name', 'n');
     $title = $block->getVar('title', 'n');
     $content = $block->getVar('content', 'n');
     $side = $block->getVar('side', 'n');
     $weight = $block->getVar('weight', 'n');
     $visible = $block->getVar('visible', 'n');
     $c_type = $block->getVar('c_type', 'n');
     $isactive = $block->getVar('isactive', 'n');
     $func_file = $block->getVar('func_file', 'n');
     $show_func = $block->getVar('show_func', 'n');
     $edit_func = $block->getVar('edit_func', 'n');
     $template = $block->getVar('template', 'n');
     $bcachetime = $block->getVar('bcachetime', 'n');
     $block_type = $block->getVar('block_type', 'n');
     $dirname = $block->getVar('dirname', 'n');
     if ($block->isNew()) {
         $bid = $this->db->genId('newblocks_bid_seq');
         $sql = sprintf('INSERT INTO %s (bid, mid, func_num, options, name, title, content, side, weight, visible, block_type,' . ' c_type, isactive, dirname, func_file, show_func, edit_func, template, bcachetime, last_modified)' . " VALUES (%u, %u, %u, '%s', '%s', '%s', '%s', %u, %u, %u, '%s', '%s', %u, '%s', '%s', '%s', '%s'," . " '%s', %u, %u)", $this->db->prefix('newblocks'), $bid, $mid, $func_num, $options, $name, $title, $content, $side, $weight, $visible, $block_type, $c_type, 1, $dirname, $func_file, $show_func, $edit_func, $template, $bcachetime, time());
     } else {
         $sql = sprintf("UPDATE %s SET func_num = %u, options = '%s', name = '%s', title = '%s', content = '%s', side = %u," . " weight = %u, visible = %u, c_type = '%s', isactive = %u, func_file = '%s', show_func = '%s'," . " edit_func = '%s', template = '%s', bcachetime = %u, last_modified = %u WHERE bid = %u", $this->db->prefix('newblocks'), $func_num, $options, $name, $title, $content, $side, $weight, $visible, $c_type, $isactive, $func_file, $show_func, $edit_func, $template, $bcachetime, time(), $bid);
     }
     if (!($result = $this->db->query($sql))) {
         return false;
     }
     if (empty($bid)) {
         $bid = $this->db->getInsertId();
     }
     $block->assignVar('bid', $bid);
     return true;
 }
示例#20
0
 /**
  * write a new Tplfile into the database
  *
  * @param  XoopsObject|XoopsTplfile $tplfile a XoopsTplfile object
  *
  * @return bool true on success, otherwise false
  */
 public function insert(XoopsObject $tplfile)
 {
     $className = 'XoopsTplfile';
     if (!$tplfile instanceof $className) {
         return false;
     }
     if (!$tplfile->isDirty()) {
         return true;
     }
     if (!$tplfile->cleanVars()) {
         return false;
     }
     foreach ($tplfile->cleanVars as $k => $v) {
         ${$k} = $v;
     }
     if ($tplfile->isNew()) {
         $tpl_id = $this->db->genId('tpltpl_file_id_seq');
         $sql = sprintf('INSERT INTO %s (tpl_id, tpl_module, tpl_refid, tpl_tplset, tpl_file, tpl_desc, tpl_lastmodified, tpl_lastimported, tpl_type) VALUES (%u, %s, %u, %s, %s, %s, %u, %u, %s)', $this->db->prefix('tplfile'), $tpl_id, $this->db->quoteString($tpl_module), $tpl_refid, $this->db->quoteString($tpl_tplset), $this->db->quoteString($tpl_file), $this->db->quoteString($tpl_desc), $tpl_lastmodified, $tpl_lastimported, $this->db->quoteString($tpl_type));
         if (!($result = $this->db->query($sql))) {
             return false;
         }
         if (empty($tpl_id)) {
             $tpl_id = $this->db->getInsertId();
         }
         if (isset($tpl_source) && $tpl_source != '') {
             $sql = sprintf('INSERT INTO %s (tpl_id, tpl_source) VALUES (%u, %s)', $this->db->prefix('tplsource'), $tpl_id, $this->db->quoteString($tpl_source));
             if (!($result = $this->db->query($sql))) {
                 $this->db->query(sprintf('DELETE FROM %s WHERE tpl_id = %u', $this->db->prefix('tplfile'), $tpl_id));
                 return false;
             }
         }
         $tplfile->assignVar('tpl_id', $tpl_id);
     } else {
         $sql = sprintf('UPDATE %s SET tpl_tplset = %s, tpl_file = %s, tpl_desc = %s, tpl_lastimported = %u, tpl_lastmodified = %u WHERE tpl_id = %u', $this->db->prefix('tplfile'), $this->db->quoteString($tpl_tplset), $this->db->quoteString($tpl_file), $this->db->quoteString($tpl_desc), $tpl_lastimported, $tpl_lastmodified, $tpl_id);
         if (!($result = $this->db->query($sql))) {
             return false;
         }
         if (isset($tpl_source) && $tpl_source != '') {
             $sql = sprintf('UPDATE %s SET tpl_source = %s WHERE tpl_id = %u', $this->db->prefix('tplsource'), $this->db->quoteString($tpl_source), $tpl_id);
             if (!($result = $this->db->query($sql))) {
                 return false;
             }
         }
     }
     return true;
 }