Ejemplo n.º 1
0
 /**
  * @see FWS_Document_Renderer_HTML_Default::footer()
  */
 protected function footer()
 {
     $locale = FWS_Props::get()->locale();
     $db = FWS_Props::get()->db();
     $tpl = FWS_Props::get()->tpl();
     $doc = FWS_Props::get()->doc();
     $profiler = $doc->get_profiler();
     $mem = FWS_StringHelper::get_formated_data_size($profiler->get_memory_usage(), $locale->get_thousands_separator(), $locale->get_dec_separator());
     // show footer
     $tpl->set_template('inc_footer.htm');
     $tpl->add_variables(array('version' => TDL_VERSION, 'time' => $profiler->get_time(), 'queries' => $db->get_query_count(), 'memory' => $mem));
     $tpl->restore_template();
 }
Ejemplo n.º 2
0
    /**
     * exports the changelog
     */
    private function _export()
    {
        $cfg = FWS_Props::get()->cfg();
        $db = FWS_Props::get()->db();
        $versions = FWS_Props::get()->versions();
        $text = '';
        $where = ' WHERE entry_fixed_date > 0';
        if ($cfg['project_id'] != 0) {
            $where .= ' AND project_id = ' . $cfg['project_id'];
        }
        $last_version = '';
        $rows = $db->get_rows('SELECT id,entry_title,project_id,entry_fixed_date,entry_start_version,
							entry_fixed_version,entry_type,
							IF(entry_fixed_version = 0,entry_start_version,entry_fixed_version) version
			 FROM ' . TDL_TB_ENTRIES . '
			 ' . $where . '
			 ORDER BY project_id DESC, version DESC, entry_fixed_date DESC');
        foreach ($rows as $data) {
            if ($last_version != $data['version']) {
                if ($data['entry_fixed_version'] > 0) {
                    $fixed_version = $versions->get_element($data['entry_fixed_version']);
                } else {
                    $fixed_version = $versions->get_element($data['entry_start_version']);
                }
                $text .= '### ' . $fixed_version['project_name'] . ' :: ' . $fixed_version['version_name'] . ' ###' . "\n";
                $last_version = $data['version'];
            }
            $text .= '	[' . $data['entry_type'] . '] ' . $data['entry_title'] . "\n";
        }
        // set result to renderer
        $doc = FWS_Props::get()->doc();
        $doc->set_mimetype('text/plain');
        $doc->use_raw_renderer()->set_content(FWS_StringHelper::htmlspecialchars_back($text));
    }
Ejemplo n.º 3
0
 /**
  * Adds the default delete-info with the following SQL-statement to the template:
  * <code>
  * 	SELECT id,<field> FROM <table> WHERE id IN (implode(',',<ids>))
  * </code>
  *
  * @param array $ids a numeric array with the ids
  * @param string $table the db-table
  * @param string $field the field which should be used to show the entries to delete to the user
  * @param string $yes_url the url for the yes-option
  * @param string $no_url the url for the no-option
  * @param string $lang_entry the entry in $this->lang which should be used as message-text
  */
 public function add_default_delete_info($ids, $table, $field, $yes_url, $no_url, $lang_entry)
 {
     $sql = FWS_StringHelper::get_default_delete_sql($ids, $table, $field);
     $this->add_delete_info($ids, $sql, $field, $yes_url, $no_url, $lang_entry);
 }
Ejemplo n.º 4
0
 /**
  * Parses a method-description into a PC_Obj_Method
  * 
  * @param string $file the filename
  * @param string $desc the description
  * @return array an array of the class-name and the PC_Obj_Method
  * @throws PC_PHPRef_Exception if it failed
  */
 public static function parse_method_desc($file, $desc)
 {
     $classname = '';
     // find link to method
     if (preg_match('/<a href="(.*?)" class="methodname">/', $desc, $m)) {
         $file = dirname($file) . '/' . $m[1];
     }
     // prepare description
     $desc = trim(strip_tags($desc));
     $desc = FWS_StringHelper::htmlspecialchars_back($desc);
     // filter out modifier, return-type, name and params
     $match = array();
     $res = preg_match('/^(?:(abstract|static|final|public|protected|private)\\s*)?' . '(?:(abstract|static|final|public|protected|private)\\s*)?' . '(?:(abstract|static|final|public|protected|private)\\s*)?' . '(?:(\\S+)\\s+)?' . '([a-zA-Z0-9_:\\-\\>]+)\\s*\\((.*?)\\)$/s', $desc, $match);
     if (!$res) {
         throw new PC_PHPRef_Exception('Unable to parse "' . $desc . '"');
     }
     list(, $modifier1, $modifier2, $modifier3, $return, $name, $params) = $match;
     // detect class-names
     if (($pos = strpos($name, '::')) !== false || ($pos = strpos($name, '->')) !== false) {
         $classname = substr($name, 0, $pos);
         $name = substr($name, $pos + 2);
     }
     // build basic method
     $method = new PC_Obj_Method($file, 0, $classname != '');
     if ($modifier1 == 'static' || $modifier2 == 'static' || $modifier3 == 'static') {
         $method->set_static(true);
     }
     if ($modifier1 == 'final' || $modifier2 == 'final' || $modifier3 == 'final') {
         $method->set_final(true);
     }
     if ($modifier1 == 'abstract' || $modifier2 == 'abstract' || $modifier3 == 'abstract') {
         $method->set_abstract(true);
     }
     if (in_array($modifier1, array('private', 'protected'))) {
         $method->set_visibility($modifier1);
     } else {
         if (in_array($modifier2, array('private', 'protected'))) {
             $method->set_visibility($modifier2);
         } else {
             if (in_array($modifier3, array('private', 'protected'))) {
                 $method->set_visibility($modifier3);
             }
         }
     }
     if ($return) {
         $method->set_return_type(PC_Obj_MultiType::get_type_by_name($return));
         // set this always for builtin types since it makes no sense to report errors for
         // inherited classes or similar
         $method->set_has_return_doc(true);
     }
     $method->set_name($name);
     // check what kind of params we have
     $optional = '';
     $firstopt = strpos($params, '[');
     if ($firstopt !== false) {
         $required = substr($params, 0, $firstopt);
         $optional = substr($params, $firstopt + 1);
         $optional = str_replace(array('[', ']'), '', $optional);
     } else {
         $required = $params;
     }
     // add required ones
     $required = trim($required);
     if ($required && $required != 'void') {
         $reqparts = explode(', ', $required);
         foreach ($reqparts as $part) {
             list($type, $name) = explode(' ', trim($part));
             $param = new PC_Obj_Parameter();
             $param->set_name(trim($name));
             $param->set_mtype(self::get_param_type($type));
             $param->set_has_doc(true);
             $method->put_param($param);
         }
     }
     // add optional ones
     $optional = trim($optional);
     if ($optional) {
         $optparts = explode(', ', $optional);
         foreach ($optparts as $part) {
             $part = trim($part);
             if ($part == '') {
                 continue;
             }
             $default = null;
             $param = new PC_Obj_Parameter();
             $param->set_optional(true);
             // has it a known default-value?
             if (($pos = strpos($part, '=')) !== false) {
                 $nametype = trim(substr($part, 0, $pos));
                 $default = trim(substr($part, $pos + 1));
                 $parts = preg_split('/\\s+/', $nametype);
                 if (count($parts) != 2) {
                     throw new PC_PHPRef_Exception('Parameter description has not 2 parts: "' . $nametype . '"');
                 }
                 list($type, $name) = $parts;
             } else {
                 // detect variable arguments
                 if (strpos($part, '...') !== false) {
                     $param->set_first_vararg(true);
                     // sometimes there is a space bewteen $ and ...
                     $part = preg_replace('/\\$\\s+\\.\\.\\./', '$...', $part);
                 }
                 $parts = preg_split('/\\s+/', $part);
                 if (count($parts) != 2) {
                     throw new PC_PHPRef_Exception('Parameter description has not 2 parts: "' . $part . '"');
                 }
                 list($type, $name) = $parts;
             }
             // detect references
             if (substr($name, 0, 1) == '&') {
                 $param->set_reference(true);
                 $name = substr($name, 1);
             }
             $param->set_name(trim($name));
             $param->set_mtype(self::get_param_type($type, $default));
             $param->set_has_doc(true);
             $method->put_param($param);
         }
     }
     return array('func', $classname, $method);
 }