作者:nurtex
项目:textpattern-plugin
function ckr_if_image_count($atts, $thing)
{
// Extract attributes from tag
extract(lAtts(array('category' => false, 'min' => false, 'max' => false, 'equal' => false, 'not' => false), $atts));
// Count the images in specified category if given or globally
$count = $category ? intval(ckr_image_count(array('category' => $category))) : intval(ckr_image_count());
// Instead of almost unreadable if-else syntax, we use this clever switch-true/case-if counstruct
switch (true) {
case $min && !$max && !$equal && !$not:
// Is greater than min value
return parse(EvalElse($thing, $count >= intval($min) ? true : false));
break;
case $max && !$min && !$equal && !$not:
// Is lesser than max value
return parse(EvalElse($thing, $count <= intval($max) ? true : false));
break;
case $equal && !$min && !$max && !$not:
// Is equal
return parse(EvalElse($thing, $count == intval($equal) ? true : false));
break;
case $not && !$min && !$max && !$equal:
// Is not equal
return parse(EvalElse($thing, $count != intval($not) ? true : false));
break;
case $min && $max && !$equal && !$not:
// Between min and max
return parse(EvalElse($thing, $count >= intval($min) && $count <= intval($max) ? true : false));
break;
default:
// Anything else will output an error message
return '<!-- ckr_if_image_count: Wrong attribute count or combination. -->';
}
}
作者:bgarrel
项目:textpatter
/**
* Conditional for yield.
*
* @param array $atts
* @param string $thing
* @return string
*/
public static function renderIfYield($atts, $thing)
{
global $yield;
extract(lAtts(array('value' => null), $atts));
$inner = end($yield);
return parse(EvalElse($thing, $inner !== null && ($value === null || (string) $inner === (string) $value)));
}
作者:NicolasGrap
项目:oui_dailymotio
function oui_if_dailymotion($atts, $thing)
{
global $thisarticle;
extract(lAtts(array('custom' => null, 'video' => null), $atts));
$result = $video ? _oui_dailymotion($video) : _oui_dailymotion($thisarticle[strtolower($custom)]);
return defined('PREF_PLUGIN') ? parse($thing, $result) : parse(EvalElse($thing, $result));
}
作者:jmdeldi
项目:jmd_coun
/**
* Evaluate counting results.
*
* @param array $atts
* @property string $atts['eval'] Valid PHP comparison operator.
* @property string $atts['table'] MySQL table name.
* @property string $atts['where'] MySQL WHERE clause.
*/
function jmd_if_count($atts, $thing)
{
extract(lAtts(array('eval' => '', 'table' => '', 'where' => ''), $atts));
global $jmd_count_value;
$jmd_count_value = jmd_count(array('table' => $table, 'where' => $where));
$condition = eval("return({$jmd_count_value} {$eval});");
$out = EvalElse($thing, $condition);
return parse($out);
}
作者:ClaireBrion
项目:textpatter
/**
* Checks if the file is the last in the list.
*
* @param array $atts
* @param string $thing
* @return string
*/
public static function renderIfLastFile($atts, $thing)
{
global $thisfile;
assert_file();
return parse(EvalElse($thing, !empty($thisfile['is_last'])));
}
作者:jmdeldi
项目:jmd_rat
function if_jmd_rate_voted($atts, $thing)
{
$condition = $GLOBALS['jmd_rate_instance']->voted;
$out = EvalElse($thing, $condition);
return parse($out);
}
作者:bgarrel
项目:textpatter
function if_custom_field($atts, $thing)
{
global $thisarticle, $prefs;
extract(lAtts(array('name' => @$prefs['custom_1_set'], 'val' => NULL), $atts));
if ($val !== NULL) {
$cond = @$thisarticle[$name] == $val;
} else {
$cond = !empty($thisarticle[$name]);
}
return parse(EvalElse($thing, $cond));
}
作者:bgarrel
项目:textpatter
function if_variable($atts, $thing = NULL)
{
global $variable;
extract(lAtts(array('name' => '', 'value' => ''), $atts));
if (empty($name)) {
trigger_error(gTxt('variable_name_empty'));
return;
}
if (isset($variable[$name])) {
if (!isset($atts['value'])) {
$x = true;
} else {
$x = $variable[$name] == $value;
}
} else {
$x = false;
}
return parse(EvalElse($thing, $x));
}
作者:bgarrel
项目:textpatter
function zem_if_alice($atts, $thing)
{
extract(lAtts(array('name' => 'Bob'), $atts));
return parse(EvalElse($thing, $name == 'Alice'));
}
作者:netcarve
项目:mlp_pac
function l10n_if_lang($atts, $thing)
{
/*
Basic markup tag. Use this to wrap blocks of content you only want to appear
when the specified language is set or if the direction of the selected language matches
what you want. (Output different css files for rtl layouts for example).
*/
global $l10n_language;
$out = '';
if (!$l10n_language) {
return $out;
}
extract(lAtts(array('lang' => $l10n_language['short'], 'dir' => '', 'wraptag' => ''), $atts));
if (!empty($dir) and in_array($dir, array('rtl', 'ltr'))) {
# Does the direction of the currently selected site language match that requested?
# If so, parse the contained content.
$cond = $dir == MLPLanguageHandler::get_lang_direction($l10n_language['short']);
$out = parse(EvalElse($thing, $cond)) . n;
} else {
# If the required language matches the site language, output a suitably marked up block of content.
$cond = ($lang == $l10n_language['short'] or $lang == $l10n_language['long']);
$out = parse(EvalElse($thing, $cond));
if (!empty($wraptag)) {
$dir = MLPLanguageHandler::get_lang_direction_markup($lang);
$out = "<{$wraptag} lang=\"{$lang}\"{$dir}/>" . $out . "</{$wraptag}>" . n;
}
}
return $out;
}
作者:netcarve
项目:sed_comment_pac
function sed_if_comments($atts, $thing)
{
global $thisarticle, $pretext;
$count = 0;
if (!isset($thisarticle)) {
$id = gAtt($atts, 'id', gps('id'));
if (!$id && @$pretext['id']) {
$id = $pretext['id'];
}
if (isset($id)) {
$count = safe_field('comments_count', 'textpattern', "id={$id}");
}
} else {
$count = $thisarticle['comments_count'];
}
return parse(EvalElse($thing, $count > 0));
}
作者:jmdeldi
项目:jmd_neighbo
/**
* Checks for neighbors.
*
* @param array $atts
* @param string $atts['type'] Type of neighbor to check for ('next'||'prev')
*/
function jmd_if_neighbor($atts, $thing)
{
extract(lAtts(array('type' => ''), $atts));
$condition = $GLOBALS['jmd_neighbor']->type == $type;
$out = EvalElse($thing, $condition);
return parse($out);
}
作者:atbradle
项目:atb_if_for
function atb_output_form_if_exists($atts, $thing)
{
global $yield;
extract(lAtts(array('name' => ''), $atts));
if (atb_form_exists($name)) {
$yield[] = $thing !== null ? parse(EvalElse($thing, true)) : null;
$outp = parse_form($name);
array_pop($yield);
} else {
$outp = parse(EvalElse($thing, false));
}
return $outp;
}
作者:netcarve
项目:sed_pc
function sed_pcf_if_field_section($atts, $thing = '')
{
# Tests to see if there is a named section of the named custom field.
global $thisarticle;
extract(lAtts(array('custom' => '', 'section' => ''), $atts));
$cond = false;
$vars = @$thisarticle[$custom];
if (!empty($vars) and !empty($section)) {
$vars = sed_lib_extract_packed_variable_section($section, $vars);
$cond = is_array($vars);
}
return parse(EvalElse($thing, $cond));
}
作者:nop
项目:Tipatter
function if_data($atts, $thing = NULL)
{
$atts = lAtts(array('debug' => 0, 'ignore' => 0), $atts);
$f = '/<txp:(\\S+)\\b(.*)(?:(?<!br )(\\/))?' . chr(62) . '(?(3)|(.+)<\\/txp:\\1>)/sU';
$iftext = EvalElse($thing, true);
$thresh = 1 + strlen(preg_replace($f, '', $iftext));
$parsed = parse($iftext);
if ($atts['ignore']) {
$parsed = trim($parsed);
}
$parsed_len = strlen($parsed);
$empty = 'Data';
if (strlen($parsed) < $thresh) {
#or !preg_match('/\S/', $parsed)) {
$parsed = parse(EvalElse($thing, false));
$empty = 'No Data';
}
return $atts['debug'] ? "<!-- {$empty} -- Threshhold: {$thresh} Length: {$parsed_len} -->" . $parsed : $parsed;
}
作者:atbradle
项目:atb_twitte
function atb_tw_if_is_reply($atts, $thing)
{
global $atb_thistweet;
return parse(EvalElse($thing, $atb_thistweet->in_reply_to_status_id != ''));
}
作者:bgarrel
项目:textpatter
function if_last_article($atts, $thing)
{
global $thisarticle;
return parse(EvalElse($thing, !empty($thisarticle['is_last'])));
}
作者:netcarve
项目:mem_self_registe
function mem_profile($atts, $body = '')
{
global $mem_profile, $txp_user, $ign_user;
if (isset($ign_user)) {
$txp_user = $ign_user;
}
extract(lAtts(array('user' => '', 'userid' => '', 'var' => 'RealName', 'form' => ''), $atts));
if (empty($user) && empty($userid)) {
// use the old method
if (!is_array($mem_profile) && $txp_user) {
$mem_profile = safe_row('*', mem_get_user_table_name(), "name = '" . doSlash($txp_user) . "'");
}
} else {
$mem_profile = is_array($mem_profile) ? $mem_profile : array();
// look up a potentially new user
if (!empty($user)) {
if (!array_key_exists('name', $mem_profile) || strcmp($mem_profile['name'], $user) != 0) {
$mem_profile = safe_row('*', mem_get_user_table_name(), "name = '" . doSlash($user) . "'");
}
}
if (!empty($userid) && is_numeric($userid)) {
if (!array_key_exists('user_id', $mem_profile) || strcmp($mem_profile['user_id'], $userid) != 0) {
$mem_profile = safe_row('*', mem_get_user_table_name(), "user_id = " . doSlash($userid));
}
}
}
$out = '';
if (empty($form) && empty($body)) {
if ($mem_profile) {
$out = array_key_exists($var, $mem_profile) ? $mem_profile[$var] : '';
}
} else {
$thing = empty($body) ? fetch_form($form) : $body;
$out = parse(EvalElse($thing, !empty($mem_profile)));
}
return $out;
}
作者:netcarve
项目:sed_plugin_librar
function sed_lib_home_or_section($atts, $thing)
{
extract(lAtts(array('sectlist' => ''), $atts, 0));
global $pretext;
$do_thing = $pretext['s'] == "default" && empty($pretext['c']) && empty($pretext['q']) && empty($pretext['pg']);
if (!$do_thing && !empty($sectlist)) {
$sectlist = do_list($sectlist);
$do_thing = in_array($pretext['s'], $sectlist);
}
return parse(EvalElse($thing, $do_thing));
}
作者:bgarrel
项目:textpatter
function if_plugin($atts, $thing)
{
global $plugins, $plugins_ver;
extract(lAtts(array('name' => '', 'ver' => ''), $atts));
return parse(EvalElse($thing, @in_array($name, $plugins) and (!$ver or version_compare($plugins_ver[$name], $ver) >= 0)));
}