コード例 #1
0
 /**
  * Handle the match
  */
 function handle($match, $state, $pos, &$handler)
 {
     set_media_file_revision_limit($this->getConf('media file revision limit'));
     if ($state != DOKU_LEXER_SPECIAL) {
         return NULL;
     }
     global $ID;
     $path = explode(":", $ID);
     $name = array_pop($path);
     $this->project_file = FileDefinition::parse($name, $match);
     $this->project_file->position = $pos;
     $this->project_file->end = $pos + strlen($match) - 1;
     return $this->project_file;
 }
コード例 #2
0
ファイル: action.php プロジェクト: omusico/isle-web-framework
 /**
  * an action has been called
  *
  */
 function filter(&$event, $param)
 {
     global $ACT;
     global $ID;
     global $TEXT;
     global $PRE;
     $perm = auth_quickaclcheck($ID);
     if ($event->data == 'manage_files') {
         $event->preventDefault();
         return;
     }
     $project = Project::project();
     if ($project == NULL) {
         return;
     }
     switch ($event->data) {
         case 'change_use':
             if ($perm <= AUTH_READ) {
                 msg('You do not have permission to change this file', -1);
                 $event->data = 'show';
             } else {
                 $range = $_REQUEST['range'];
                 $name = $_REQUEST['use'];
                 $slices = rawWikiSlices($range, $ID);
                 $TEXT = $slices[0] . '<use name="' . $name . '"/>' . $slices[2];
             }
             $event->data = 'save';
             break;
         case 'create':
             if ($perm < AUTH_CREATE) {
                 msg('You do not have permission to create a file', -1);
                 if ($perm < AUTH_READ) {
                     $event->data = 'show';
                     break;
                 }
                 $event->data = 'manage_files';
                 $event->preventDefault();
                 break;
             }
             $text = $this->wikitext($_REQUEST['Type']);
             $name = $_REQUEST['File_name'];
             $ID = $project->name() . ':' . $name;
             if ($text == NULL) {
                 return;
             }
             $TEXT = $text;
             $event->data = 'save';
             break;
         case 'remake':
             if ($perm <= AUTH_READ) {
                 msg('You do not have permission to change this file', -1);
                 if ($perm < AUTH_READ) {
                     $event->data = 'show';
                     break;
                 }
                 $event->data = 'manage_files';
                 $event->preventDefault();
             } else {
                 set_media_file_revision_limit($this->getConf('media file revision limit'));
                 global $ID;
                 $id = $_REQUEST['id'];
                 if (getNS($name)) {
                     $ID = $id;
                 }
                 $id = noNS($id);
                 $project->remake(array($id));
                 $ID = $project->id($id);
                 $event->data = 'show';
             }
             $event->preventDefault();
             break;
         case "create_subproject":
             if ($perm < AUTH_CREATE) {
                 msg('You do not have permission to create a subproject');
                 if ($perm < AUTH_READ) {
                     $event->data = 'show';
                     break;
                 }
             } else {
                 $name = $_REQUEST['Project_name'];
                 $project = Project::project($project->name() . ':' . $name, true);
                 $ID = $project->name() . ':' . $name . ':manage_files';
             }
             $event->data = 'manage_files';
             $event->preventDefault();
             break;
         case 'clean':
             if ($perm <= AUTH_READ) {
                 msg('You do not have permission to clean this project', -1);
                 if ($perm < AUTH_READ) {
                     $event->data = 'show';
                     break;
                 }
             } else {
                 $recursive = $_REQUEST['Recursive'];
                 if (!$project->clean($recursive)) {
                     msg('Other users are updating the project. Please clean later.');
                 }
             }
             $event->data = 'manage_files';
             $event->preventDefault();
             break;
         case 'rebuild':
             $event->preventDefault();
             if ($perm <= AUTH_READ) {
                 msg('You do not have permission to rebuild this project', -1);
                 if ($perm < AUTH_READ) {
                     $event->data = 'show';
                     break;
                 }
             } else {
                 if ($project == NULL) {
                     $project = Project::project(NULL, true);
                 }
                 if (!$project->rebuild()) {
                     msg('Other users are updating the project. Please rebuild later.');
                 }
             }
             $event->data = 'manage_files';
             $event->preventDefault();
             break;
         case 'media':
             $file_id = $_REQUEST['image'];
             if (!$file_id) {
                 return;
             }
             $project = Project::project(getNS($file_id));
             if ($project === NULL) {
                 return;
             }
             $file = $project->path() . noNS($file_id);
             if (file_exists($file)) {
                 $event->preventDefault();
                 send_redirect(ml($file_id));
                 break;
             }
             return;
         case 'remove_tag':
             $tag = $_REQUEST['tag'];
             if ($perm < AUTH_EDIT) {
                 msg("You do not have permission to edit this file", -1);
                 $event->data = 'show';
                 $event->preventDefault();
                 break;
             }
             $range = $_REQUEST['range'];
             $slices = rawWikiSlices($range, $ID);
             if (substr(strtoupper($slices[1]), 0, strlen($tag) + 1) != '<' . strtoupper($tag)) {
                 msg("Missing the {$tag} tag?", -1);
                 $event->data = 'show';
                 $event->preventDefault();
                 break;
             }
             $text = $slices[0] . $slices[2];
             saveWikiText($ID, $slices[0] . $slices[2], "Remove {$tag}", FALSE);
             $event->data = 'show';
             break;
         case 'add_tag':
             if ($perm < AUTH_EDIT) {
                 msg("You do not have permission to edit this file", -1);
                 $event->data = 'show';
                 $event->preventDefault();
                 break;
             }
             $tag = $_REQUEST['tag'];
             if (isset($_REQUEST['name'])) {
                 $name = $_REQUEST['name'];
                 $name = "name=\"{$name}\"";
             } else {
                 $name = '';
             }
             $text = rawWiki($ID) . "<{$tag} {$name}";
             if (strtoupper($tag) == 'USE') {
                 $text .= '/>';
             } else {
                 $text = "></{$tag}>";
             }
             saveWikiText($ID, $text, "Add {$tag}", FALSE);
             $event->data = 'show';
             break;
         default:
             return;
     }
     $ACT = $event->data;
 }