Example #1
0
function xt_admin_ajax_album_update()
{
    $result = array('code' => 0, 'msg' => '', 'result' => array());
    if (!current_user_can('manage_options')) {
        $result['code'] = 500;
        $result['msg'] = '您无权操作此功能';
    }
    if (!isset($_POST['id']) || empty($_POST['id'])) {
        $result['code'] = 500;
        $result['msg'] = '未指定专辑';
    }
    $id = intval(trim($_POST['id']));
    $cids = isset($_POST['cids']) ? $_POST['cids'] : '';
    if ($result['code'] == 0) {
        global $wpdb;
        $query = "SELECT t.*, tr.id AS album_id FROM " . XT_TABLE_CATALOG . " AS t INNER JOIN " . XT_TABLE_ALBUM_CATALOG . " AS tr ON t.id = tr.cid WHERE t.type = 'album' AND tr.id =" . $id . " ORDER BY t.sort ASC,t.count DESC";
        $term = $wpdb->get_results($query);
        $old = array();
        if (!empty($term)) {
            foreach ($term as $_term) {
                $old[] = $_term->id;
            }
        }
        $cids = array_map('intval', explode(',', $cids));
        if (empty($cids)) {
            $cids = array();
        }
        $deleteIds = array_diff($old, $cids);
        //delete
        $addIds = array_diff($cids, $old);
        //add
        if (!empty($deleteIds)) {
            foreach ($deleteIds as $del) {
                xt_delete_album_catalog($del, $id);
            }
        }
        if (!empty($addIds)) {
            foreach ($addIds as $add) {
                xt_new_album_catalog(array('cid' => $add, 'id' => $id));
            }
        }
        $album = xt_get_album($id);
        $term = $wpdb->get_results($query);
        //reload
        xt_update_catalog_terms_cache($id, $term, 'album');
        exit(xt_row_album($album, isset($_POST['alternate']) && $_POST['alternate'] ? 0 : 1));
    }
    exit(json_encode($result));
}
Example #2
0
function xt_ajax_album_update()
{
    $result = array('code' => 0, 'msg' => '', 'result' => array());
    if (!isset($_POST['album_id'])) {
        $result['code'] = 500;
        $result['msg'] = '未指定专辑';
    }
    if (!isset($_POST['title'])) {
        $result['code'] = 500;
        $result['msg'] = '未指定专辑名称';
    }
    $album_id = absint($_POST['album_id']);
    $title = strip_tags($_POST['title']);
    $content = strip_tags($_POST['content']);
    $user = wp_get_current_user();
    if ($user->exists()) {
        $album = xt_get_album($album_id);
        if (empty($album)) {
            $result['code'] = 500;
            $result['msg'] = '当前指定的专辑不存在';
        } else {
            if ($album->user_id != $user->ID) {
                $result['code'] = 500;
                $result['msg'] = '您无权修改此专辑';
            }
            if ($album->title != $title) {
                $title_album = xt_get_album(0, $title);
                if (!empty($title_album)) {
                    $result['code'] = 2000;
                    $result['msg'] = '专辑名称已存在';
                }
            }
        }
    } else {
        $result['code'] = 500;
        $result['msg'] = '未登录';
    }
    if ($result['code'] == 0) {
        global $wpdb;
        $wpdb->update(XT_TABLE_ALBUM, array('title' => $title, 'content' => $content), array('id' => $album_id));
    }
    exit(json_encode($result));
}
Example #3
0
 public function autoShare($params = array())
 {
     global $wpdb;
     $count = 0;
     if (!empty($params) && isset($params['albums']) && !empty($params['albums'])) {
         $albums = json_decode(stripslashes($params['albums']), true);
         if (!empty($albums) && is_array($albums)) {
             foreach ($albums as $album_id => $value) {
                 if (!empty($value) && is_array($value) && isset($value['cron']) && !empty($value['cron']) && isset($value['shares']) && !empty($value['shares'])) {
                     $album = xt_get_album($album_id);
                     if (!empty($album)) {
                         $cron = $value['cron'];
                         $shares = $value['shares'];
                         $user_id = $album->user_id;
                         $user_name = $album->user_name;
                         if (is_array($shares)) {
                             $values = array();
                             foreach ($shares as $share) {
                                 $share_key = $wpdb->escape($share['share_key']);
                                 $cache_data = $wpdb->escape($share['cache_data']);
                                 $values[] = "('{$share_key}','{$album_id}','{$user_id}','{$user_name}','{$cron}','{$cache_data}')";
                             }
                             if (!empty($values)) {
                                 $sql = "INSERT IGNORE INTO `" . XT_TABLE_SHARE_CRON . "`(`share_key`,`album_id`,`user_id`,`user_name`,`create_date`,`cache_data`) VALUES " . implode(',', $values);
                                 $count += $wpdb->query($sql);
                             }
                         }
                     }
                 }
             }
         }
     } elseif (!empty($params) && isset($params['crons']) && !empty($params['crons'])) {
         $crons = json_decode(stripcslashes($params['crons']), true);
         $cron = $crons['cron'];
         $shares = $crons['shares'];
         $users = array();
         if (!empty($shares) && is_array($shares)) {
             $values = array();
             $admins = get_users(array('role' => 'administrator', 'number' => 1));
             if (!empty($admins)) {
                 $_user_name = $admins[0]->user_login;
                 if (!empty($admins[0]->display_name)) {
                     $_user_name = $admins[0]->display_name;
                 }
                 $users[0] = $_user_name;
             }
             foreach ($shares as $share) {
                 $share_key = $wpdb->escape($share['share_key']);
                 $cache_data = $wpdb->escape($share['cache_data']);
                 $user_id = absint($wpdb->escape($share['user_id']));
                 if ($user_id > 0 && !isset($users[$user_id])) {
                     $_user = new WP_User($user_id);
                     if ($_user->exists()) {
                         $_user_name = $_user->user_login;
                         if (!empty($_user->display_name)) {
                             $_user_name = $_user->display_name;
                         }
                         $users[$user_id] = $_user_name;
                     }
                 }
                 if (isset($users[$user_id]) && !empty($users[$user_id])) {
                     $user_name = $users[$user_id];
                     $values[] = "('{$share_key}','0','{$user_id}','{$user_name}','{$cron}','{$cache_data}')";
                 }
             }
             if (!empty($values)) {
                 $sql = "INSERT IGNORE INTO `" . XT_TABLE_SHARE_CRON . "`(`share_key`,`album_id`,`user_id`,`user_name`,`create_date`,`cache_data`) VALUES " . implode(',', $values);
                 $count += $wpdb->query($sql);
             }
         }
     }
     if ($count > 0) {
         if (isset($params['now']) && !empty($params['now'])) {
             xt_cron_autoshare();
         }
         return $count;
     }
     return true;
 }
Example #4
0
function xt_screens()
{
    global $xt, $wp_query, $xt_catalog, $xt_user, $xt_album, $xt_taobao_item, $xt_template_name;
    if (xt_is_404()) {
        if (is_home()) {
            xt_clear_404();
            $xt->is_xintao = true;
            $xt->is_index = true;
            $xt_template_name = 'home';
        } elseif (is_front_page()) {
            if (is_page(xt_base()) && !isset($wp_query->query_vars['xt_action'])) {
                xt_clear_404();
                $xt->is_xintao = true;
                $xt->is_index = true;
                $xt_template_name = 'home';
            } elseif (!isset($wp_query->query_vars['xt_action'])) {
                $xt->is_xintao = false;
            }
        }
    }
    if (is_404() && !$xt->is_xintao) {
        $xt->is_xintao = true;
        xt_set_404();
    }
    if ($xt->is_xintao) {
        if (isset($_GET['invite']) && absint($_GET['invite']) > 0) {
            setcookie(XT_USER_PARENT, (string) $_GET['invite'], time() + 1296000, COOKIEPATH, COOKIE_DOMAIN);
        }
        $xt_share_param = isset($wp_query->query_vars['xt_param']) ? $wp_query->query_vars['xt_param'] : '';
        if ($xt->is_shares) {
            query_shares($xt_share_param);
            if (isset($xt_share_param['s']) && !empty($xt_share_param['s'])) {
                //设置搜索词
                $wp_query->set('s', $xt_share_param['s']);
            }
            if (absint($xt_share_param['cid']) > 0) {
                $_term = xt_get_catalog($xt_share_param['cid']);
                if (!empty($_term)) {
                    $xt_catalog = $_term;
                }
            }
        } elseif ($xt->is_albums) {
            query_albums($xt_share_param);
            if (isset($xt_share_param['s']) && !empty($xt_share_param['s'])) {
                //设置搜索词
                $wp_query->set('s', $xt_share_param['s']);
            }
        } elseif ($xt->is_share) {
            $xt_user = null;
            if (absint($xt_share_param) > 0) {
                query_shares(array('id' => absint($xt_share_param)));
                if (xt_have_shares()) {
                    xt_the_share();
                    $xt_user = new WP_User(get_the_share_userid());
                    if (!empty($xt_user) && $xt_user->ID != 0) {
                        xt_setup_single_userdata();
                    } else {
                        xt_set_404();
                    }
                } else {
                    xt_set_404();
                }
            } else {
                xt_set_404();
            }
        } elseif ($xt->is_user) {
            $xt_user = null;
            if (absint($xt_share_param) > 0) {
                $uid = absint($xt_share_param);
                $_user = wp_get_current_user();
                if ($_user->exists()) {
                    if ($_user->ID == $uid) {
                        $xt_user = $_user;
                    }
                }
                if (empty($xt_user) || $xt_user->ID == 0) {
                    $_user = new WP_User($uid);
                    if ($_user && $_user->ID != 0) {
                        $xt_user = $_user;
                    }
                }
                if (!empty($xt_user) && $xt_user->ID != 0) {
                    xt_setup_single_userdata();
                }
            }
            if (empty($xt_user) || $xt_user->ID == 0) {
                xt_set_404();
            }
        } elseif ($xt->is_account) {
            $xt_user = wp_get_current_user();
            if ($xt_user->exists()) {
                //xt_setup_single_userdata();
            } else {
                xt_set_404();
                wp_safe_redirect(site_url('wp-login.php'));
                exit;
            }
        } elseif ($xt->is_album) {
            $xt_user = null;
            $xt_album = null;
            if (absint($xt_share_param) > 0) {
                $xt_album = xt_get_album($xt_share_param);
                if (!empty($xt_album)) {
                    $_user = wp_get_current_user();
                    if ($_user->exists()) {
                        if ($_user->ID == $xt_album->user_id) {
                            $xt_user = $_user;
                        } else {
                            $xt_user = new WP_User($xt_album->user_id);
                        }
                    } else {
                        $xt_user = new WP_User($xt_album->user_id);
                    }
                    if (!empty($xt_user) && $xt_user->ID > 0) {
                        xt_setup_single_userdata();
                        //						query_albums(array (
                        //							'page' => 1,
                        //							'album_per_page' => 20,
                        //							'user_id' => $xt_album->user_id
                        //						));
                        //当前专辑所属用户的前20个专辑
                        query_shares(array('album_id' => absint($xt_share_param), 'page' => 1, 'share_per_page' => 40, 'user_id' => $xt_album->user_id));
                    }
                    //当前专辑内的宝贝
                }
                if (empty($xt_album) || empty($xt_user) || $xt_user->ID == 0) {
                    xt_set_404();
                }
            }
        } elseif ($xt->is_page) {
        } elseif ($xt->is_invite) {
            $xt_user = null;
            if (absint($xt_share_param) > 0) {
                $xt_user = new WP_User(absint($xt_share_param));
            }
            if (empty($xt_user) || $xt_user->ID == 0) {
                xt_set_404();
            } else {
                $user = wp_get_current_user();
                if (!$user->exists()) {
                    //15days
                    setcookie(XT_USER_PARENT, (string) $xt_user->ID, time() + 1296000, COOKIEPATH, COOKIE_DOMAIN);
                }
            }
        } elseif ($xt->is_taobao) {
            $xt_taobao_item = xt_taobao_item($xt_share_param, "detail_url,num_iid,title,nick,props_name,cid,pic_url,num,location,price,post_fee,express_fee,ems_fee,item_img,prop_imgs");
            if (is_wp_error($xt_taobao_item)) {
                xt_set_404();
            }
        }
        if (xt_is_404()) {
            $xt_template_name = 'error404';
        }
        if ($xt->is_login) {
            xt_load_template('xt-login', true, true);
        } elseif ($xt->is_jump) {
            xt_load_template('xt-jump', true, true);
        } elseif ($xt->is_sitemap) {
            xt_load_template('xt-sitemap', true, true);
        } else {
            xt_load_template('xt-template', true, true);
        }
    }
}
Example #5
0
/**
 * deletes a album.
 *
 */
function xt_delete_album($id)
{
    global $wpdb;
    $count = 0;
    $_album = xt_get_album($id);
    if (!empty($_album)) {
        //1.favorite
        $wpdb->delete(XT_TABLE_FAVORITE, array('id' => $id, 'type' => 2));
        //2.share
        $wpdb->delete(XT_TABLE_SHARE_ALBUM, array('album_id' => $id));
        //3.catalog
        xt_delete_album_catalog(0, $id);
        //4.album
        $wpdb->delete(XT_TABLE_ALBUM, array('id' => $id));
        $count = xt_update_user_album_count($_album->user_id);
    }
    return $count;
}
Example #6
0
function xt_insert_album_catalog($catalogdata)
{
    global $wpdb;
    extract(stripslashes_deep($catalogdata), EXTR_SKIP);
    $_catalog = xt_get_catalog($cid);
    $_album = xt_get_album($id);
    if (!empty($_catalog) && !empty($_album)) {
        $data = compact('id', 'cid', 'create_date_gmt');
        if ($wpdb->insert(XT_TABLE_ALBUM_CATALOG, $data)) {
            $count = xt_update_catalog_count($cid, 'album');
            return $id;
        }
    }
    return 0;
}