Example #1
0
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();
        }
    }
}
Example #2
0
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);
    }
}
Example #3
0
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();
        }
    }
}
Example #4
0
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');
            }
        }
    }
}
Example #5
0
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();
    }
}
Example #6
0
File: tmp.php Project: sd-studio/or
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();
    }
}
Example #7
0
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();
    }
}
Example #8
0
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();
}
Example #9
0
/**
	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();
    }
}
Example #10
0
File: yml.php Project: sd-studio/or
 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']);
 }
Example #11
0
File: rss.php Project: sd-studio/or
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));
}
Example #12
0
 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;
 }