Esempio n. 1
0
 public function setvif()
 {
     $filelist = lfile_trim("__path_program_etc/xeninterface.list");
     $list = $this->main->getViflist();
     foreach ($list as $l) {
         $filelist = array_push_unique($filelist, $l);
     }
     dprintr($filelist);
     lfile_put_contents("__path_program_etc/xeninterface.list", implode("\n", $filelist));
 }
Esempio n. 2
0
function GetFlistIds($flistString, $allowPages = false, $allowMultipleMatches = true, $failOnEmpty = true)
{
    global $fbcmdPrefs;
    global $flistMatchArray;
    global $flistMatchIdString;
    $unknownNames = array();
    $flistMatchArray = array();
    $flistFQL = array('FriendId', 'FriendBaseInfo');
    $flistItems = explode(',', $flistString);
    // Pre-process to see if Friend Lists or Pages or Groups are required
    foreach ($flistItems as $item) {
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_friendlist']) {
            array_push_unique($flistFQL, 'FriendListNames');
            array_push_unique($flistFQL, 'FriendListMembers');
        }
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_page'] || strtoupper($item) == '=PAGES') {
            array_push_unique($flistFQL, 'PageId');
            array_push_unique($flistFQL, 'PageNames');
        }
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_group']) {
            array_push_unique($flistFQL, 'GroupNames');
        }
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_tag']) {
            array_push_unique($flistFQL, 'PageId');
            array_push_unique($flistFQL, 'PageNames');
            array_push_unique($flistFQL, 'GroupNames');
        }
    }
    MultiFQL($flistFQL);
    global $dataFriendId;
    global $dataFriendBaseInfo;
    global $indexFriendBaseInfo;
    global $fbUser;
    global $flistChunkCounter;
    $flistChunkCounter = 0;
    foreach ($flistItems as $item) {
        $itemUC = strtoupper($item);
        // =KEYWORDS /////////////////////////////////////////////////////////////
        if (substr($item, 0, 1) == '=') {
            if ($itemUC == '=ME') {
                array_push_unique($flistMatchArray, $fbUser);
                continue;
            }
            if ($itemUC == '=ALL') {
                foreach ($dataFriendId as $fid) {
                    array_push_unique($flistMatchArray, $fid['uid2']);
                }
                continue;
            }
            if (substr($itemUC, 0, 5) == '=BDAY') {
                $matchTime = time();
                if (preg_match("/=BDAY\\+(\\d+)?\$/", $itemUC, $matches)) {
                    if (isset($matches[1])) {
                        $matchTime += 24 * 60 * 60 * $matches[1];
                    } else {
                        $matchTime += 24 * 60 * 60;
                    }
                }
                if (preg_match("/=BDAY-(\\d+)?\$/", $itemUC, $matches)) {
                    if (isset($matches[1])) {
                        $matchTime -= 24 * 60 * 60 * $matches[1];
                    } else {
                        $matchTime -= 24 * 60 * 60;
                    }
                }
                if (preg_match("/=BDAY=(.+)\$/", $itemUC, $matches)) {
                    $matchTime = strtotime($matches[1]);
                    if (!$matchTime) {
                        FbcmdWarning("Bad BDAY Syntax: [{$item}] using today");
                        $matchTime = time();
                    }
                }
                $matchDate = date('m/d', $matchTime);
                foreach ($dataFriendBaseInfo as $fbi) {
                    if (substr($fbi['birthday_date'], 0, 5) == $matchDate) {
                        array_push_unique($flistMatchArray, $fbi['uid']);
                    }
                }
                continue;
            }
            if ($itemUC == '=ONLINE') {
                foreach ($dataFriendBaseInfo as $fbi) {
                    if ($fbi['online_presence'] == 'active' || $fbi['online_presence'] == 'idle' && $fbcmdPrefs['online_idle']) {
                        array_push_unique($flistMatchArray, $fbi['uid']);
                    }
                }
                continue;
            }
            if ($itemUC == '=PAGES') {
                if (!$allowPages) {
                    global $fbcmdCommand;
                    FbcmdWarning("{$fbcmdCommand} does not support pages: {$item} ignored");
                } else {
                    global $dataPageId;
                    foreach ($dataPageId as $page_id) {
                        array_push_unique($flistMatchArray, $page_id['page_id']);
                    }
                }
                continue;
            }
            FbcmdWarning("Unknown flist entry: {$item}");
            continue;
        }
        // _FRIEND LIST //////////////////////////////////////////////////////////
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_friendlist']) {
            global $dataFriendListNames;
            global $dataFriendListMembers;
            $flidMatches = FlistMatch($item, true, $dataFriendListNames, 'flid', 'name', $allowMultipleMatches);
            if (count($flidMatches)) {
                foreach ($dataFriendListMembers as $flm) {
                    // http://bugs.developers.facebook.com/show_bug.cgi?id=5977
                    // if (in_array($flm[0],$flidMatches)) {
                    // array_push_unique($flistMatchArray,$flm[1]);
                    // }
                    if (in_array($flm['flid'], $flidMatches)) {
                        array_push_unique($flistMatchArray, $flm['uid']);
                    }
                }
            }
            continue;
        }
        // !USERNAME /////////////////////////////////////////////////////////////
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_username']) {
            $uidMatches = FlistMatch($item, true, $dataFriendBaseInfo, 'uid', 'username', $allowMultipleMatches);
            array_merge_unique($flistMatchArray, $uidMatches);
            continue;
        }
        // +PAGES ////////////////////////////////////////////////////////////////
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_page']) {
            if (!$allowPages) {
                global $fbcmdCommand;
                FbcmdWarning("{$fbcmdCommand} does not support pages: {$item} ignored");
            } else {
                global $dataPageNames;
                $pidMatches = FlistMatch($item, true, $dataPageNames, 'page_id', 'name', $allowMultipleMatches);
                array_merge_unique($flistMatchArray, $pidMatches);
            }
            continue;
        }
        // ~GROUPS ///////////////////////////////////////////////////////////////
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_group']) {
            global $dataGroupNames;
            global $fbObject;
            $gidMatches = FlistMatch($item, true, $dataGroupNames, 'gid', 'name', false);
            if (isset($gidMatches[0])) {
                $fql = "SELECT uid FROM group_member WHERE gid={$gidMatches[0]}";
                try {
                    $fbReturn = $fbObject->api_client->fql_query($fql);
                    TraceReturn($fbReturn);
                } catch (Exception $e) {
                    FbcmdException($e);
                }
                if (!empty($fbReturn)) {
                    foreach ($fbReturn as $u) {
                        $flistMatchArray[] = $u['uid'];
                    }
                } else {
                    FbcmdWarning("Could Not get Group Members for GROUP {$gidMatches[0]}");
                }
            }
            continue;
        }
        // @TAG FORMAT ///////////////////////////////////////////////////////////
        if (substr($item, 0, 1) == $fbcmdPrefs['prefix_tag']) {
            $tagList = MatchTag(substr($item, 1), $allowPages, false);
            if ($tagList) {
                array_merge_unique($flistMatchArray, array($tagList[0][0]));
            }
            continue;
        }
        // REGULAR NAMES /////////////////////////////////////////////////////////
        $uidMatches = FlistMatch($item, false, $dataFriendBaseInfo, 'uid', 'name', $allowMultipleMatches);
        array_merge_unique($flistMatchArray, $uidMatches);
    }
    if (count($flistMatchArray) == 0) {
        if ($failOnEmpty) {
            if (substr(strtoupper($flistString), 0, 5) == '=BDAY') {
                print "No Friends With Birthday Matches\n";
                exit;
            } else {
                FbcmdFatalError("Empty flist: {$flistString}");
            }
        } else {
            $flistMatchIdString = '';
        }
    } else {
        $flistMatchIdString = implode(',', $flistMatchArray);
    }
    foreach ($flistMatchArray as $id) {
        if (ProfileName($id) == 'unknown') {
            $unknownNames[] = $id;
        }
    }
    if (count($unknownNames) > 0) {
        global $fqlFlistNames;
        global $keyFlistNames;
        $fqlFlistNames = 'SELECT id,name FROM profile WHERE id IN (' . implode(',', $unknownNames) . ')';
        $keyFlistNames = 'id';
        MultiFQL(array('FlistNames'));
    }
    return;
}
Esempio n. 3
0
 function makeVirtual($class)
 {
     $this->__virtual_list = array_push_unique($this->__virtual_list, $class);
 }
Esempio n. 4
0
 function save_non_existant_image($path)
 {
     global $gbl, $sgbl, $login, $ghtml;
     return;
     #[FIXME]
     // We need only the form images, and the normal non form action images need not be saved.
     if (!csa($path, "list") && !csa($path, "form")) {
         return;
     }
     if ($sgbl->dbg <= 1) {
         return;
     }
     if (lfile_exists(getreal($path))) {
         return;
     }
     $cont = null;
     $icon = $login->getSpecialObject('sp_specialplay')->icon_name;
     $file = "__path_program_htmlbase/{$icon}.missing_image.txt";
     if (lfile_exists($file)) {
         $cont = lfile($file);
         foreach ($cont as $k => &$__c) {
             $__c = trim($__c);
             if (!$__c) {
                 unset($cont[$k]);
             }
         }
     }
     $cont = array_push_unique($cont, $path);
     $cont = implode("\n", $cont);
     $cont .= "\n";
     lfile_put_contents($file, $cont);
 }
Esempio n. 5
0
 function formChangeLocationOpenvz()
 {
     $location = $this->getLocationlist();
     $llist = get_namelist_from_objectlist($location);
     $nlist = $llist;
     if (!$nlist) {
         throw new lxexception('need_locations');
     }
     $this->newlocation = $this->corerootdir;
     $nlist = array_push_unique($nlist, $this->corerootdir);
     $vlist['newlocation'] = array('s', $nlist);
     return $vlist;
 }
 /**
  * This action enables a disabled extension for the current user.
  *
  * System extensions can only be enabled by an administrator.
  * This action must be reached by a POST request.
  *
  * Parameter is:
  * - e: the extension name (urlencoded).
  */
 public function enableAction()
 {
     $url_redirect = array('c' => 'extension', 'a' => 'index');
     if (Minz_Request::isPost()) {
         $ext_name = urldecode(Minz_Request::param('e'));
         $ext = Minz_ExtensionManager::findExtension($ext_name);
         if (is_null($ext)) {
             Minz_Request::bad(_t('feedback.extensions.not_found', $ext_name), $url_redirect);
         }
         if ($ext->isEnabled()) {
             Minz_Request::bad(_t('feedback.extensions.already_enabled', $ext_name), $url_redirect);
         }
         $conf = null;
         if ($ext->getType() === 'system' && FreshRSS_Auth::hasAccess('admin')) {
             $conf = FreshRSS_Context::$system_conf;
         } elseif ($ext->getType() === 'user') {
             $conf = FreshRSS_Context::$user_conf;
         } else {
             Minz_Request::bad(_t('feedback.extensions.no_access', $ext_name), $url_redirect);
         }
         $res = $ext->install();
         if ($res === true) {
             $ext_list = $conf->extensions_enabled;
             array_push_unique($ext_list, $ext_name);
             $conf->extensions_enabled = $ext_list;
             $conf->save();
             Minz_Request::good(_t('feedback.extensions.enable.ok', $ext_name), $url_redirect);
         } else {
             Minz_Log::warning('Can not enable extension ' . $ext_name . ': ' . $res);
             Minz_Request::bad(_t('feedback.extensions.enable.ko', $ext_name, _url('index', 'logs')), $url_redirect);
         }
     }
     Minz_Request::forward($url_redirect, true);
 }