/** * Imports product data from request parameters. * @param string $source Source request method for parameters * @param array $ritem Existing product data from database * @param array $auth Permissions array * @return array Product data */ function cot_market_import($source = 'POST', $ritem = array(), $auth = array()) { global $cfg, $db_market, $cot_extrafields, $usr, $sys; if (count($auth) == 0) { $auth = cot_page_auth($ritem['item_cat']); } if ($source == 'D' || $source == 'DIRECT') { // A trick so we don't have to affect every line below global $_PATCH; $_PATCH = $ritem; $source = 'PATCH'; } $ritem['item_cat'] = cot_import('rcat', $source, 'TXT'); $ritem['item_title'] = cot_import('rtitle', $source, 'TXT'); $ritem['item_alias'] = cot_import('ralias', $source, 'TXT'); $ritem['item_text'] = cot_import('rtext', $source, 'HTM'); $ritem['item_cost'] = cot_import('rcost', $source, 'NUM'); $ritem['item_parser'] = cot_import('rparser', $source, 'ALP'); if (empty($ritem['item_date'])) { $ritem['item_date'] = (int) $sys['now']; } else { $ritem['item_update'] = (int) $sys['now']; } if ($auth['isadmin'] && isset($ritem['item_userid'])) { $ritem['item_count'] = cot_import('rcount', $source, 'INT'); $ritem['item_userid'] = $ritem['item_userid']; } else { $ritem['item_userid'] = $usr['id']; } // Extra fields foreach ($cot_extrafields[$db_market] as $exfld) { $ritem['item_' . $exfld['field_name']] = cot_import_extrafields('ritem' . $exfld['field_name'], $exfld, $source, $ritem['item_' . $exfld['field_name']]); } return $ritem; }
/** * Updates a page in the CMS. * @param integer $id Page ID * @param array $rpage Page data * @param array $auth Permissions array * @return boolean TRUE on success, FALSE on error */ function cot_page_update($id, &$rpage, $auth = array()) { global $cache, $cfg, $db, $db_pages, $db_structure, $structure, $L; if (cot_error_found()) { return false; } if (count($auth) == 0) { $auth = cot_page_auth($rpage['page_cat']); } if (!empty($rpage['page_alias'])) { $page_count = $db->query("SELECT COUNT(*) FROM {$db_pages} WHERE page_alias = ? AND page_id != ?", array($rpage['page_alias'], $id))->fetchColumn(); if ($page_count > 0) { $rpage['page_alias'] = $rpage['page_alias'] . rand(1000, 9999); } } $row_page = $db->query("SELECT * FROM {$db_pages} WHERE page_id = ?", $id)->fetch(); if ($row_page['page_cat'] != $rpage['page_cat'] && $row_page['page_state'] == 0) { $db->query("UPDATE {$db_structure} SET structure_count=structure_count-1 WHERE structure_code = ? AND structure_area = 'page'", $row_page['page_cat']); } //$usr['isadmin'] = cot_auth('page', $rpage['page_cat'], 'A'); if ($rpage['page_state'] == 0) { if ($auth['isadmin'] && $cfg['page']['autovalidate']) { if ($row_page['page_state'] != 0 || $row_page['page_cat'] != $rpage['page_cat']) { $db->query("UPDATE {$db_structure} SET structure_count=structure_count+1 WHERE structure_code = ? AND structure_area = 'page'", $rpage['page_cat']); } } else { $rpage['page_state'] = 1; } } if ($rpage['page_state'] != 0 && $row_page['page_state'] == 0) { $db->query("UPDATE {$db_structure} SET structure_count=structure_count-1 WHERE structure_code = ?", $rpage['page_cat']); } $cache && $cache->db->remove('structure', 'system'); if (!$db->update($db_pages, $rpage, 'page_id = ?', $id)) { return false; } cot_extrafield_movefiles(); /* === Hook === */ foreach (cot_getextplugins('page.edit.update.done') as $pl) { include $pl; } /* ===== */ if (($rpage['page_state'] == 0 || $rpage['page_cat'] != $row_page['page_cat']) && $cache) { if ($cfg['cache_page']) { $cache->page->clear('page/' . str_replace('.', '/', $structure['page'][$rpage['page_cat']]['path'])); if ($rpage['page_cat'] != $row_page['page_cat']) { $cache->page->clear('page/' . str_replace('.', '/', $structure['page'][$row_page['page_cat']]['path'])); } } if ($cfg['cache_index']) { $cache->page->clear('index'); } } return true; }