示例#1
0
文件: Options.php 项目: rjsmelo/tiki
 public static function fromInput(JitFilter $input, array $typeInfo)
 {
     $options = new Tracker_Options();
     $options->info = $typeInfo;
     foreach ($typeInfo['params'] as $key => $info) {
         $filter = $info['filter'];
         if (isset($info['count']) && $info['count'] === '*') {
             $rawValue = $input->{$key}->none();
             if ($rawValue !== '') {
                 $values = explode(',', $rawValue);
                 $filter = TikiFilter::get($filter);
                 $values = array_map(array($filter, 'filter'), $values);
             } else {
                 $values = '';
             }
             $options->setParam($key, $values);
         } elseif (isset($info['separator'])) {
             $input->replaceFilter($key, $filter);
             $values = $input->asArray($key, $info['separator']);
             $options->setParam($key, $values);
         } else {
             $options->setParam($key, $input->{$key}->{$filter}());
         }
     }
     return $options;
 }
示例#2
0
/**
 * Variable arguments to be sent as filters for the object list. Filters match the unified search
 * field filters.
 *
 * Reserved parameters:
 *  - name for the field name
 *  - galleryId
 *  - value for the current value (fileId, comma separated for multiple)
 *  - type for the mime type filter (image/*)
 *  - limit for the maximum amount of files (defaults to 1)
 *
 * The component will build a drop list for the object selector if the results fit in a reasonable amount
 * of space or will use autocomplete on the object title otherwise.
 */
function smarty_function_file_selector($params, $smarty)
{
    static $uniqid = 0;
    $arguments = ['name' => null, 'value' => null, 'limit' => 1, 'type' => null, 'galleryId' => 0];
    $input = new JitFilter(array_merge($arguments, $params));
    $input->replaceFilter('value', 'int');
    $smarty->assign('file_selector', ['name' => $input->name->text(), 'value' => array_filter($input->asArray('value', ',')), 'limit' => $input->limit->digits() ?: 1, 'type' => $input->type->text(), 'galleryId' => $input->galleryId->int()]);
    return $smarty->fetch('file_selector.tpl');
}
示例#3
0
 function applyInput(\JitFilter $input)
 {
     $input->replaceFilter($this->fieldName, 'text');
     $this->values = $input->asArray($this->fieldName);
 }
示例#4
0
文件: MapTest.php 项目: rjsmelo/tiki
 function testComposed()
 {
     $filter = new JitFilter(array('foo' => 'test123'));
     $filter->replaceFilter('foo', 'digits');
     $this->assertEquals('123', $filter['foo']);
 }
示例#5
0
 function getInput(JitFilter $filter, $preferences = array(), $environment = '')
 {
     $out = array();
     foreach ($preferences as $name) {
         $info = $this->getPreference($name);
         if ($environment == 'perspective' && isset($info['perspective']) && $info['perspective'] === false) {
             continue;
         }
         if (isset($info['filter'])) {
             $filter->replaceFilter($name, $info['filter']);
         }
         if (isset($info['separator'])) {
             $out[$name] = $filter->asArray($name, $info['separator']);
         } else {
             $out[$name] = $filter[$name];
         }
     }
     return $out;
 }