function do_edit_save($aid, $params) { $uid = false; if (array_key_exists('id', $params)) { $uid = $params['id']; $pass = trim($params['password']); unset($params['password']); cf\api\admin\doAction($aid, $params); if ($pass) { cf\User::setPassword($uid, $pass); } } else { $uid = cf\User::register($params['login'], $params['password'], $params['name'], $params['email'], $params['descr']); } if (cf\param::exist('roles')) { $roles = array_keys(cf\param::get('roles')); cf\execQuery('DELETE FROM cf_user_roles WHERE user_id=:uid', array('uid' => $uid)); $q = cf\createQuery('INSERT INTO cf_user_roles (user_id,role_id) VALUES(:userId,:roleId)'); $q->setParam('userId', $uid); foreach ($roles as $rid) { $q->setParam('roleId', $rid); $q->execute(); } } }
function do_edit_save($aid, $params) { $pid = cf\api\admin\doAction($aid, $params); if (array_key_exists('id', $params)) { $pid = $params['id']; } //update categories $pos = cf\query2arrays('SELECT group_id,sort_order FROM cf_products_in_groups WHERE product_id=:id', array('id' => $pid), false, 'group_id'); cf\execQuery('DELETE FROM cf_products_in_groups WHERE product_id=:id', array('id' => $pid)); $categories = cf\param::exist('category') ? cf\param::get('category') : array(); $q = cf\createQuery('INSERT INTO cf_products_in_groups (group_id,product_id,sort_order) VALUES(:groupId,:productId,:sortOrder)', array('productId' => $pid)); foreach ($categories as $catId) { $q->setParam('groupId', $catId); $q->setParam('sortOrder', array_key_exists($catId, $pos) ? $pos[$catId]['sort_order'] : 500); $q->execute(); } //update attributes if (cf\param::exist('attributes')) { $attrValues = cf\param::get('attributes'); $attributes = new cf\ProductAttributes($pid, true); foreach ($attributes as $attr) { if (array_key_exists($attr->id(), $attrValues)) { $attr->setValue($attrValues[$attr->id()]); } } $product = new cf\Product($pid); $product->setAttributes($attributes); } }
function do_edit_save($aid, $params) { $pid = cf\api\admin\doAction($aid, $params); if (array_key_exists('id', $params)) { $pid = $params['id']; } global $fk; if (!$fk) { //it's not an option //update categories $pos = cf\query2arrays('SELECT page_id,sort_order FROM cf_products_in_category WHERE product_id=:id', array('id' => $pid), false, 'page_id'); cf\execQuery('DELETE FROM cf_products_in_category WHERE product_id=:id', array('id' => $pid)); $categories = cf\param::exist('category') ? cf\param::get('category') : array(); $q = cf\createQuery('INSERT INTO cf_products_in_category (page_id,product_id,sort_order) VALUES(:categoryId,:productId,:sortOrder)', array('productId' => $pid)); foreach ($categories as $catId) { $q->setParam('categoryId', $catId); $q->setParam('sortOrder', array_key_exists($catId, $pos) ? $pos[$catId]['sort_order'] : 500); $q->execute(); } } //update attributes if (cf\param::exist('attributes')) { cf\execQuery("DELETE FROM cf_product_attributes WHERE product_id=:id", array('id' => $pid)); $q = cf\createQuery("INSERT INTO cf_product_attributes (product_id, attribute_id, attribute_value) VALUES (:pid,:aid,:val)"); $attrValues = cf\param::get('attributes'); foreach ($attrValues as $id => $val) { $q->setParam('pid', $pid); $q->setParam('aid', $id); $q->setParam('val', $val); $q->execute(); } } }
function do_edit_save($aid, $params) { global $step, $smarty, $view; if (array_key_exists('fields', $params)) { //step 2 submitted $addAction = cf\api\admin\getAction($view['add_action']['id']); $q = \cf\createQuery($addAction['query']); if (($f = fopen($params['csv'], 'r')) !== false) { $first = true; while (($values = fgetcsv($f, 0, $params['fields_delimiter'])) !== false) { if ($first) { $first = false; if ($params['has_names']) { continue; } } $p = array(); foreach ($params['fields'] as $nm => $pos) { $q->setParam($nm, $pos != '' ? $values[$pos] : null); } $q->execute(); } fclose($f); unlink($params['csv']); } else { die('error'); } } else { if (array_key_exists('csv', $_FILES)) { //step 1 submitted if (UPLOAD_ERR_OK != $_FILES['csv']['error'] || !is_uploaded_file($_FILES['csv']['tmp_name'])) { //if a file is not uploaded check upload_max_filesize or post_max_size in php.ini die('error'); } $path = cf\Config::path . '../upload/' . uniqid('csv'); if (move_uploaded_file($_FILES['csv']['tmp_name'], $path)) { chmod($path, 0644); } else { die('error'); } if (($f = fopen($path, 'r')) !== false) { $fdelim = $params['fields_delimiter'] != 'other' ? $params['fields_delimiter'] : $params['other_fields_delimiter']; $smarty->assign('csv_fields', json_encode(fgetcsv($f, 0, $fdelim))); fclose($f); $smarty->assign('csv', str_replace('\\', '/', $path)); $smarty->assign('has_names', $params['has_names']); $smarty->assign('fields_delimiter', $fdelim); $addAction = cf\api\admin\getAction($view['add_action']['id']); $smarty->assign('editParams', json_encode($addAction['params'])); $step = 2; } else { die('error'); } } } }
function do_edit_save($aid, $params) { $channelId = cf\api\admin\doAction($aid, $params); if (array_key_exists('id', $params)) { $channelId = $params['id']; } //update categories cf\execQuery('DELETE FROM cf_rss_channel_to_category WHERE channel_id=:id', array('id' => $channelId)); $cats = cf\param::exist('cat') ? cf\param::get('cat') : array(); $q = cf\createQuery('INSERT INTO cf_rss_channel_to_category (category_id,channel_id) VALUES(:catId,:channelId)', array('channelId' => $channelId)); foreach ($cats as $catId) { $q->setParam('catId', $catId); $q->execute(); } }
function save($id, $target) { if (!is_array($id)) { $id = array($id); } $q = \cf\createQuery('SELECT f FROM cf_tmp_files WHERE id=:id'); $qDel = \cf\createQuery('DELETE FROM cf_tmp_files WHERE id=:id'); foreach ($id as $i) { $f = pathinfo(\cf\query2var($q, array('id' => $i))); if ($f['basename']) { @rename($_SERVER['DOCUMENT_ROOT'] . '/' . $f['dirname'] . '/' . $f['basename'], $_SERVER['DOCUMENT_ROOT'] . "/{$target}/" . $f['basename']); } $qDel->setParam('id', $i)->execute(); } }
function do_edit_save($aid, $params) { $iId = cf\api\admin\doAction($aid, $params); if (array_key_exists('id', $params)) { $iId = $params['id']; } //update albums $pos = cf\query2arrays('SELECT album_id,sort_order FROM cf_gallery_image_in_album WHERE image_id=:id', array('id' => $iId), false, 'album_id'); cf\execQuery('DELETE FROM cf_gallery_image_in_album WHERE image_id=:id', array('id' => $iId)); $albums = cf\param::exist('album') ? cf\param::get('album') : array(); $q = cf\createQuery('INSERT INTO cf_gallery_image_in_album (album_id,image_id,sort_order) VALUES(:albumId,:imageId,:sortOrder)', array('imageId' => $iId)); foreach ($albums as $albumId) { $q->setParam('albumId', $albumId); $q->setParam('sortOrder', array_key_exists($albumId, $pos) ? $pos[$albumId]['sort_order'] : 500); $q->execute(); } }
function set($products) { $user = \cf\User::getLoggedIn(); if ($user) { clear(); $cartId = create(); $q = \cf\createQuery('INSERT INTO cf_products_in_cart (cart_id,product_id,amount) VALUES(:cid,:pid,:amt)'); foreach ($products as $id => $qty) { $q->setParam('cid', $cartId); $q->setParam('pid', $id); $q->setParam('amt', $qty); $q->execute(); } } else { $c = create(); $c->setParam('ready', $products); $c->set(); } return getList(); }
/** also deletes files */ function doDelete($aid, $params) { $user = \cf\User::getLoggedIn(); if (!array_key_exists(0, $params)) { $params = array($params); } $action = getAction($aid); $qFiles = null; if ($action['params_query']) { $fileFields = array(); foreach ($action['params'] as $param) { if ($param['type'] == 'File') { $fileFields[] = $param['name']; } } if (!empty($fileFields)) { $qFiles = \cf\createQuery('SELECT ' . implode(',', $fileFields) . ' FROM (' . $action['params_query'] . ') t'); } } eval('$sql="' . $action['query'] . '";'); $q = \cf\createQuery($sql); foreach ($params as $p) { if ($qFiles) { foreach ($qFiles->setParams($p)->execute()->fetch() as $f) { @unlink($_SERVER['DOCUMENT_ROOT'] . "/{$f}"); } } $q->setParams($p)->execute(); } }
if ($f === false) { throw new Exception("Could't open file:" + $settings['url']); } while (($data = fread($f, 1024)) && !$stop) { if (!xml_parse($parser, $data, feof($f))) { throw new Exception(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } } xml_parser_free($parser); fclose($f); if ($sellerID) { $qDelete = cf\createQuery("UPDATE cf_products SET price=0 WHERE id=:id"); //or "DELETE FROM cf_products WHERE id=:id" $qDelState = cf\createQuery("UPDATE cf_products SET state=:state WHERE id=:id"); $delState = $settings['del_state']; $qFindAllOfSeller = cf\createQuery("SELECT id FROM cf_products WHERE seller_id=:seller_id", array('seller_id' => $sellerID)); $qFindAllOfSeller->execute(); while ($qFindAllOfSeller->fetch()) { $id = $qFindAllOfSeller->at('id'); if (!array_key_exists($id, $foundIDs)) { $qDelete->setParam('id', $id)->execute(); if ($delState) { $qDelState->setParam('state', $delState)->execute(); } ++$deletedCount; } } } if ($delFile) { unlink($settings['url']); }
function updateChannel($channel) { if (!is_array($channel)) { return; } $dt = time(); if (array_key_exists('lastbuilddate', $channel)) { $dt = parseRfc822Date($channel['lastbuilddate']); } elseif (array_key_exists('pubdate', $channel)) { $dt = parseRfc822Date($channel['pubdate']); } global $channelID, $categories, $abort; $lastUpdate = cf\query2var("SELECT UNIX_TIMESTAMP(last_upload) FROM cf_rss_channel WHERE id=:id", array('id' => $channelID)); if ($lastUpdate >= $dt) { $abort = true; return; } $channel['date'] = $dt; cf\execQuery("UPDATE cf_rss_channel SET last_upload=FROM_UNIXTIME(:dt),added_count=0 WHERE id=:id", array('id' => $channelID, 'dt' => $dt)); //delete old $catDel = cf\query2vector("SELECT cf_news_in_category.id FROM cf_news INNER JOIN cf_news_in_category ON cf_news.id=cf_news_in_category.news_id WHERE cf_news.rss_chanel_id={$channelID}"); $qDel = cf\createQuery('DELETE FROM cf_news_in_category WHERE id=:id'); foreach ($catDel as $cat) { $qDel->setParam('id', $cat); $qDel->execute(); $qDel->close(); } cf\execQuery("DELETE FROM cf_news WHERE rss_chanel_id=:id", array('id' => $channelID)); $categories = cf\query2vector("SELECT category_id FROM cf_rss_channel_to_category WHERE channel_id=:id", array('id' => $channelID)); }
public static function findByPath($path, $rootID = null) { $path = preg_split('|[/]+|', trim($path), -1, PREG_SPLIT_NO_EMPTY); $q = \cf\createQuery('SELECT id FROM cf_page WHERE (parent_id=:pid OR parent_id IS NULL AND :pid IS NULL) AND (id=:id OR permalink=:id)'); $res = array('page_id' => $rootID, 'found' => '', 'notfound' => ''); $pid = $rootID; $count = 0; foreach ($path as $part) { $pid = \cf\query2Var($q, array('pid' => $pid, 'id' => $part)); if ($pid) { $res['page_id'] = (int) $pid; $res['found'] .= '/' . $part; ++$count; } else { break; } } $res['notfound'] = implode('/', array_slice($path, $count)); return $res; }