Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Janis
/
btflags
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
a537571a
authored
2018-10-01 09:56:11 +0800
by
Joshua Tundag
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
fix
1 parent
0d9dd429
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
8 deletions
src/BTFlags/FlagManager.php
src/BTFlags/Flags.php
src/BTFlags/FlagManager.php
View file @
a537571
...
...
@@ -156,7 +156,7 @@ class FlagManager {
if
(
!
$flags
)
return
[];
foreach
(
$flags
as
$flag
){
$value
=
$this
->
checkFlag
(
$flag
,
!
empty
(
$flag
[
'default'
])
?
$flag
[
'default'
]
:
null
);
setcookie
(
$
flag
[
'encrypted_name'
],
$value
,
time
()
+
(
86400
*
30
),
"/"
);
setcookie
(
$
value
[
'name'
],
$value
[
'value'
]
,
time
()
+
(
86400
*
30
),
"/"
);
}
}
...
...
@@ -172,11 +172,15 @@ class FlagManager {
public
function
checkFlag
(
$flag
,
$defaultValue
,
$driver
=
'cookie'
){
$this
->
checkDir
();
$flagEncryptedName
=
$flag
[
'encrypted_name'
];
// Cookie Driver
if
(
$driver
==
'cookie'
)
return
!
empty
(
$_GET
[
$flagEncryptedName
])
?
$this
->
filterFlag
(
$flag
,
$_GET
[
$flagEncryptedName
],
$defaultValue
)
:
(
!
empty
(
$_COOKIE
[
$flagEncryptedName
])
?
$this
->
filterFlag
(
$flag
,
$_COOKIE
[
$flagEncryptedName
],
$defaultValue
)
:
$defaultValue
);
// Session Driver
return
!
empty
(
$_GET
[
$flagEncryptedName
])
?
$this
->
filterFlag
(
$flag
,
$_GET
[
$flagEncryptedName
],
$defaultValue
)
:
(
$_SESSION
[
$flagEncryptedName
]
?
$this
->
filterFlag
(
$flag
,
$_SESSION
[
$flagEncryptedName
],
$defaultValue
)
:
$defaultValue
);
$flagName
=
$flag
[
'encrypted_name'
];
$value
=
!
empty
(
$_GET
[
$flagName
])
?
$this
->
filterFlag
(
$flag
,
$_GET
[
$flagName
],
$defaultValue
)
:
null
;
if
(
isset
(
$flag
[
'both_usable'
])
&&
$flag
[
'both_usable'
]
&&
(
!
empty
(
$_GET
[
$flag
[
'name'
]])
||
!
empty
(
$_COOKIE
[
$flag
[
'name'
]]))){
$value
=
!
empty
(
$_GET
[
$flag
[
'name'
]])
?
$this
->
filterFlag
(
$flag
,
$_GET
[
$flag
[
'name'
]],
$defaultValue
)
:
$value
;
}
return
[
'name'
=>
$flag
[
'encrypted_name'
],
'value'
=>
$value
?
$value
:
(
!
empty
(
$_COOKIE
[
$flag
[
'encrypted_name'
]])
?
$this
->
filterFlag
(
$flag
,
$_COOKIE
[
$flag
[
'encrypted_name'
]],
$defaultValue
)
:
$defaultValue
),
];
}
private
function
filter
(
$flag
,
$value
,
$default
){
...
...
@@ -193,7 +197,7 @@ class FlagManager {
$flags
=
$this
->
all
();
if
(
!
$flags
)
return
[];
$filteredFlags
=
array_values
(
array_filter
(
$flags
,
function
(
$f
)
use
(
$flag
,
$encrypted
){
if
(
isset
(
$f
[
'both_usable'
])
&&
$f
[
'both_usable'
])
return
$f
[
'encrypted_name'
]
==
$flag
||
$f
[
'name'
]
==
$flag
;
if
(
isset
(
$f
[
'both_usable'
])
&&
$f
[
'both_usable'
])
return
in_array
(
$flag
,
[
$f
[
'encrypted_name'
],
$f
[
'name'
]])
;
return
((
$encrypted
&&
$f
[
'encrypted_name'
]
==
$flag
)
||
(
!
$encrypted
&&
$f
[
'name'
]
==
$flag
));
}));
return
count
(
$filteredFlags
)
?
$filteredFlags
[
0
]
:
null
;
...
...
src/BTFlags/Flags.php
View file @
a537571
...
...
@@ -18,7 +18,10 @@ class Flags{
$flagManager
=
new
FlagManager
();
$flag
=
$flagManager
->
getFlag
(
$flagName
,
$encrypted
);
if
(
!
$flag
)
return
null
;
$flagFromStorage
=
self
::
findFlagFromStorage
(
$encrypted
?
$flagName
:
$flag
[
'encrypted_name'
],
$defaultValue
?
$defaultValue
:
(
isset
(
$flag
[
'has_default'
])
&&
$flag
[
'has_default'
]
?
$flag
[
'default'
]
:
null
),
$driver
);
if
(
isset
(
$flag
[
'both_usable'
])
&&
$flag
[
'both_usable'
]){
$flagName
=
$flag
[
'encrypted_name'
];
}
$flagFromStorage
=
self
::
findFlagFromStorage
(
$flagName
,
$defaultValue
?
$defaultValue
:
(
isset
(
$flag
[
'has_default'
])
&&
$flag
[
'has_default'
]
?
$flag
[
'default'
]
:
null
),
$driver
);
if
(
!
$flag
[
'is_filtered'
])
return
$flagFromStorage
;
$filteredFlag
=
null
;
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment