Type | Line | Description |
---|---|---|
93 | Display custom error only if exit_on_error and script has been set |
Type | Line | Description |
---|---|---|
306 | Keep alive as long as possible | |
364 | Fire all which have been added already | |
489 | Load all lazy tables | |
910 | add space before, thus, we don't add spaces in to the code!!! |
Type | Line | Description |
---|---|---|
53 | ignore actions with system tag | |
82 | cache it only, when the $tabName is null! | |
119 | cache it only, when the $tabName is null! |
Type | Line | Description |
---|---|---|
53 | TABLE_UNIQUE_NAME:ACTION_CLASS_NAME:ACTION_UNIQUE_NAME => true | |
56 | ACTION-ID => actionRecord | |
66 | TABLE-ID => tableRecord | |
69 | Add table actions | |
71 | Fuman_Util_Logger::trace('table: '.$table->getUniqueName()); | |
72 | System tables are added separately | |
74 | Fuman_Util_Logger::trace('table continue: '.$table->getUniqueName()); | |
92 | Add non table actions | |
100 | Action with tables | |
114 | Unique actions | |
120 | Others | |
129 | Now add all to unknown which have not been added | |
176 | Remove empty core overview actions | |
199 | Container | |
214 | Item | |
216 | System table | |
231 | Check ACL | |
242 | Other | |
250 | Unique action | |
253 | Check ACL | |
269 | Table action | |
276 | Check ACL | |
278 | Do we have a parent and table is not hidden | |
283 | Do we have children | |
299 | Other | |
317 | Create default navigation item | |
351 | Do we have a parent and table is not hidden | |
356 | Do we have children | |
376 | Its not a big icon and added to root (this function) |
Type | Line | Description |
---|---|---|
787 | return in_array($name, self::$_getters); | |
803 | Remove some values |
Type | Line | Description |
---|---|---|
18 | Tables | |
28 | Add Fuman_Table to tables | |
30 | Add concrete tables | |
39 | Users | |
55 | System | |
75 | $system->addChild($this->createActionItem(Fuman_Registry::getActionDescriptor('app_core_action_systemcarecenter'))); | |
83 | Translations | |
102 | Search |
Type | Line | Description |
---|---|---|
176 | cast all to string (php bug width 0=='abcd') |
Type | Line | Description |
---|---|---|
113 | @todo warum escapen => model initByRequst ??? |
Type | Line | Description |
---|---|---|
239 | load elements before checks against content block | |
312 | @todo fugu move form fields in the theme dictionary |
Type | Line | Description |
---|---|---|
264 | Set cookie for cache handling | |
271 | Load default translations | |
401 | Only check if backend | |
413 | Settings in DB | |
447 | Settings in config.php | |
463 | Todo remove after some time, MySQL | |
474 | changes svg icon pathes | |
475 | Replace app/ on fuman_table icon | |
479 | will be removed later | |
483 | Replace path in navigation | |
498 | Tables which have to be updated before we call loadAllTables !!! | |
535 | Add some flags | |
542 | Add frontend flag | |
549 | ||
581 | Settings in DB | |
587 | Done | |
675 | Use default | |
857 | Fire all which have been added already | |
894 | $which = 'application'; | |
930 | Add default |
Type | Line | Description |
---|---|---|
20 | allows to overwrite the normal host matches | |
39 | Exact match | |
43 | Match | |
47 | Match |
Type | Line | Description |
---|---|---|
202 | //First called setDataPath will set main data path | |
203 | if (!defined('FUMAN_MAIN_DATA_PATH')) { | |
204 | define('FUMAN_MAIN_DATA_PATH', Fuman_Util_File::prependRootPath($this->_config->application->data_path, true)); | |
205 | } |
Type | Line | Description |
---|---|---|
111 | Set default if nothing defined | |
127 | Set default if nothing set | |
133 | Set frontend interface languages | |
137 | intersect with all content translation languages | |
164 | Init admin and frontend languages | |
166 | Fuman_Util_Logger::trace('URI: '.$_SERVER['REQUEST_URI']); | |
168 | Init from request | |
169 | Admin language | |
173 | Frontend language | |
178 | Fuman_Util_Logger::trace('request: backendlanguage: '.$this->getBackendInterfaceLanguage().' language: '.$this->getFrontendInterfaceLanguage()); | |
180 | Init from cookie | |
181 | Admin language | |
188 | Frontend language | |
196 | Fuman_Util_Logger::trace('cookie: backendlanguage: '.$this->getBackendInterfaceLanguage().' language: '.$this->getFrontendInterfaceLanguage()); | |
198 | User agent | |
204 | Fuman_Util_Logger::trace('lang: *'.$lang.'*'); | |
216 | Set languages from user agent | |
218 | Admin | |
222 | Frontend | |
228 | Fuman_Util_Logger::trace('agent: backendlanguage: '.$this->getBackendInterfaceLanguage().' language: '.$this->getFrontendLanguage()); | |
232 | Set defaults | |
233 | Admin | |
238 | Frontend | |
244 | Fuman_Util_Logger::trace('END backendlanguage: '.$this->getBackendInterfaceLanguage().' language: '.$this->getFrontendInterfaceLanguage()); | |
246 | Update languages in cookie | |
257 | Get the users acl only if application is ready | |
272 | try to create user from session | |
286 | Check if user still enabled or available | |
333 | For security reason | |
336 | Set hasLogin cookie | |
385 | Check that we vont set cookie twice per request => ugly | |
400 | 90 days | |
662 | matches popular bots | |
665 | matches popular mobile devices that have small screens and/or touch inputs | |
666 | mobile devices have regional trends; some of these will have varying popularity in Europe, Asia, and America | |
667 | detailed demographics are unknown, and South America, the Pacific Islands, and Africa trends might not be represented, here | |
670 | wap | |
673 | these are less common, and might not be worth checking |
Type | Line | Description |
---|---|---|
20 | Set defaults | |
61 | if it's a string, so we look if its a namespace or native |
Type | Line | Description |
---|---|---|
56 | Make function | |
66 | echo $filter.' inverted: '.$inverted.'<br>'; | |
68 | echo 'filter: '.$filter."\n<br>"; | |
75 | No filter defined |
Type | Line | Description |
---|---|---|
19 | parent::__construct($name, $parseLevel); |
Type | Line | Description |
---|---|---|
29 | $arguments = explode(':', $name); | |
129 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
135 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
141 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
147 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
153 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
159 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
165 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
171 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
177 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
183 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); | |
189 | var_dump('firstValue: '.$x, 'operator: '.$operand, 'secondValue: '.$y); |
Type | Line | Description |
---|---|---|
28 | no arguments for constructor |
Type | Line | Description |
---|---|---|
35 | Set id as default | |
119 | name like #... | |
124 | Inline record edit | |
149 | Get value from input type | |
156 | name like #..., create inline translated data | |
159 | wrap by Fuman_Template_TranslatedData to address like #NAME._ | |
171 | Get value from input type | |
198 | Its just a {#} => table edit container | |
222 | value is based on Fuman_Template_TranslatedDataContainer | |
226 | value is based on Fuman_Template_TranslatedData | |
230 | not based on Fuman_Template_TranslatedData => only support #NAME |
Type | Line | Description |
---|---|---|
117 | Test | |
122 | Cache | |
135 | Fallback to default language | |
220 | Remove some values |
Type | Line | Description |
---|---|---|
10 | Added \S to not match spaces/line breaks at beginning => css parsing | |
12 | <![IGNORE[]]> | |
77 | For very last we add response processor (that other processor may add values to response) | |
150 | set new | |
159 | Stop | |
163 | Catch level 0 errors | |
164 | if($level==0){ | |
166 | } | |
307 | $result = '{' . $key . '}'; | |
342 | We want process the current data | |
353 | Set frontend flag | |
516 | init Caching | |
534 | Caching | |
548 | Change ids to file internal unique ids | |
551 | remove xml doc header (not valid for inline) | |
553 | Create unique ids | |
587 | $templateString = preg_replace('/\\\{/','<![IGNORE[{]]>',$templateString); | |
588 | $templateString = preg_replace('/\\\}/','<![IGNORE[}]]>',$templateString); | |
607 | concatenate/add unrecognized string part | |
611 | Its empty (maybe JSON) | |
617 | extract all strings | |
632 | flag, if we have a valid placeholder (part) | |
639 | if (substr_count($pipePart, ':') > 0 && preg_match_all(self::PLACEHOLDER_VALUE_PATTERN, $pipePart, $pipePartMatches)) { | |
650 | replace the placeholders with the extracted strings |
Type | Line | Description |
---|---|---|
67 | Key is null, and value object which supports __toString |
Type | Line | Description |
---|---|---|
106 | Fuman_Util_Logger::trace('read hier ... '.$this->_sessionNamespacePrefix); | |
110 | Reset auth container => logout | |
111 | Because the php-session will be updated on every request, we have to manage this internally | |
113 | Session expired | |
119 | Create auth container | |
133 | Fuman_Util_Logger::trace('session',$this->_data); |
Type | Line | Description |
---|---|---|
67 | www.w3.org/Protocols/rfc2616/rfc2616-sec6.html | |
236 | Update last access of session | |
251 | when we can't handle «not found» exception, kill | |
253 | Finish immediately that surrounding content wont be rendered | |
259 | We wont reroute if its not a html response |
Type | Line | Description |
---|---|---|
249 | ' : '') . $parsedSockedUri['host'], $port, $errno, $errstr, $this->_timeout); | |
265 | Body set => POST | |
270 | Method undefined or POST | |
312 | Set default | |
352 | Rearrange blobs | |
355 | Change end just to line break (=> except last) | |
365 | var_dump($parsedProxyUri); | |
369 | ' . $parsedUri['host'] . ':' . ($parsedUri['port'] ? $parsedUri['port'] : '80'); | |
381 | var_dump($parsedUri); | |
418 | Fuman_Util_Logger::trace('request header ('.$this->_uri.')',$header); | |
420 | echo $header.'<br>'; | |
422 | return; | |
428 | echo $this->_body; | |
434 | var_dump($blobs); | |
437 | echo $blob->start; | |
441 | Write file | |
450 | echo isset($blob->data) ? $blob->data : $blob->value; | |
454 | echo $blob->end; | |
460 | Read response | |
462 | Header | |
465 | echo $line.'<br>'; | |
473 | var_dump($matches); |
Type | Line | Description |
---|---|---|
155 | www.sitemaps.org/schemas/sitemap/0.9\" \n"; | |
156 | www.w3.org/1999/xhtml\" \n"; | |
157 | www.google.com/schemas/sitemap-image/1.1\" \n"; | |
158 | www.sitemaps.org/schemas/sitemap-video/1.1\">\n"; |
Type | Line | Description |
---|---|---|
61 | echo $file.'<br>'; | |
67 | Collect dependencies per file not per class ! | |
99 | break; | |
104 | Remove all classes from dependencies which are not in this dir | |
140 | echo $className."\n"; | |
143 | echo 'continue 1: '.$className."\n"; | |
147 | echo 'continue 2: '.$className."\n"; | |
172 | Remove comment | |
174 | Remove php tags | |
178 | echo '//PACK: *'.$className.'* '.$r['file'].' : '.$r['dependencies_count'].' : '.((is_array($r['dependencies'])&&count($r['dependencies'])>0)?implode(',',$r['dependencies']):'-')."\n"; | |
187 | No progress | |
206 | packed: ' . date('Y-m-d H:i:s') . ', ' . sprintf('%.2f', (strlen($packedSource) / $totalSize) * 100) . '%' . "\n" . $packedSource; |
Type | Line | Description |
---|---|---|
23 | Fix quotes | |
29 | Fix braces | |
43 | Get rid of commas | |
46 | get rid of single character words | |
49 | Get rid of single character words | |
52 | Get rid of extra spaces | |
93 | echo 'phrase: '.((bool)$negotiate).':'.$currentOperator.':'.$phrase.'<br>'."\n"; | |
117 | echo 'inner: '.((bool)$negotiate).':'.$currentOperator.':'.$inner.'<br>'."\n"; | |
173 | echo 'word: '.((bool)$negotiate).':'.$currentOperator.':'.$word.'<br>'."\n"; | |
192 | break; |
Type | Line | Description |
---|---|---|
8 | lessphp.gpeasy.com/ | |
27 | lesscss.org/#-color-functions | |
66 | $this->SetImportDirs(array(FUMAN_ROOT_PATH)); | |
141 | if (!$this->importDisabled) { | |
160 | } | |
195 | ||
196 | /** | |
197 | * Find import | |
198 | * | |
199 | * @param string $url | |
200 | * @return null|string | |
201 | */ | |
202 | function findImport($url) { | |
203 | $dirs = (array)$this->importDir; | |
204 | array_push($dirs, FUMAN_ROOT_PATH); | |
205 | foreach ($dirs as $dir) { | |
206 | $full = $dir . (substr($dir, -1) != '/' ? '/' : '') . $url; | |
207 | if ($this->fileExists($file = $full . '.less') || $this->fileExists($file = $full)) { | |
208 | return $file; | |
209 | } | |
210 | } | |
211 | ||
212 | return null; | |
213 | } | |
227 | /** | |
228 | * LessC wrapper | |
229 | * | |
230 | * @version $Id: Less.php 36602 2014-12-03 11:03:01Z simon $ | |
231 | */ | |
232 | class Fuman_Util_Less_Parser extends lessc_parser { | |
233 | /** | |
234 | * Parse | |
235 | * | |
236 | * @param string $buffer | |
237 | * @return mixed @ishacky | |
238 | */ | |
239 | public function parse($buffer) { | |
240 | $buffer = preg_replace_callback('/^@import_from_config\s+(.*);$/imU', array($this->lessc, 'importFromConfig'), $buffer); | |
241 | return parent::parse($buffer); | |
242 | } | |
243 | } |
Type | Line | Description |
---|---|---|
138 | Remove special chars | |
143 | Replace html special chars | |
145 | remove all &xxxxx; | |
147 | since ' and " are translated to numeric values just remove any numerical html entities | |
149 | remove non ascii | |
151 | remove unwanted chars | |
167 | replace unwanted chars by - | |
169 | compact | |
171 | trim | |
195 | Remove divisors | |
210 | Get format for constant | |
275 | Extract divisors | |
349 | We will only join if we have an enclosure | |
352 | lineBreak and enclosure defined | |
357 | Join internally broken lines again | |
359 | First line | |
382 | Remove empty lines at end of file | |
390 | return $lines; | |
421 | enclosure and escape defined |
Type | Line | Description |
---|---|---|
28 | Always use "." for floats. | |
43 | Check if associative | |
53 | prevent template _super recursions | |
54 | if(isset($data->_super)){ | |
55 | if(Fuman_Util::inObject($data,$data->_super) !== false) { | |
56 | unset($data->_super); | |
57 | throw new Fuman_Exception('template var _super detected and removed for preventing recursions'); | |
58 | Fuman_Util_Logger::error('template var _super detected and removed for preventing recursions', $data); | |
59 | } | |
60 | } | |
115 | escape apostrophe, remove linebreaks and newlines | |
121 | will be replaced by the appropriate prefix, current host will be added if requested | |
129 | i', $uri)) { | |
131 | i', $rootUri, $uri); | |
134 | ') == false) { | |
136 | ') == false) { | |
156 | ' . $_SERVER['HTTP_HOST']; | |
210 | replace unwanted chars by - | |
212 | compact | |
214 | trim | |
261 | Scramble email | |
310 | ) | |
318 | ', 0, 8, true) === 0) { |
Type | Line | Description |
---|---|---|
9 | Emergency: system is unusable | |
10 | Alert: action must be taken immediately | |
11 | Critical: critical conditions | |
12 | Error: error conditions | |
13 | Warning: warning conditions | |
14 | Notice: normal but significant condition | |
15 | Informational: informational messages | |
16 | Debug: debug messages | |
18 | Trace | |
100 | fail silently | |
101 | throw; | |
163 | var_dump($v['args']); | |
443 | code.google.com/p/prado3/source/browse/tags/3.1.9/framework/Util/TVarDumper.php |
Type | Line | Description |
---|---|---|
21 | replace unwanted chars by - | |
23 | compact - | |
25 | trim | |
419 | svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) |
Type | Line | Description |
---|---|---|
5 | garetjax.info/projects/browscap/ | |
71 | browsers.garykeith.com/stream.asp?BrowsCapINI'; | |
72 | browsers.garykeith.com/versions/version-date.asp'; | |
74 | 5 days | |
75 | 2 hours | |
151 | has to be set to reach E_STRICT compatibility, does not affect system/app settings | |
164 | Is the cache dir really the directory or is it directly the file? | |
186 | Load the cache at the first request | |
191 | Set the interval only if needed | |
199 | Find out if the cache needs to be updated | |
206 | Adjust the filemtime to the $errorInterval | |
215 | Automatically detect the useragent | |
229 | Original useragent | |
251 | Add the keys for each property | |
281 | Choose the right url | |
294 | Try parse ini file | |
311 | Load defaults if ini seems to bee invalid | |
313 | echo 'load defaults'."\n"; | |
317 | Default browser definitions | |
433 | Save the keys lowercased if needed | |
438 | Set cache loaded | |
442 | Get the whole PHP code | |
445 | Save and return | |
465 | echo 'cacheError: '.$a.' '.$b.' '.$c.'<br>'; | |
486 | Included | |
532 | Check version | |
548 | No update needed, return | |
554 | Get updated .ini file | |
556 | Check format | |
558 | Try update later | |
574 | Ok, lets read the file | |
581 | We are not in local mode | |
629 | Caches the result | |
641 | For last because we cant set a timeout here | |
669 | echo 'getRemoteData '.$this->_getUpdateMethod().' '.$url."\n"; | |
684 | else try with the next possibility (break omitted) | |
726 | else try with the next possibility | |
742 | else try with the next possibility | |
779 | Wont work if no permission | |
786 | Will work |
Type | Line | Description |
---|---|---|
1206 | Try get value from preference | |
1220 | First try set order by request | |
1233 | Now, let input types modify meta | |
1454 | Acl table subset defined | |
1460 | Now, let input types modify meta | |
1478 | } |
Type | Line | Description |
---|---|---|
88 | We do not add items which are not online, except if user logged in |
Type | Line | Description |
---|---|---|
137 | allow action mocking | |
150 | Frontend data found |
Type | Line | Description |
---|---|---|
162 | preg_match_all('/(([0-9]{1,})-{1}){0,1}([a-z0-9-_\(\)@]){1,}-{1}([0-9]{1,})(\.html|\/){1}/m', $uri, $matches); |
Type | Line | Description |
---|---|---|
26 | Nothing found | |
29 | Any path set | |
42 | Still null | |
55 | Set not found if any is offline | |
74 | Nothing found | |
75 | throw new Exception('Sitemap is empty'); |
Type | Line | Description |
---|---|---|
126 | Important :) | |
129 | Check all possible meta-tags | |
144 | Set correct meta-title | |
159 | Set url | |
164 | Check image if host is set. | |
189 | ') === false) { | |
190 | ' . $host; |
Type | Line | Description |
---|---|---|
32 | Frontend theme has to be registered first => default | |
40 | Add admin navigation | |
61 | We always have to add backend uri builder because of Config.addUriByActionClassName |
Type | Line | Description |
---|---|---|
111 | Fuman_Util_Logger::error('$_SESSION already closed'); |
Type | Line | Description |
---|---|---|
27 | php.net/manual/en/iterator.current.php | |
39 | php.net/manual/en/iterator.next.php | |
51 | php.net/manual/en/iterator.key.php | |
63 | php.net/manual/en/iterator.valid.php | |
76 | php.net/manual/en/iterator.rewind.php | |
88 | php.net/manual/en/countable.count.php | |
114 | php.net/manual/en/arrayaccess.offsetexists.php | |
132 | php.net/manual/en/arrayaccess.offsetget.php | |
147 | php.net/manual/en/arrayaccess.offsetset.php | |
169 | php.net/manual/en/arrayaccess.offsetunset.php |
Type | Line | Description |
---|---|---|
23 | $this->addModule('mime_magic'); | |
27 | $this->addModule('imagick'); |
Type | Line | Description |
---|---|---|
23 | ') == false) { | |
27 | Check config | |
59 | Check php execution in upload/download files folder | |
65 | We do not use FUMAN_WEB_FILES_ROOT because we will check it directly |
Type | Line | Description |
---|---|---|
41 | 30 days | |
61 | 1 hour | |
67 | Clean up response key log | |
74 | Clean up unknown | |
77 | File is in temp dir itself and end with fuman | |
81 | 1 hour | |
89 | Remove empty dirs | |
104 | 1 hour | |
124 | 1 hour |
Type | Line | Description |
---|---|---|
59 | Next loop | |
65 | Current loop | |
90 | $deleteCache = true; | |
95 | Check | |
104 | Restart | |
113 | Wait |
Type | Line | Description |
---|---|---|
117 | Just store first matching | |
223 | Define used sql objects | |
253 | check if db engine is MYISAM (inodb don't suppord fulltext) | |
261 | add fulltext: ALTER TABLE `fuman_searchindex` ADD FULLTEXT (`value_de`) | |
309 | Delete unused | |
335 | http://dev.mysql.com/tech-translations/articles/full-text-revealed.html | |
336 | http://devzone.zend.com/article/1304 | |
341 | $sql .= '(MATCH(' . $this->prepareColumnName($columnName) . ') AGAINST(' . $key . ' IN BOOLEAN MODE))'; | |
346 | First test in boolean mode , then get ranking as float |
Type | Line | Description |
---|---|---|
124 | Just store first matching | |
208 | Get first row to have a default ordering | |
222 | Not all drivers support lastInsertId | |
245 | TODO: Implement reorderSequence() method. | |
253 | TODO: Implement getFullTextRankingQuery() method. | |
263 | TODO: Implement manageSearchIndexManyToManyTriggers() method. | |
TODO | 11 | stefan (LOW, 14.3.2013) finish implementation and test |
Type | Line | Description |
---|---|---|
94 | Disable persistent if tracing | |
115 | Fuman_Util_Logger::trace('db connect: '.get_class($this).' '.$this->_dbConfig->username.'@'.$connectionString.' ; driver options: ',array('config'=>$this->_dbConfig, 'options'=>$driverOptions)); | |
337 | Fuman_Util_Logger::trace('decode: '.$value.' '.$this->_convertStringEncoding.' '.$dataType->getPhpType()); | |
500 | Create | |
518 | Update | |
531 | Change | |
533 | Only on system tables | |
544 | We do not change an type | |
551 | Add | |
715 | Add primary for where clause | |
980 | Add where | |
985 | Add order | |
988 | Add limit | |
1083 | $joinColumnSql = ''; | |
1088 | $columnList = $join->getColumnList(); | |
1090 | if($columnList->hasColumnNames() || $columnList->selectFromTable()){ | |
1091 | $joinColumnSql .= ', ' . $this->getColumnSQL($join->getTable(), $parameters, $columnList, $join->getAlias()); | |
1092 | } | |
1303 | Do we have any adds or deletes | |
1319 | Rebuild every 12 hours, otherwise do nothing | |
1321 | Only sync | |
1329 | ||
1330 | Update/Insert by lastupdate | |
1331 | ||
1339 | Fuman_Util_Logger::trace('maxLastUpdate: '.$table->getName().' '.$state->maxLastUpdate.' '.date('d.m.Y h:i:s',$state->maxLastUpdate)); | |
1358 | Find available records | |
1377 | Update | |
1379 | Fuman_Util_Logger::trace('do update...'); | |
1383 | Insert | |
1385 | Fuman_Util_Logger::trace('do insert...'); | |
1395 | Finished | |
1403 | ||
1404 | Find records which have been deleted | |
1405 | Using a binary search | |
1406 | ||
1408 | Fuman_Util_Logger::trace('searchIndex: '.$state->syncState); | |
1410 | ||
1411 | Find records which have been deleted | |
1412 | Using a "binary search" | |
1413 | ||
1416 | Initialized | |
1419 | Fuman_Util_Logger::trace('init stat: '.$table->getUniqueName()); | |
1424 | Fuman_Util_Logger::trace('values',$values); | |
1425 | Fuman_Util_Logger::trace('index values',$indexValues); | |
1427 | End | |
1433 | End | |
1443 | Fuman_Util_Logger::trace('stat',$state->syncStat); | |
1446 | End | |
1459 | Fuman_Util_Logger::trace('stat',$state->syncStat); | |
1462 | $logPrefix = str_repeat(' ',$state->syncStat->currentDepth); | |
1467 | Fuman_Util_Logger::trace($logPrefix.'blockPos: ' . $state->syncStat->blockPos . ' blockSize: ' . $blockSize . ' blocks: ' . $state->syncStat->blocks.' depth: '.$state->syncStat->depth.' currentDepth: '.$state->syncStat->currentDepth.' ('.($state->syncStat->depth - $state->syncStat->currentDepth).')'); | |
1471 | do not process if min > stat_max | |
1473 | Fuman_Util_Logger::trace('continue'); | |
1485 | Fuman_Util_Logger::trace('depth: '.$state->syncStat->depth.' current: '.$state->syncStat->currentDepth); | |
1486 | Fuman_Util_Logger::trace('values 1',$values); | |
1487 | Fuman_Util_Logger::trace('index values 1',$indexValues); | |
1491 | Fuman_Util_Logger::trace('has diff depth: '.$state->syncStat->depth.' currentDepth: '.$state->syncStat->currentDepth.' blockPos: ' . $state->syncStat->blockPos . ' blockSize: ' . $blockSize . ' blocks: ' . $state->syncStat->blocks); | |
1493 | Fuman_Util_Logger::trace('has diff'); | |
1495 | Fuman_Util_Logger::trace($logPrefix.'diff min: '.$min.' max: '.$max); | |
1499 | Fuman_Util_Logger::trace($logPrefix.'sync min: '.$min.' max: '.$max); | |
1503 | Check deletes | |
1525 | Fuman_Util_Logger::trace('sql: '.$sql); | |
1539 | Fuman_Util_Logger::trace('ids: ',$ids); | |
1550 | Inserts | |
1567 | Fuman_Util_Logger::trace('$newIds: '.$table->getUniqueName(),$newIds); | |
1568 | Fuman_Util_Logger::trace('$searchIndexIds: '.$table->getUniqueName(),$searchIndexIds); | |
1573 | Fuman_Util_Logger::trace('$searchIndexDuplicateIds: '.$table->getUniqueName(),$searchIndexDuplicateIds); | |
1609 | Fuman_Util_Logger::trace($logPrefix.'equal min: '.$min.' max: '.$max); | |
1616 | Find depth | |
1635 | Fuman_Util_Logger::trace('syncStat: ',$state->syncStat); | |
1637 | End | |
1643 | State >= 2 | |
1893 | return; | |
1930 | Default | |
TODO | 1079 | optimize sql queries (now sql join columns are ignored |
Type | Line | Description |
---|---|---|
48 | Fuman_Util_Logger::trace('record: '.$c, $record->getColumnValues()); |
Type | Line | Description |
---|---|---|
95 | Record already initialized, return | |
105 | No values set | |
114 | Convert values from database into php-type | |
116 | Fuman_Util_Logger::trace($table->getUniqueName().' '.$columnName.'=>'.$value); | |
301 | invalidate Cache | |
305 | if primary value is set, update uid | |
419 | Validate by validation groups | |
427 | Convert inputtype unique name to default column name | |
462 | Remove errors on columns | |
556 | Init | |
573 | Init call | |
576 | Fuman_Util_Logger::trace('load all tables ###########################'); | |
579 | Recursion ? | |
582 | Fuman_Util_Logger::trace('aborted ###########################'); | |
588 | Fuman_Util_Logger::trace('delete ###########################'); | |
592 | Fuman_Util_Logger::trace('return ###########################'); | |
600 | Reset visited records | |
606 | Fuman_Util_Logger::trace('delete 2 ###########################'); | |
621 | Fuman_Util_Logger::trace($logIndent.'delete '.$this->getTable()->getUniqueName().':'.$this->getPrimaryValue()); | |
623 | return; | |
680 | Fuman_Util_Logger::trace($logIndent.'record validate delete: '.$this->getTable()->getUniqueName().' '.$this->getPrimaryValue()); | |
689 | Fuman_Util_Logger::trace($logIndent.' '.$column->getRelationInfo().' : *'.$column->getDeleteBehaviour().'*'); | |
859 | @todo clean up | |
914 | Init call | |
918 | Recursion ? | |
929 | skip | |
945 | Remove unused level | |
954 | $parts[] = $this->getPrimaryValue(); |
Type | Line | Description |
---|---|---|
76 | Get first | |
102 | Add | |
106 | Remove | |
118 | Filter |
Type | Line | Description |
---|---|---|
41 | Create fake | |
133 | Remove first => default | |
196 | check the config, if an other db is set for this systemtable |
Type | Line | Description |
---|---|---|
116 | We only create a lock if a user is available and session is available | |
131 | Create new | |
157 | We only create a lock if a user is available and session is available | |
174 | We only create a lock if a user is available and session is available | |
198 | We only create a lock if a user is available and session is available |
Type | Line | Description |
---|---|---|
141 | $path = FUMAN_MAIN_DATA_PATH.'searchindex/'.$name.'.xml'; | |
142 | Fuman_Util_Logger::trace('hier: '.$path.' '.file_exists($path)); | |
330 | ||
331 | Collect tables | |
332 | ||
343 | Find searchable columns | |
356 | Mapping table does not contain primary column | |
377 | Noting found | |
388 | ||
389 | State 1,2,3 will be executed only once per session ! | |
390 | All actions are paged over multiple calls (using session) | |
391 | ||
393 | State: 0 | |
394 | Manage triggers for mapping tables | |
395 | Using: db->manageSearchIndexManyToManyTriggers | |
401 | tableUniqueName:inputTypeUniqueName | |
418 | Get database of fire [0] inputtype | |
427 | State: 1 | |
428 | Mark all records of not defined tables as "delete" | |
439 | State: 2 | |
440 | Check if the searchable columns have been changed (compared with searchindex_searchable record) | |
441 | Mark the changed records for update including dependencies | |
482 | Find break points which point to the current table | |
497 | Check if changed since last run | |
517 | All tables processed, next state | |
521 | Reset (memory usage) | |
527 | State: 3 | |
528 | Synchronize index (find any inserted/updated/deleted records in tables) | |
529 | Using: db->synchronizeSearchIndex | |
539 | Synchronize tables | |
544 | Fuman_Util_Logger::trace('current: '.$currentTableName); | |
559 | Finished | |
562 | Reset (memory usage) | |
567 | State: 4 | |
568 | Crawl through records and collect data | |
574 | Check every 5min | |
606 | Restart after max 15min | |
611 | Finished (wait a moment) | |
625 | Fuman_Util_Logger::trace('currentTableName: '.$currentTableName);//, $indexRecord->getColumnValues()); | |
632 | Update dependencies | |
639 | Status delete or table not defined | |
649 | Fuman_Util_Logger::trace('record: '.$indexRecord->getValue('record_id')); | |
654 | Fuman_Util_Logger::debug('record('.$currentTableName.'): '.$searchContent->getText().' DEPENDENCIES: '.$searchContent->getDependencies(false).'|||'.$searchContent->getDependencies(true)); | |
669 | Reset | |
701 | Not found | |
708 | Finished with unknown | |
716 | Continue immediately | |
726 | Reset all |
Type | Line | Description |
---|---|---|
29 | First admin then frontend (because it is easier to pass language param in frontend | |
111 | Only load translations if its not a subclass | |
112 | when remove, update hostadmin translation table | |
200 | Try to find it in different language | |
260 | Delete http output cache | |
274 | Delete http output cache | |
312 | Get lastupdate of translations | |
351 | Get translations from cache | |
361 | Get translation from runtimecache | |
379 | if we have an error or not all required languages are available | |
405 | Get it directly => without subset for users | |
486 | File is up to date | |
519 | First value field | |
526 | Noting found | |
663 | if (!$record->hasValue('key') || $record->getValue('key') !== $key) { | |
664 | $save = true; | |
665 | } | |
706 | check if we have the same value_type configured, otherwise update it | |
740 | Get default | |
745 | Get default |
Type | Line | Description |
---|---|---|
153 | '0',0 => null | |
244 | Get it without join | |
264 | unset($recordSet[$key]); | |
447 | Found tree_path in parent => stop | |
457 | Prepend root | |
479 | Delete http output cache |
Type | Line | Description |
---|---|---|
24 | Set this table as hidden | |
217 | TODO: Change the autogenerated stub | |
TODO | 190 | naming? |
Type | Line | Description |
---|---|---|
57 | Fuman_Util_Logger::trace('prefix: '.) |
Type | Line | Description |
---|---|---|
123 | Save record | |
155 | Update time stamp if elapsed | |
160 | Check value | |
165 | If changed | |
211 | Already loaded |
Type | Line | Description |
---|---|---|
24 | reset error code, it is set by the sub class |
Type | Line | Description |
---|---|---|
653 | Find a value in other languages | |
702 | Return the content default language if empty | |
756 | $forceLanguage = true; | |
759 | $forceLanguage = false; | |
1063 | if the language is not supported, do nothing! | |
1351 | '['.$path.':'.$this->getTable()->getUniqueName().':'.$this->getUniqueName().'] '; | |
1355 | Its translatable | |
TODO | 451 | fugu change return null to void |
Type | Line | Description |
---|---|---|
198 | Try to find default script in core | |
213 | Set action data | |
368 | Add fuman main | |
389 | Add background classes |
Type | Line | Description |
---|---|---|
44 | Reference has been created | |
53 | Fuman_Util_Logger::error('Fuman_Column_ManyToOne: could not load table "' . $this->_requiredTableUniqueName . '".', $ex); | |
101 | Fuman_Util_Logger::trace('_setReference: '.$this->_table->getUniqueName().' : '.$fumanTableUniqueName.' : '.$columnName); | |
103 | Add to source table | |
181 | Found an other ManyToOne relation which does not allow delete => ERROR !$ | |
183 | Fuman_Util_Logger::trace('### FOUND ERROR 1 '.$this->getTable()->getUniqueName().' : '.$record->getTable()->getUniqueName().' '.$record->getPrimaryValue().' '.$inputType->getUniqueName().' '.$record->getValue($inputType->getMainColumn()->getName()).' *'.$inputType->getMainColumn()->getDeleteBehaviour().'*'); | |
200 | We wont validate our self => infinite loop ! | |
202 | Fuman_Util_Logger::trace($logIndent.' ManyToOne return'); | |
221 | We have to do nothing, related record will be detached setting NULL | |
247 | We wont validate our self => infinite loop ! | |
249 | Fuman_Util_Logger::trace($logIndent.' ManyToOne return'); | |
285 | throw new Fuman_Exception('Invalid Reference at ' . $this->getTable()->getName() . '.' . $this->getName()); |
Type | Line | Description |
---|---|---|
59 | Reference has been created | |
68 | Fuman_Util_Logger::error('Fuman_Column_OneToMany: could not load table "' . $this->_referenceArgs[0] . '".', $ex); | |
111 | Fuman_Util_Logger::trace('_setReference: '.$this->_table->getUniqueName().' : '.$fumanTableUniqueName.' : '.$columnName); | |
113 | Add to source table | |
162 | OneToMany should never do anything ! | |
163 | This MUST be handles by the appropriate ManyToOne column | |
175 | OneToMany should never do anything ! | |
176 | This MUST be handles by the appropriate ManyToOne column |
Type | Line | Description |
---|---|---|
162 | Add to source table | |
165 | Fuman_Util_Logger::trace('_setup: '.$this->_table->getUniqueName().' : '.$referencedTableUniqueName.' : '.$referencedColumnName.' : '.$mappingTableUniqueName.' : '.$sourceColumnName.' : '.$targetColumnName.' : '.$autoCreate); | |
167 | Return if failure | |
168 | This may occure if table already deleted but mapping still exists | |
198 | Get the mapping table object | |
213 | Add relation between mapping table and source table | |
224 | Add relation between mapping table and referenced table | |
235 | Add columns to tables | |
240 | Fuman_Util_Logger::trace('_setMapping end: '.$this->_table->getUniqueName().' : '.$referencedTableUniqueName.' : '.$referencedColumnName.' : '.$mappingTableUniqueName.' : '.$sourceColumnName.' : '.$targetColumnName.' : '.$autoCreate); | |
311 | all about sorting | |
313 | Fuman_Util_Logger::trace('mappedTable: '.$this->_mappedTable->getName()); | |
347 | $meta->setWhere(new Fuman_Db_Where('OR')); | |
436 | Don't do anything, we will delete all mappings | |
448 | Dont pass $visited records, because 2-n wont get deleted because they were visitied by 1 | |
470 | inner join -> don't check in where against an existing id column | |
559 | when we map over the same table | |
587 | SORT_LOCALE_STRING |
Type | Line | Description |
---|---|---|
76 | @todo stefan (low, 14.3.2013) maybe implement this for fastcgi: http://php.net/manual/de/function.header.php | |
142 | @todo test it! |
Type | Line | Description |
---|---|---|
26 | Set default header | |
33 | send headers | |
36 | send data |
Type | Line | Description |
---|---|---|
53 | Init theme | |
57 | Log level must be higher than debug |
Type | Line | Description |
---|---|---|
14 | @todo stefan wieso? | |
15 | $this->addHeader('Content-Type', 'application/json; charset='.Fuman_Registry::getConfig()->web->charset); |
Type | Line | Description |
---|---|---|
61 | Password matches | |
73 | Set plain response |
Type | Line | Description |
---|---|---|
212 | Same role | |
264 | try to create user from session | |
270 | Load tables and acl |
Type | Line | Description |
---|---|---|
90 | Already initialized | |
97 | Create acl | |
141 | Subset the table | |
187 | Collect ACL |
Type | Line | Description |
---|---|---|
112 | Append | |
TODO | 56 | christian 25-02-2013 remove class when transition to form model is completed |
Type | Line | Description |
---|---|---|
43 | reset the config | |
65 | CREATE DROPDOWN | |
72 | PREPARE DATA | |
76 | FINISHED | |
80 | ADD JAVASCRIPT | |
128 | if valid, save | |
141 | should not happen | |
196 | @todo stefan remove later (2014) |
Type | Line | Description |
---|---|---|
21 | Get image handle and required information | |
24 | if empty, the provided Fuman_File is not an image. | |
29 | Validate arguments | |
46 | Calculate best OUTER fit | |
62 | Calculate best INNER fit (no crop & both dimensions set) | |
67 | Calculate complement | |
80 | Crop image | |
86 | Crop width xor height => resize image | |
92 | Resize height to crop width | |
95 | Resize width for crop height | |
105 | Calculate x pos if cropWidth | |
113 | Calculate y pos if cropHeight | |
123 | Create image | |
135 | '100K'; | |
140 | test if it is an size entry => ends on a letter | |
163 | quality | |
190 | No progress | |
199 | Mhmmm, without it wont work | |
204 | Search lower | |
212 | Search upper |
Type | Line | Description |
---|---|---|
98 | Set bg for GIF/PNG | |
132 | Set Image Meta |
Type | Line | Description |
---|---|---|
32 | Destination positions | |
43 | Nothing to crop => use original |
Type | Line | Description |
---|---|---|
102 | Init to false, that it is not null | |
161 | Create file system cache | |
183 | echo $httpOutputCachePath."\n"; | |
329 | Try to delete file system output cache | |
443 | Get value from config because application is not yet started | |
448 | echo 'set: '.isset($_COOKIE['fuman_cachePrefix']).' *'.(isset($_COOKIE['fuman_cachePrefix']) ? $_COOKIE['fuman_cachePrefix'] : '?').'* *'.$applicationInitialized.'* '; | |
465 | echo ' key: '.$key.' '; | |
468 | echo ' logged in '; | |
480 | echo ' valid '; | |
482 | echo 'cached '.($applicationInitialized?'2':'1'); | |
487 | echo ' end '; | |
504 | We wont create any cache if logged in => inline editing | |
509 | Get the ttl from application which has been set at beginning of request | |
514 | Not HTTP 200 | |
530 | We wont create any cache if logged in => inline editing |
Type | Line | Description |
---|---|---|
53 | Create fake | |
102 | don't manage table if not all inputTypes are defined | |
129 | Create entry in fuman_table | |
148 | class_name | |
154 | inherited_table_uniquename | |
163 | enable_sitemap | |
193 | Add inputtypes | |
237 | Fuman_Util_Logger::trace('errors',$inputTypeRecord->getSaveErrorColumns()); | |
369 | Fuman_Util_Logger::trace('config', Fuman_Util_Web::jsonEncode($configuration)); | |
TODO | 8 | by christian 28-05-2013 handling for inputtypes plural/icons/enable_sitemap missing |
Type | Line | Description |
---|---|---|
34 | Try to create the table | |
102 | Make sure that its an AND subset | |
212 | Most restricted first ! | |
252 | Already checked | |
258 | Do we have a subset defined ? | |
261 | We have a subset on it => no result | |
271 | Set check column | |
386 | Load tables | |
455 | @todo stefan delete? |
Type | Line | Description |
---|---|---|
117 | prevent recursion (because onApplicationReady calls _init) | |
257 | Create caller lookup | |
498 | Find active item by caller | |
594 | $name = self::SESSION_CONTAINER_NAME . '_' . (Fuman_Registry::getClient()->hasUserActiveRole() ? 'private' : 'public'); | |
605 | Init all | |
610 | Link together | |
625 | Add to root |
Type | Line | Description |
---|---|---|
73 | reset | |
87 | Handle cache | |
177 | Proxy | |
182 | Set timezone | |
206 | Add to properties to be available in template processor too | |
497 | if child or parent is a list and child have "not mergeable sign", remove it | |
500 | merge values if parent is a list and child is mergeable | |
504 | Remove multiple commas | |
507 | if parent was a list, but the new value not, change it! | |
TODO | 479 | rewrite (not really straight forward) wtf parent |
Type | Line | Description |
---|---|---|
223 | include_once($path); | |
224 | return; | |
315 | i', '', $className); |
Type | Line | Description |
---|---|---|
99 | @todo discuss, if it is better when it set it only to true if version exits (some lines up) |
Type | Line | Description |
---|---|---|
181 | Get a clone of a system table | |
242 | Get Table Info | |
275 | Put instances back to container | |
361 | Subset | |
391 | Add columns | |
396 | $columns = $tableSerialized['columns']; | |
398 | Parents | |
417 | fumanId | |
418 | uniqueName | |
421 | config | |
434 | Self | |
448 | fumanId | |
449 | uniqueName | |
450 | fuman table | |
451 | column-name | |
452 | config | |
453 | record |
Type | Line | Description |
---|---|---|
11 | The current build number of less.php | |
12 | The less.js version that this build should be compatible with | |
13 | The parser cache version |
Type | Line | Description |
---|---|---|
19 | option - whether to compress | |
20 | whether units need to evaluate correctly | |
21 | whether math has to be within parenthesis | |
22 | option - whether to adjust URL's to be relative | |
23 | whether to add args into url tokens | |
29 | false, 'serialize', 'php', 'var_export', 'callback'; | |
33 | whether to output a source map | |
45 | Less input string | |
46 | input string length | |
47 | current index in `input` | |
48 | holds state for backtracking | |
77 | Top parser on an import tree must be sure there is one "env" | |
78 | which will then be passed around by reference. | |
103 | set new options | |
194 | will also save file | |
195 | FIXME: should happen somewhere else? | |
205 | reset php settings | |
313 | fix uri_root? | |
314 | Instead of The mixture of file path for the first argument and directory path for the second argument has bee | |
371 | entry info | |
389 | inherit reference | |
486 | Using serialize | |
487 | Faster but uses more memory | |
498 | Using generated php code | |
516 | save the cache | |
527 | msg('write cache file'); | |
536 | Requires __set_state() | |
561 | Remove potential UTF Byte Order Mark | |
644 | The match is confirmed, add the match length to `this::pos`, | |
645 | and consume any extra white-space characters (' ' || '\n') | |
646 | which come after that. The reason for this is that LeSS's | |
647 | grammar is mostly white-space insensitive. | |
648 | ||
665 | Non-terminal, match using a function call | |
694 | Match a single character in the input, | |
702 | Match a regexp from the current start point | |
727 | return ($this->input[$this->pos] === $tok ); | |
774 | ||
775 | Here in, the parsing rules/functions | |
776 | ||
777 | The basic structure of the syntax tree generated is as follows: | |
778 | ||
779 | Ruleset -> Rule -> Value -> Expression -> Entity | |
780 | ||
781 | Here's some LESS code: | |
782 | ||
783 | .class { | |
784 | color: #fff; | |
785 | border: 1px solid #000; | |
786 | width: @w + 4px; | |
787 | > .child {...} | |
788 | } | |
789 | ||
790 | And here's what the parse tree might look like: | |
791 | ||
792 | Ruleset (Selector '.class', [ | |
793 | Rule ("color", Value ([Expression [Color #fff]])) | |
794 | Rule ("border", Value ([Expression [Dimension 1px][Keyword "solid"][Color #000]])) | |
795 | Rule ("width", Value ([Expression [Operation "+" [Variable "@w"][Dimension 4px]]])) | |
796 | Ruleset (Selector [Element '>', '.child'], [...]) | |
797 | ]) | |
798 | ||
799 | In general, most rules will try to parse a token with the `$()` function, and if the return | |
800 | value is truly, will return a new node, of the relevant type. Sometimes, we need to check | |
801 | first, before parsing, that's when we use `peek()`. | |
802 | ||
804 | ||
805 | The `primary` rule is the *entry* and *exit* point of the parser. | |
806 | The rules here can appear at any level of the parse tree. | |
807 | ||
808 | The recursive nature of the grammar is an interplay between the `block` | |
809 | rule, which represents `{ ... }`, the `ruleset` rule, and this `primary` rule, | |
810 | as represented by this simplified grammar: | |
811 | ||
812 | primary → (ruleset | rule)+ | |
813 | ruleset → selector+ block | |
814 | block → '{' primary '}' | |
815 | ||
816 | Only at one point is the primary rule not called from the | |
817 | block rule: at the root level. | |
818 | ||
834 | $node = $this->MatchFuncs( array( 'parseMixinDefinition', 'parseRule', 'parseRuleset', 'parseMixinCall', 'parseComment', 'parseDirective')); | |
853 | We create a Comment node for CSS comments `/* */`, | |
854 | but keep the LeSS comments `//` silent, by just skipping | |
855 | over them. | |
867 | $comment = $this->MatchReg('/\\G\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/'); | |
868 | not the same as less.js to prevent fatal errors | |
891 | ||
892 | A string, which supports escaping " and ' | |
893 | ||
894 | "milky way" 'he\'s the one!' | |
895 | ||
903 | Escaped strings | |
914 | Fix for #124: match escaped newlines | |
915 | $str = $this->MatchReg('/\\G"((?:[^"\\\\\r\n]|\\\\.)*)"|\'((?:[^\'\\\\\r\n]|\\\\.)*)\'/'); | |
926 | ||
927 | A catch-all word, such as: | |
928 | ||
929 | black border-collapse | |
930 | ||
933 | $k = $this->MatchReg('/\\G[_A-Za-z-][_A-Za-z0-9-]*/'); | |
945 | duplicate of Less_Tree_Color::FromKeyword | |
950 | detect named color | |
959 | ||
960 | A function call | |
961 | ||
962 | rgb(255, 0, 255) | |
963 | ||
964 | We also try to catch IE's `alpha()`, but let the `alpha` parser | |
965 | deal with the details. | |
966 | ||
967 | The arguments are parsed with the `entities.arguments` parser. | |
968 | ||
991 | Parse the '(' and consume whitespace. | |
1030 | Assignments are argument entities for calls. | |
1031 | They are present in ie filter properties as shown below. | |
1032 | ||
1033 | filter: progid:DXImageTransform.Microsoft.Alpha( *opacity=50* ) | |
1034 | ||
1052 | ||
1053 | Parse url() tokens | |
1054 | ||
1055 | We use a specific rule for urls, because they don't really behave like | |
1056 | standard function calls. The difference is that the argument doesn't have | |
1057 | to be enclosed within a string, so it can't be parsed as an Expression. | |
1058 | ||
1083 | ||
1084 | A Variable entity, such as `@fink`, in | |
1085 | ||
1086 | width: @fink + 2px | |
1087 | ||
1088 | We use a different parser for variable definitions, | |
1089 | see `parsers.variable`. | |
1090 | ||
1099 | A variable entity useing the protective {} e.g. @{var} | |
1108 | ||
1109 | A Hexadecimal color | |
1110 | ||
1111 | #4F3C2F | |
1112 | ||
1113 | `rgb` and `hsl` colors are parsed through the `entities.call` parser. | |
1114 | ||
1121 | ||
1122 | A Dimension, that is, a number and a unit | |
1123 | ||
1124 | 0.5em 95% | |
1125 | ||
1130 | Is the first char of the dimension 0-9, '.', '+' or '-' | |
1146 | ||
1147 | A unicode descriptor, as is used in unicode-range | |
1148 | ||
1149 | U+0?? or U+00A1-00A9 | |
1150 | ||
1159 | ||
1160 | JavaScript code to be evaluated | |
1161 | ||
1162 | `window.location.href` | |
1163 | ||
1184 | ||
1185 | The variable part of a variable definition. Used in the `rule` parser | |
1186 | ||
1187 | @fink: | |
1188 | ||
1196 | ||
1197 | The variable part of a variable definition. Used in the `rule` parser | |
1198 | ||
1199 | @fink(); | |
1200 | ||
1209 | ||
1210 | extend syntax - used to extend selectors | |
1211 | ||
1249 | ||
1250 | A Mixin call, with an optional argument list | |
1251 | ||
1252 | #mixins > .square(#fff); | |
1253 | .rounded(4px, black); | |
1254 | .button; | |
1255 | ||
1256 | The `while` loop is there because mixins can be | |
1257 | namespaced, but we only support the child and descendant | |
1258 | selector for now. | |
1259 | ||
1268 | stop us absorbing part of an invalid selector | |
1361 | Variable | |
1380 | we do not support setting a ruleset as a default variable - it doesn't make sense | |
1381 | However if we do want to add it, there is nothing blocking it, just don't error | |
1382 | and remove isCall dependency below | |
1455 | ||
1456 | A Mixin definition, with a list of parameters | |
1457 | ||
1458 | .rounded (@radius: 2px, @color) { | |
1459 | ... | |
1460 | } | |
1461 | ||
1462 | Until we have a finer grained state-machine, we have to | |
1463 | do a look-ahead, to make sure we don't have a mixin call. | |
1464 | See the `rule` function for more information. | |
1465 | ||
1466 | We start by matching `.rounded (`, and then proceed on to | |
1467 | the argument list, which has optional default values. | |
1468 | We store the parameters in `params`, with a `value` key, | |
1469 | if there is a value, such as in the case of `@radius`. | |
1470 | ||
1471 | Once we've got our params list, and a closing `)`, we parse | |
1472 | the `{...}` block. | |
1473 | ||
1493 | .mixincall("@{a}"); | |
1494 | looks a bit like a mixin definition.. | |
1495 | also | |
1496 | .mixincall(@a: {rule: set;}); | |
1497 | so we have to be nice and restore | |
1507 | Guard | |
1524 | ||
1525 | Entities are the smallest recognized token, | |
1526 | and can be found inside a rule's value. | |
1527 | ||
1533 | ||
1534 | A Rule terminator. Note that we use `peek()` to check for '}', | |
1535 | because the `block` rule will be expecting it, but we still need to make sure | |
1536 | it's there, if ';' was ommitted. | |
1537 | ||
1542 | ||
1543 | IE's alpha function | |
1544 | ||
1545 | alpha(opacity=88) | |
1546 | ||
1568 | ||
1569 | A Selector Element | |
1570 | ||
1571 | div | |
1572 | + h1 | |
1573 | #socks | |
1574 | input[type="text"] | |
1575 | ||
1576 | Elements are the building blocks for Selectors, | |
1577 | they are made out of a `Combinator` (see combinator rule), | |
1578 | and an element name, such as a tag a class, or `*`. | |
1579 | ||
1606 | ||
1607 | Combinators combine elements together, in a Selector. | |
1608 | ||
1609 | Because our parser isn't white-space sensitive, special care | |
1610 | has to be taken, when parsing the descendant combinator, ` `, | |
1611 | as it's an empty space. We have to check the previous character | |
1612 | in the input, to see if it's a ` ` character. | |
1613 | ||
1636 | ||
1637 | A CSS selector (see selector below) | |
1638 | with less extensions e.g. the ability to extend and guard | |
1639 | ||
1644 | ||
1645 | A CSS Selector | |
1646 | ||
1647 | .class > div + h1 | |
1648 | li a:hover | |
1649 | ||
1650 | Selectors are made out of one or more Elements, see above. | |
1651 | ||
1666 | error("CSS guard can only be used at the end of selector"); | |
1670 | if( count($extendList) ){ | |
1671 | error("Extend can only be used at the end of selector"); | |
1672 | } | |
1718 | ||
1719 | The `block` rule is used by `ruleset` and `mixin.definition`. | |
1720 | It's a wrapper around the `primary` rule, with added `{}`. | |
1721 | ||
1748 | ||
1749 | div, .class, body > p {...} | |
1750 | ||
1782 | Less_Environment::$strictImports | |
1786 | Backtrack | |
1802 | $match = $this->MatchReg('/\\G([a-zA-Z\-]+)\s*:\s*((?:\'")?[a-zA-Z0-9\-% \.,!]+?(?:\'")?)\s*([;}])/'); | |
1846 | prefer to try to parse first if its a variable or we are compressing | |
1847 | but always fallback on the other one | |
1848 | if( !$tryAnonymous && is_string($name) && $name[0] === '@' ){ | |
1857 | a name returned by this.ruleProperty() is always an array of the form: | |
1858 | [string-1, ..., string-n, ""] or [string-1, ..., string-n, "+"] | |
1859 | where each item is a tree.Keyword or tree.Variable | |
1892 | ||
1893 | An @import directive | |
1894 | ||
1895 | @import "lib"; | |
1896 | ||
1897 | Depending on our environment, importing is done differently: | |
1898 | In the browser, it's an XHR request, in Node, it would be a | |
1899 | file-system operation. The function used for importing is | |
1900 | stored in `import`, which we pass to the Import constructor. | |
1901 | ||
1932 | list of options, surrounded by parens | |
2026 | ||
2027 | A CSS Directive | |
2028 | ||
2029 | @charset "utf-8"; | |
2030 | ||
2138 | ||
2139 | A Value is a comma-delimited list of Expressions | |
2140 | ||
2141 | font-family: Baskerville, Georgia, serif; | |
2142 | ||
2143 | In a Rule, a Value represents everything after the `:`, | |
2144 | and before the `;`. | |
2145 | ||
2176 | instead of $e->parens = true so the value is cached | |
2356 | operations do not allow keyword "/" dimension (e.g. small/20px) so we support that here | |
2400 | ! | |
2403 | at last, we have the complete match now. move forward, | |
2404 | convert name particles to tree objects and return: | |
2545 | caching | |
2776 | public $paths = array(); // option - unmodified - paths to search for imports on | |
2777 | public static $files = array(); // list of files that have been imported, used for import-once | |
2778 | public $rootpath; // option - rootpath to append to URL's | |
2779 | public static $strictImports = null; // option - | |
2780 | public $insecure; // option - whether to allow imports from insecure ssl hosts | |
2781 | public $processImports; // option - whether to process imports. if false then imports will not be imported | |
2782 | public $javascriptEnabled; // option - whether JavaScript is enabled. if undefined, defaults to true | |
2783 | public $useFileCache; // browser only - whether to use the per file session cache | |
2784 | information about the current file - for error reporting and importing and making urls relative etc. | |
2786 | whether we are currently importing multiple copies | |
2938 | lesscss.org/functions/ | |
3017 | Classic % operator will change float to int | |
3139 | filter: saturate(3.2); | |
3140 | should be kept as is, so check for color | |
3221 | ||
3222 | Copyright (c) 2006-2009 Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein | |
3223 | http://sass-lang.com | |
3224 | ||
3258 | filter: contrast(3.2); | |
3259 | should be kept as is, so check for color | |
3269 | Figure out which is actually light and dark! | |
3415 | var mathFunctions = [{name:"ce ... | |
3466 | elems only contains original argument values. | |
3467 | key is the unit.toString() for unified tree.Dimension values, | |
3468 | value is the index into the order array. | |
3632 | (1-based index) | |
3633 | handle non-array values as an array of length 1 | |
3634 | return 'undefined' if index is invalid | |
3680 | detect the mimetype if not given | |
3687 | use base 64 unless it's an ASCII or UTF-8 format | |
3711 | IE8 cannot handle a data-uri larger than 32KB. If this is exceeded | |
3712 | and the --ieCompat flag is enabled, return a normal url() instead. | |
3728 | svg-gradient | |
3769 | www.w3.org/2000/svg" version="1.1" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none">' . | |
3835 | Color Blending | |
3836 | ref: http://www.w3.org/TR/compositing-1 | |
3839 | backdrop | |
3840 | source | |
3841 | result | |
3927 | non-w3c functions: | |
3940 | ~ End of Color Blending | |
3953 | this map is intentionally incomplete | |
3954 | if you want more, install 'mime' dep | |
3980 | assumes all text types are UTF-8 | |
3981 | ',$type) ? 'UTF-8' : ''; | |
4021 | Compressed | |
4034 | Non-compressed | |
4329 | function accept( $visitor ){ | |
4330 | $this->value = $visitor->visit( $this->value ); | |
4331 | } | |
4542 | ||
4543 | When evaluating a function call, | |
4544 | we either find the function in `tree.functions` [1], | |
4545 | in which case we call it, passing the evaluated arguments, | |
4546 | or we simply print it out as it appeared originally [2]. | |
4547 | ||
4548 | The *functions.js* file contains the built-in functions. | |
4549 | ||
4550 | The reason why we evaluate the arguments, is in the case where | |
4551 | we try to pass a variable to a function, like: `saturate(@color)`. | |
4552 | The function should receive the value, not the variable. | |
4553 | ||
4585 | 1. | |
4629 | public function toCSS(){ | |
4630 | return $this->compile()->toCSS(); | |
4631 | } | |
4700 | ||
4701 | If we have some transparency, the only way to represent it | |
4702 | is via `rgba`. Otherwise, we use the hex representation, | |
4703 | which has better compatibility with older browsers. | |
4704 | Values are capped between `0` and `255`, rounded and zero-padded. | |
4705 | ||
4725 | Convert color to short format | |
4735 | ||
4736 | Operations have to be done per-channel, if not, | |
4737 | channels will spill onto each other. Once we have | |
4738 | our result, in the form of an integer triplet, | |
4739 | we create a new Color node to hold the result. | |
4740 | ||
4783 | Adapted from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript | |
4854 | detect named color | |
4890 | if( $this->debugInfo ){ | |
4891 | $output->add( tree.debugInfo($env, $this), $this->currentFileInfo, $this->index); | |
4892 | } | |
4893 | TODO shouldn't need to trim, we shouldn't grab the \n | |
5111 | would be output 1e-6 etc. | |
5117 | Zero values doesn't need a unit | |
5123 | Float values doesn't need a leading zero | |
5137 | In an operation between two Dimensions, | |
5138 | we default to the first Dimension's unit, | |
5139 | so `1px + 2em` will yield `3px`. | |
5155 | do nothing | |
5231 | numerator | |
5243 | denominator | |
5351 | rulesets: function () { if (this.rules) return tree.Ruleset.prototype.rulesets.apply(this.rules); }, | |
5393 | object or string | |
5589 | return new Less_Tree_Extend( $this->selector->compile($env), $this->option, $this->index); | |
5598 | duplicate the logic in genCSS function inside the selector node. | |
5599 | future TODO - move both logics into the selector joiner visitor | |
5659 | ||
5660 | The actual import node doesn't return anything, when converted to CSS. | |
5661 | The reason is that it's used at the evaluation stage, so that the rules | |
5662 | it imports can be treated like any other rules. | |
5663 | ||
5664 | In `eval`, we make sure all Import nodes get evaluated, recursively, so | |
5665 | we end up with a flat structure, which can easily be imported in the parent | |
5666 | ruleset. | |
5667 | ||
5721 | remove query string and fragment | |
5740 | Add the base path if the import is relative | |
5757 | get path & uri | |
5774 | import once | |
5780 | todo needs to reference css file not import | |
5781 | $contents = new Less_Tree_Anonymous($this->root, 0, array('filename'=>$this->importedFilename), true ); | |
5794 | css ? | |
5819 | if the path is relative, the file should be in the current directory | |
5823 | otherwise, the file should be relative to the server root | |
5826 | if the user supplied entryPath isn't the actual root | |
5831 | always look in user supplied import directories | |
6073 | evaltop | |
6092 | Extract the media-query conditions separated with `,` (OR). | |
6098 | Trace all permutations to generate the resulting media-query. | |
6099 | ||
6100 | (a, b and c) with nested (d, e) -> | |
6101 | a and d | |
6102 | a and e | |
6103 | b and c and d | |
6104 | b and c and e | |
6124 | Fake a tree-node that doesn't output anything. | |
6215 | function accept($visitor) { | |
6216 | $this->value = $visitor->visit($this->value); | |
6217 | } | |
6479 | expand 'primitive' name directly to get | |
6480 | things faster (~10% for benchmark.less): | |
6607 | Store the frames around mixin definitions, | |
6608 | so they can be evaluated like closures when the time comes. | |
6621 | Evaluate mixin calls. | |
6625 | Evaluate everything else | |
6632 | Evaluate everything else | |
6636 | for rulesets, check if it is a css guard and can be removed | |
6639 | check if it can be folded in (e.g. & where) | |
6657 | Pop the stack | |
6686 | do not pollute the scope if the variable is | |
6687 | already there. consider returning false here | |
6688 | but we need a way to "return" variable from mixins | |
6763 | push the current ruleset to the frames stack | |
6767 | Evaluate imports | |
6815 | lets you call a css selector with a guard | |
6922 | If this is the root node, we don't render | |
6923 | a selector, or {}. | |
6953 | Compile rules and rulesets | |
6959 | @page{ directive ends up with root elements inside it, a mix of rules and rulesets | |
6960 | In this instance we do not know whether it is the last property | |
7040 | The paths are [[Selector]] | |
7041 | The first list is a list of comma seperated selectors | |
7042 | The inner list is a list of inheritance seperated selectors | |
7043 | e.g. | |
7044 | .a, .b { | |
7045 | .c { | |
7046 | } | |
7047 | } | |
7048 | == [[.a] [.c]] [[.b] [.c]] | |
7049 | ||
7051 | the elements from the current selector so far | |
7053 | the current list of new selectors to add to the path. | |
7054 | We will build it up. We initiate it with one empty selector as we "multiply" the new selectors | |
7055 | by the parents | |
7061 | non parent reference elements just get added | |
7065 | the new list of selectors to add | |
7068 | merge the current list of non parent selector elements | |
7069 | on to the current list of selectors to add | |
7074 | loop through our current selectors | |
7077 | if we don't have any parent paths, the & might be in a mixin so that it can be used | |
7078 | whether there are parents or not | |
7080 | the combinator used on el should now be applied to the next element instead so that | |
7081 | it is not lost | |
7089 | and the parent selectors | |
7091 | We need to put the current selectors | |
7092 | then join the last selector's elements on to the parents selectors | |
7094 | our new selector path | |
7096 | selectors from the parent after the join | |
7100 | construct the joined selector - if & is the first thing this will be empty, | |
7101 | if not newJoinedSelector will be the last set of elements in the selector | |
7112 | put together the parent selectors after the join | |
7120 | join the elements so far with the first part of the parent | |
7127 | now add the joined selector | |
7131 | and the rest of the parent | |
7134 | add that to our new set of selectors | |
7140 | our new selectors has been multiplied, so reset the state | |
7146 | if we have any elements left over (e.g. .a& .b == .b) | |
7147 | add them on to all the current selectors | |
7168 | if the previous thing in sel is a parent this needs to join on to it | |
7282 | return number of matched elements | |
7565 | 0.0254 / 96, | |
7566 | 0.0254 / 72, | |
7567 | 0.0254 / 72 * 12 | |
7576 | 1/(2*M_PI), | |
7577 | 1/360, | |
7578 | 1/400, | |
7624 | Add the base path if the URL is relative | |
7640 | Add cache buster if enabled | |
7783 | function accept($visitor){ | |
7784 | $this->selector = $visitor->visit($this->selector); | |
7785 | $this->arguments = $visitor->visit($this->arguments); | |
7786 | } | |
7816 | To make `default()` function independent of definition order we have two "subpasses" here. | |
7817 | At first we evaluate each guard *twice* (with `default() == true` and `default() == false`), | |
7818 | and build candidate list with corresponding flags. Then, when we know all possible matches, | |
7819 | we make a final decision. | |
7886 | throw new Less_Exception_Compiler($e->getMessage(), $e->index, null, $this->currentFileInfo['filename']); | |
7976 | less.js : /lib/less/tree/mixin.js : tree.mixin.Definition | |
8001 | function accept( $visitor ){ | |
8002 | $this->params = $visitor->visit($this->params); | |
8003 | $this->rules = $visitor->visit($this->rules); | |
8004 | $this->condition = $visitor->visit($this->condition); | |
8005 | } | |
8012 | less.js : /lib/less/tree/mixin.js : tree.mixin.Definition.evalParams | |
8156 | the parameter variables | |
8157 | the parent namespace/mixin frames | |
8158 | the current environment frames | |
8239 | get &:extend(.a); rules which apply to all selectors in this ruleset | |
8250 | now find every selector and apply the extends that apply to all extends | |
8251 | and the ones which apply to an individual extend | |
8253 | $selectorPath[ count($selectorPath)-1]; | |
8328 | if( $this->importCount === 0) { | |
8329 | $this->_finish(); | |
8330 | } | |
8349 | get path & uri | |
8366 | import once | |
8372 | todo needs to reference css file not import | |
8373 | $contents = new Less_Tree_Anonymous($importNode->root, 0, array('filename'=>$importNode->importedFilename), true ); | |
8386 | css ? | |
8493 | $context = $this->contexts[ count($this->contexts) - 1]; | |
8500 | different from less.js. Placed after joinSelectors() so that $this->contexts will get correct $paths | |
8508 | $context = $this->contexts[ count($this->contexts) - 1]; | |
8548 | ||
8549 | chaining is different from normal extension.. if we extend an extend then we are not just copying, altering and pasting | |
8550 | the selector we would do normally, but we are also adding an extend with the same target selector | |
8551 | this means this new extend can then go and alter other extends | |
8552 | ||
8553 | this method deals with all the chaining work - without it, extend is flat and doesn't work on other extend selectors | |
8554 | this is also the most expensive.. and a match on one selector can cause an extension of a selector we had already processed if | |
8555 | we look at each selector at a time, as is done in visitRuleset | |
8560 | loop through comparing every extend with every target extend. | |
8561 | a target extend is the one on the ruleset we are looking at copy/edit/pasting in place | |
8562 | e.g. .a:extend(.b) {} and .b:extend(.c) {} then the first extend extends the second one | |
8563 | and the second is the target. | |
8564 | the seperation into two lists allows us to process a subset of chains with a bigger set, as is the | |
8565 | case when processing media queries | |
8572 | look for circular references | |
8577 | find a match in the target extends self selector (the bit before :extend) | |
8584 | we found a match, so for each self selector.. | |
8588 | process the extend as usual | |
8591 | but now we create a new extend from it | |
8595 | add the extend onto the list of extends for that selector | |
8597 | $newSelector[ count($newSelector)-1]->extendList = array($newExtend); | |
8599 | record that we need to add it. | |
8603 | remember its parents for circular references | |
8606 | only process the selector once.. if we have :extend(.a,.b) then multiple | |
8607 | extends will look at the same selector path, so when extending | |
8608 | we know that any others will be duplicates in terms of what is added to the css | |
8619 | try to detect circular references to stop a stack overflow. | |
8620 | may no longer be needed. $this->extendChainCount++; | |
8634 | now process the new extends on the existing rules so that we can handle a extending b extending c ectending d extending e... | |
8664 | look at each selector path in the ruleset, find any extend matches and then copy, find and replace | |
8668 | extending extends happens initially, before the main pass | |
8706 | ||
8707 | look through the haystack selector path to try and find the needle - extend.selector | |
8708 | returns an array of selector matches that can then be replaced | |
8709 | ||
8718 | loop through the haystack elements | |
8728 | if we allow elements before our match we can add a potential match every time. otherwise only at the first element. | |
8740 | if we are still valid and have finished, test whether we have elements after and whether these are allowed | |
8749 | if null we remove, if not, we are still valid, so either push as a valid match or continue | |
8754 | index after end of match | |
8755 | we don't allow matches to overlap, so start matching again | |
8773 | Before going through all the nested loops, lets check to see if a match is possible | |
8774 | Reduces Bootstrap 3.1 compile time from ~6.5s to ~5.6s | |
8805 | selectors add " " onto the first element. When we use & it joins the selectors together, but if we don't | |
8806 | then each selector in haystackSelectorPath has a space before it added in the toCSS phase. so we need to work out | |
8807 | what the resulting combinator will be | |
8818 | if we don't match, null our match to indicate failure | |
8905 | for a set of matches, replace each match with the replacement selector | |
8933 | last parameter of array_slice is different than the last parameter of javascript's slice | |
9016 | mixin definitions do not get eval'd - this means they keep state | |
9017 | so we have to clear that state here so it isn't used if toCSS is called twice | |
9048 | Only output the debug info together with subsequent @charset definitions | |
9049 | a comment (or @media statement) before the actual @charset directive would | |
9050 | be considered illegal css as it has to be on the first line | |
9053 | if( $directiveNode->debugInfo ){ | |
9054 | $comment = new Less_Tree_Comment('/* ' . str_replace("\n",'',$directiveNode->toCSS())." */\n"); | |
9055 | $comment->debugInfo = $directiveNode->debugInfo; | |
9056 | return $this->visit($comment); | |
9057 | } | |
9096 | Compile rules and rulesets | |
9102 | visit because we are moving them out from being a child | |
9112 | accept the visitor to remove rules and refactor itself | |
9113 | then we can decide now whether we want it or not | |
9124 | now decide whether we keep the ruleset | |
9126 | array_unshift($rulesets, $rulesetNode); | |
9180 | remove duplicates | |
9209 | obj($rules); | |
9267 | return new Less_Tree_Value($values); ?? | |
9426 | default message | |
9456 | a-z or whitespace | |
9462 | ( | |
9468 | ) | |
9476 | ; | |
9478 | if (!$parenLevel) { $this->emitChunk(); } | |
9481 | { | |
9487 | } | |
9494 | if (!$level && !$parenLevel) { $this->emitChunk(); } | |
9496 | \ | |
9501 | ", ' and ` | |
9511 | \ | |
9521 | /, check for comment | |
9526 | //, find lnfeed | |
9532 | /*, find */ | |
9546 | *, check for unmatched */ | |
9566 | chunk didn't fail | |
9569 | $this->emitChunk(true); | |
9670 | ignore adding empty strings | |
9701 | generated_line | |
9702 | generated_column | |
9703 | original_line | |
9704 | original_column | |
9710 | generated_line | |
9711 | generated_column | |
9712 | original_line | |
9713 | original_column | |
9727 | add only chunk | |
9753 | == (1 << shift) == 0b00011111 | |
9760 | == (mask - 1 ) == 0b00100000 | |
9801 | I leave it here for future reference | |
9802 | foreach(str_split('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/') as $i => $char) | |
9803 | { | |
9804 | $this->charToIntMap[$char] = $i; | |
9805 | $this->intToCharMap[$i] = $char; | |
9806 | } | |
9939 | an optional source root, useful for relocating source files | |
9940 | on a server or removing repeated values in the 'sources' entry. | |
9941 | This value is prepended to the individual entries in the 'source' field. | |
9944 | an optional name of the generated code that this source map is associated with. | |
9947 | url of the map | |
9950 | absolute path to a file to write the map to | |
9953 | output source contents? | |
9956 | base path for filename normalization | |
9959 | base path for filename normalization | |
10013 | fix windows paths | |
10028 | catch the output | |
10041 | write map to a file | |
10046 | inline the map | |
10067 | directory does not exist | |
10069 | FIXME: create the dir automatically? | |
10072 | FIXME: proper saving, with dir write check! | |
10091 | "Trim" the 'sourceMapBasepath' from the output filename. | |
10096 | Remove extra leading path separators. | |
10131 | docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit# | |
10138 | File version (always the first entry in the object) and must be a positive integer. | |
10142 | An optional name of the generated code that this source map is associated with. | |
10149 | An optional source root, useful for relocating source files on a server or removing repeated values in the 'sources' entry. This value is prepended to the individual entries in the 'source' field. | |
10156 | A list of original sources used by the 'mappings' entry. | |
10163 | A list of symbol names used by the 'mappings' entry. | |
10166 | A string with the encoded mapping data. | |
10170 | An optional list of source content, useful when the 'source' can't be hosted. | |
10171 | The contents are listed in the same order as the sources above. | |
10172 | 'null' may be used if some original sources should be retrieved by name. | |
10176 | less.js compat fixes | |
10214 | group mappings by generated line number. | |
10235 | find the index | |
10242 | lines are stored 0-based in SourceMap spec version 3 |
Type | Line | Description |
---|---|---|
14 | directory less.php can use for storing data | |
30 | check $cache_dir | |
43 | create a file for variables | |
56 | generate name for compiled css file | |
61 | check cached content | |
67 | pop the cached name that should match $compiled_name | |
75 | if $cached_name != $compiled_name, we know we need to recompile | |
83 | for backwards compatibility, we just return the name of the file | |
98 | save the file list | |
105 | save the css | |
109 | clean up | |
131 | get less.php if it exists | |
141 | combine files | |
144 | treat as less markup if there are newline characters | |
164 | custom output file | |
167 | relative to cache directory? | |
181 | save the file list |
Type | Line | Description |
---|---|---|
4 | github.com/barbushin/php-imap | |
5 | linkedin.com/in/barbushin | |
441 | $data = iconv(strtoupper($params['charset']), $this->serverEncoding, $data); | |
445 | attachments | |
505 | $newString .= iconv(strtoupper($elements[$i]->charset), $charset, $elements[$i]->text); |
Type | Line | Description |
---|---|---|
20 | www.gnu.org/licenses/>. | |
27 | www.gnu.org/licenses/lgpl.html GNU Lesser GPL 3 | |
29 | pear.php.net/package/SQL_Parser |
Type | Line | Description |
---|---|---|
20 | www.gnu.org/licenses/>. | |
26 | www.gnu.org/licenses/lgpl.html GNU Lesser GPL 3 | |
28 | pear.php.net/package/SQL_Parser |
Type | Line | Description |
---|---|---|
17 | (1 | 2 | 4) | |
21 | (1 | 2) | |
33 | (20 | 1 | 2 | 4) | |
41 | (20 | 1 | 2 | 4 | 200) | |
57 | (100 | 4)); |
Type | Line | Description |
---|---|---|
3 | +----------------------------------------------------------------------+ | |
4 | | Copyright (c) 2003-2004 John Griffin | | |
5 | +----------------------------------------------------------------------+ | |
6 | | This library is free software; you can redistribute it and/or | | |
7 | | modify it under the terms of the GNU Lesser General Public | | |
8 | | License as published by the Free Software Foundation; either | | |
9 | | version 2.1 of the License, or (at your option) any later version. | | |
10 | | | | |
11 | | This library is distributed in the hope that it will be useful, | | |
12 | | but WITHOUT ANY WARRANTY; without even the implied warranty of | | |
13 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | |
14 | | Lesser General Public License for more details. | | |
15 | | | | |
16 | | You should have received a copy of the GNU Lesser General Public | | |
17 | | License along with this library; if not, write to the Free Software | | |
18 | | Foundation, Inc., 59 Temple Place, Suite 330,Boston,MA 02111-1307 USA| | |
19 | +----------------------------------------------------------------------+ | |
20 | | Authors: John Griffin <jgriffin316@netscape.net> | | |
21 | +----------------------------------------------------------------------+ | |
22 | ||
23 | $Id: Compiler.php 727 2011-06-17 15:55:02Z christian $ | |
24 | ||
40 | {{{ function SQL_Parser_Compiler($array = null) | |
45 | }}} | |
47 | {{{ function getWhereValue ($arg) | |
68 | }}} | |
70 | {{{ function getParams($arg) | |
93 | }}} | |
95 | {{{ function compileFunctionOpts($arg) | |
117 | }}} | |
119 | {{{ function compileSearchClause | |
168 | }}} | |
170 | {{{ function compileSelect() | |
173 | save the command and set quantifiers | |
179 | save the column names and set functions | |
208 | save the tables | |
228 | save the where clause | |
237 | save the group by clause | |
242 | save the order by clause | |
250 | save the limit clause | |
257 | }}} | |
259 | {{{ function compileUpdate() | |
264 | save the set clause | |
271 | save the where clause | |
281 | }}} | |
283 | {{{ function compileDelete() | |
288 | save the where clause | |
298 | }}} | |
300 | {{{ function compileInsert() | |
317 | }}} | |
319 | {{{ function compile($array = null) | |
342 | switch ($this->_tree["command"]) | |
345 | }}} |
Type | Line | Description |
---|---|---|
3 | +----------------------------------------------------------------------+ | |
4 | | Copyright (c) 2002-2004 Brent Cook | | |
5 | +----------------------------------------------------------------------+ | |
6 | | This library is free software; you can redistribute it and/or | | |
7 | | modify it under the terms of the GNU Lesser General Public | | |
8 | | License as published by the Free Software Foundation; either | | |
9 | | version 2.1 of the License, or (at your option) any later version. | | |
10 | | | | |
11 | | This library is distributed in the hope that it will be useful, | | |
12 | | but WITHOUT ANY WARRANTY; without even the implied warranty of | | |
13 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | |
14 | | Lesser General Public License for more details. | | |
15 | | | | |
16 | | You should have received a copy of the GNU Lesser General Public | | |
17 | | License along with this library; if not, write to the Free Software | | |
18 | | Foundation, Inc., 59 Temple Place, Suite 330,Boston,MA 02111-1307 USA| | |
19 | +----------------------------------------------------------------------+ | |
20 | | Authors: Brent Cook <busterbcook@yahoo.com> | | |
21 | | Jason Pell <jasonpell@hotmail.com> | | |
22 | +----------------------------------------------------------------------+ | |
23 | ||
24 | $Id: Lexer.php 714 2011-05-27 13:54:43Z stefan $ | |
25 | ||
29 | {{{ token definitions | |
30 | variables: 'ident', 'sys_var' | |
31 | values: 'real_val', 'text_val', 'int_val', null | |
32 | }}} | |
44 | array of valid tokens for the lexer to recognize | |
45 | format is 'token literal'=>TOKEN_VALUE | |
48 | {{{ instance variables | |
58 | Will not be altered by skip() | |
62 | Provide lookahead capability. | |
64 | Specify how many tokens to save in tokenStack, so the | |
65 | token stream can be pushed back. | |
68 | }}} | |
70 | {{{ incidental functions | |
108 | }}} | |
110 | {{{ pushBack() | |
123 | }}} | |
125 | {{{ lex() | |
129 | The stackPtr, should always be the same as the count of | |
130 | elements in the tokenStack. The stackPtr, can be thought | |
131 | of as pointing to the next token to be added. If however | |
132 | a pushBack() call is made, the stackPtr, will be less than the | |
133 | count, to indicate that we should take that token from the | |
134 | stack, instead of calling nextToken for a new token. | |
142 | We have read the token, so now iterate again. | |
148 | If $tokenStack is full (equal to lookahead), pop the oldest | |
149 | element off, to make room for the new one. | |
152 | For some reason array_shift and | |
153 | array_pop screw up the indexing, so we do it manually. | |
158 | Indicate that we should put the element in | |
159 | at the stackPtr position. | |
175 | }}} | |
177 | {{{ nextToken() | |
180 | echo 'last token: ' . $this->tokText . "\n"; | |
188 | echo "State: $state, Char: $c\n"; | |
190 | {{{ State 0 : Start of token | |
197 | End Of Input | |
206 | Handle MAC/Unix/Windows line endings. | |
210 | If not DOS newline | |
223 | Escape quotes and backslashes | |
233 | Unknown token. Revert to single char | |
245 | system variable | |
250 | keyword or ident | |
255 | real or int number | |
262 | ellipsis | |
271 | real number | |
275 | period | |
281 | comments | |
290 | negative number, or operator '-', finally checked in case 6 | |
295 | comparison operator | |
299 | Unknown token. Revert to single char | |
302 | }}} | |
304 | {{{ State 1 : Incomplete keyword or ident | |
313 | }}} | |
335 | }}} | |
337 | {{{ State 5: Incomplete real or int number | |
345 | ellipsis | |
347 | real number | |
352 | Do we allow idents to begin with a digit? | |
355 | a number must end with non-alpha character | |
360 | complete number, or '-' | |
364 | }}} | |
366 | {{{ State 6: Complete integer number | |
369 | '-' or negative number | |
385 | }}} | |
387 | {{{ State 7: Incomplete real number | |
402 | }}} | |
404 | {{{ State 8: Complete real number | |
413 | }}} | |
415 | {{{ State 10: Incomplete comparison operator | |
424 | }}} | |
426 | {{{ State 11: Complete comparison operator | |
439 | }}} | |
441 | {{{ State 12: Incomplete quoted string or ident | |
455 | $bail = true; | |
474 | }}} | |
476 | {{{ State 13: Complete quoted string or ident | |
491 | }}} | |
493 | {{{ State 14: Comment | |
502 | Handle MAC/Unix/Windows line endings. | |
506 | If not DOS newline | |
525 | }}} | |
527 | {{{ State 15: Exponent Sign in Scientific Notation | |
536 | }}} | |
538 | {{{ state 16: Exponent Value-first digit in Scientific Notation | |
545 | if no digit, then token is unknown | |
547 | }}} | |
549 | {{{ State 17: Exponent Value in Scientific Notation | |
556 | At least 1 exponent digit was required | |
558 | }}} | |
560 | {{{ State 18 : Incomplete System Variable | |
569 | }}} | |
571 | {{{ State 19: Complete Sys Var | |
580 | }}} | |
582 | {{{ State 999 : Unknown token. Revert to single char | |
590 | }}} | |
592 | {{{ State 1000 : End Of Input | |
599 | }}} | |
603 | }}} |
Type | Line | Description |
---|---|---|
19 | www.gnu.org/licenses/>. | |
38 | www.gnu.org/licenses/lgpl.html GNU Lesser GPL 3 | |
40 | pear.php.net/package/SQL_Parser | |
57 | www.gnu.org/licenses/lgpl.html GNU Lesser GPL 3 | |
59 | pear.php.net/package/SQL_Parser | |
151 | {{{ function SQL_Parser($string = null, $dialect = 'ANSI') | |
173 | }}} | |
177 | Initialize the Lexer with a 3-level look-back buffer | |
184 | {{{ function setDialect($dialect) | |
228 | }}} | |
230 | {{{ getParams(&$values, &$types) | |
254 | the first opening brace is already fetched | |
255 | function( | |
278 | }}} | |
280 | {{{ raiseError($message) | |
320 | }}} | |
322 | {{{ isType() | |
334 | }}} | |
336 | {{{ isVal() | |
350 | }}} | |
352 | {{{ isFunc() | |
364 | }}} | |
366 | {{{ isCommand() | |
378 | }}} | |
380 | {{{ isReserved() | |
392 | }}} | |
394 | {{{ isOperator() | |
406 | }}} | |
408 | {{{ getTok() | |
420 | echo $this->token . "\t" . $this->lexer->tokText . "\n"; | |
422 | }}} | |
424 | {{{ &parseFieldOptions() | |
442 | parse field options | |
625 | }}} | |
627 | {{{ parseCondition() | |
652 | parse the first argument | |
675 | Fix stefan | |
686 | no operator, return | |
690 | parse the operator | |
703 | parse for 'is' operator | |
714 | @todo | |
715 | $clause['ops'][] = $not . $op; | |
716 | $this->getTok(); | |
719 | parse for 'in' operator | |
724 | read the subset | |
726 | is this a subselect? | |
731 | parse the set | |
753 | next argument [with operator] | |
758 | }}} | |
766 | parse the first argument | |
798 | no operator, return | |
802 | parse the operator | |
815 | parse for 'is' operator | |
826 | @todo | |
827 | $clause['ops'][] = $not . $op; | |
828 | $this->getTok(); | |
831 | parse for 'in' operator | |
836 | read the subset | |
838 | is this a subselect? | |
843 | parse the set | |
865 | next argument [with operator] | |
871 | {{{ parseFieldList() | |
886 | parse field identifier | |
891 | In this context, field names can be reserved words or function names | |
945 | $this->raiseError('Expected identifier'); | |
948 | parse field type | |
956 | handle special case two-word types | |
958 | double precision == double | |
964 | character varying() == varchar() | |
971 | parse type parameters | |
1035 | }}} | |
1037 | {{{ parseFunctionOpts() | |
1061 | }}} | |
1063 | {{{ parseCreate() | |
1086 | $tree['column_names'] = array_keys($fields); | |
1104 | }}} | |
1106 | {{{ parseInsert() | |
1107 | INSERT INTO tablename | |
1141 | loop over all (value[, ...])[,(value[, ...]), ...] | |
1143 | get opening brace '(' | |
1173 | }}} | |
1175 | {{{ parseUpdate() | |
1201 | stefan@fugu.ch | |
1228 | }}} | |
1235 | closing ) | |
1252 | join condition | |
1262 | joins LEFT|RIGHT|INNER|OUTER|NATURAL|CROSS|STRAIGHT_JOIN | |
1274 | (CROSS|INNER) JOIN | |
1284 | {LEFT|RIGHT} [OUTER] JOIN | |
1300 | NATURAL [{LEFT|RIGHT} [OUTER]] JOIN | |
1338 | {{{ parseDelete() | |
1351 | FROM is not required | |
1362 | WHERE is not required | |
1373 | }}} | |
1375 | {{{ parseDrop() | |
1415 | }}} | |
1476 | {{{ parseSelect() | |
1498 | FROM | |
1506 | WHERE | |
1508 | GROUP BY | |
1510 | HAVING | |
1512 | ORDER BY | |
1514 | LIMIT | |
1516 | UNION | |
1548 | $col = $this->lexer->tokText; | |
1605 | $col = $this->lexer->tokText; | |
1619 | }}} | |
1690 | {{{ parse($string) | |
1714 | get query action | |
1720 | null == end of string | |
1764 | another command separated with ; or a UNION | |
1773 | another command separated with ; or a UNION | |
1780 | end? unknown? | |
1797 | return array('empty' => true); | |
1818 | }}} | |
TODO | 1183 | This is incorrect. multiple where clauses would parse |
Type | Line | Description |
---|---|---|
8 | github.com/PHPMailer/PHPMailer/ | |
15 | www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL) | |
28 | github.com/PHPMailer/PHPMailer/blob/master/class.smtp.php | |
31 | www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL) | |
159 | Don't output, just log | |
163 | Cleans up output a bit for a better looking, HTML-safe output | |
188 | Clear errors to avoid confusion | |
191 | Make sure we are __not__ connected | |
193 | Already connected, generate error | |
202 | Connect to the SMTP server | |
210 | Suppress errors; connection failures are handled at a higher level | |
220 | Verify we connected properly | |
239 | SMTP server can take longer to respond, give longer timeout for first read | |
240 | Windows does not have support for this timeout function | |
243 | Don't bother if unlimited | |
249 | Get any announcement | |
269 | Begin encrypted connection | |
306 | Start authentication | |
310 | Send encoded username and password | |
321 | Start authentication | |
338 | technet.microsoft.com/en-us/library/aa995718%28EXCHG.65%29.aspx | |
339 | curl.haxx.se/rfc/ntlm.html#ntlmSmtpAuthentication | |
344 | Check that functions are available | |
355 | msg1 | |
356 | msg1 | |
367 | Though 0 based, there is a white space after the 3 digit number | |
368 | msg2 | |
375 | msg3 | |
382 | send encoded username | |
386 | Start authentication | |
390 | Get the challenge | |
393 | Build the response | |
396 | send encoded credentials | |
418 | The following borrowed from | |
419 | http://php.net/manual/en/function.mhash.php#27225 | |
421 | RFC 2104 HMAC implementation for php. | |
422 | Creates an md5 HMAC. | |
423 | Eliminates the need to install mhash to compute a HMAC | |
424 | Hacked by Lance Rushing | |
426 | byte length for md5 | |
449 | the socket is valid but we are not connected | |
458 | everything looks good | |
472 | so there is no confusion | |
475 | close the connection and cleanup | |
513 | Normalize the line breaks before exploding | |
533 | RFC 2822 section 2.1.1 limit | |
541 | ok we need to break this line up into several smaller lines | |
545 | Patch to fix DOS attack | |
564 | send the lines to the server | |
575 | Message data has been sent, complete the command | |
591 | Try extended hello first (RFC 2821) | |
649 | Save any error | |
652 | Restore any error from the quit command | |
839 | If the connection is bad, give up now | |
857 | if 4th character is a space, we are done reading, break the loop | |
861 | Timed-out? Log and break | |
871 | Now check if reads took too long |
Type | Line | Description |
---|---|---|
6 | code.google.com/a/apache-extras.org/p/phpmailer/ | | |
18 | www.gnu.org/copyleft/lesser.html | | |
35 | www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | |
42 | /////////////////////////////////////////////// | |
43 | PROPERTIES, PUBLIC | |
44 | /////////////////////////////////////////////// | |
186 | /////////////////////////////////////////////// | |
187 | PROPERTIES FOR SMTP | |
188 | /////////////////////////////////////////////// | |
321 | 'callbackAction'; | |
335 | /////////////////////////////////////////////// | |
336 | PROPERTIES, PRIVATE AND PROTECTED | |
337 | /////////////////////////////////////////////// | |
356 | /////////////////////////////////////////////// | |
357 | CONSTANTS | |
358 | /////////////////////////////////////////////// | |
360 | message only, continue processing | |
361 | message?, likely ok to continue processing | |
362 | message, plus full stop, critical error reached | |
364 | /////////////////////////////////////////////// | |
365 | METHODS, VARIABLES | |
366 | /////////////////////////////////////////////// | |
427 | /////////////////////////////////////////////// | |
428 | METHODS, RECIPIENTS | |
429 | /////////////////////////////////////////////// | |
494 | Strip breaks and trim | |
528 | Strip breaks and trim | |
557 | www.hexillion.com/samples/#Regex Original pattern found here | |
564 | Introduced in PHP 5.2 | |
575 | /////////////////////////////////////////////// | |
576 | METHODS, MAIL SENDING | |
577 | /////////////////////////////////////////////// | |
606 | Set whether the message is multipart/alternative | |
611 | reset errors | |
613 | Refuse to send an empty message | |
621 | To capture the complete message when using mail(), create | |
622 | an extra header list which CreateHeader() doesn't fold in | |
630 | if(count($this->cc) > 0) { | |
631 | $mailHeader .= $this->AddrAppend("Cc", $this->cc); | |
632 | } | |
635 | digitally sign with DKIM if enabled | |
655 | Choose the mailer and send through it | |
701 | implement call back function if it exists | |
715 | implement call back function if it exists | |
750 | implement call back function if it exists | |
756 | implement call back function if it exists | |
764 | implement call back function if it exists | |
770 | implement call back function if it exists | |
804 | Attempt to send attach all recipients | |
808 | implement call back function if it exists | |
812 | implement call back function if it exists | |
820 | implement call back function if it exists | |
824 | implement call back function if it exists | |
832 | implement call back function if it exists | |
836 | implement call back function if it exists | |
843 | Create error message for any bad addresses | |
874 | Retry while there is no connection | |
889 | ':'').$host, $port, $this->Timeout)) { | |
899 | We must resend HELO after tls negotiation | |
945 | Define full set of translatable strings | |
965 | Overwrite language-specific strings. This way we'll never have missing translations - no more "language string failed to load"! | |
967 | There is no English translation file | |
971 | Returns false if language not found | |
982 | /////////////////////////////////////////////// | |
983 | METHODS, MESSAGE CREATION | |
984 | /////////////////////////////////////////////// | |
1028 | If utf-8 encoding is used, we will need to make sure we don't | |
1029 | split multibyte characters when we wrap | |
1115 | Found start of encoded character byte within $lookBack block. | |
1116 | Check the encoded byte value (the 2 chars after the '=') | |
1119 | Single byte character. | |
1120 | If the encoded char was found at pos 0, it will fit | |
1121 | otherwise reduce maxLength to start of the encoded char | |
1125 | First byte of a multi byte character | |
1126 | Reduce maxLength to split at start of character | |
1129 | Middle byte of a multi byte character, look further back | |
1133 | No encoded character found | |
1172 | Set the boundaries | |
1185 | To be created automatically by mail() | |
1205 | sendmail and mail() extract Cc from the header before sending | |
1210 | sendmail and mail() extract Bcc from the header before sending | |
1219 | mail() sets the subject itself | |
1233 | code.google.com/a/apache-extras.org/p/phpmailer/)'); | |
1240 | Add custom headers | |
1408 | TODO check this worked | |
1410 | ".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), NULL)) { | |
1496 | /////////////////////////////////////////////// | |
1497 | CLASS METHODS, ATTACHMENTS | |
1498 | /////////////////////////////////////////////// | |
1526 | isStringAttachment | |
1561 | Return text of body | |
1566 | Add all attachments | |
1568 | CHECK IF IT IS A VALID DISPOSITION_FILTER | |
1570 | Check for string attachment | |
1600 | Encode as string attachment | |
1682 | Make sure it ends with a line break | |
1710 | Can't use addslashes as we don't know what value has magic_quotes_sybase | |
1722 | Fall-through | |
1734 | Try to select the encoding which should produce the shortest output | |
1738 | Use a custom function which correctly encodes and wraps long | |
1739 | multibyte strings without breaking lines within a character | |
1768 | Assume no multibytes (we can't handle without mbstring functions anyway) | |
1776 | uk.php.net/manual/en/function.mb-encode-mimeheader.php | |
1787 | Each line must have length <= 75, including $start and $end | |
1789 | Average multi-byte ratio | |
1791 | Base64 has a 4:3 ratio | |
1808 | Chomp the last linefeed | |
1833 | convert first point in the line into =2E | |
1837 | convert space at eol only | |
1842 | always encode "\t", which is *not* required | |
1847 | CRLF is not counted | |
1848 | soft line break; " =\r\n" is okay | |
1850 | check if newline first character will be point or not | |
1856 | end of for | |
1858 | end of while | |
1875 | Use native function if it's available (>= PHP5.3) | |
1879 | Got convert stream filter? | |
1880 | Fall back to old implementation | |
1882 | temp/', 'r+'); | |
1883 | Normalise line breaks | |
1890 | Encode . if it is first char on a line, workaround for bug in Exchange | |
1897 | tools.ietf.org/html/rfc2047 | |
1904 | There should not be any EOL in the string | |
1916 | $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); | |
1926 | $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); | |
1929 | Replace every high ascii, control =, ? and _ characters | |
1930 | TODO using /e (equivalent to eval()) is probably not a good idea | |
1938 | $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', | |
1939 | "'='.sprintf('%02X', ord(stripslashes('\\1')))", $encoded); | |
1943 | Replace every spaces to _ (more readable than =20) | |
1960 | Append to $attachment array | |
1967 | isStringAttachment | |
1998 | Append to $attachment array | |
2005 | isStringAttachment | |
2014 | Append to $attachment array | |
2021 | isStringAttachment | |
2054 | /////////////////////////////////////////////// | |
2055 | CLASS METHODS, MESSAGE RESET | |
2056 | /////////////////////////////////////////////// | |
2128 | /////////////////////////////////////////////// | |
2129 | CLASS METHODS, MISCELLANEOUS | |
2130 | /////////////////////////////////////////////// | |
2188 | set the default language | |
2237 | do not change urls for absolute images (thanks to corvuscorax) | |
2238 | #', $url)) { | |
2471 | Compress useless spaces | |
2472 | Don't forget to remove WSP around the value | |
2486 | stabilize line endings | |
2489 | END stabilize line endings | |
2505 | Signature & hash algorithms | |
2506 | Canonicalization of header/body | |
2507 | Query method | |
2508 | Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone) | |
2520 | Copied header fields (dkim-quoted-printable | |
2522 | Length of body | |
2523 | Base64 of packed binary SHA-1 hash of body | |
TODO | 2379 | Should this not be using __set() magic function? |
Type | Line | Description |
---|---|---|
24 | datamarket.accesscontrol.windows.net/v2/OAuth2-13'; | |
67 | $this->str_token_file = self::TOKEN_DIRECTORY . sha1($this->str_client_id . $this->str_client_secret); |
Type | Line | Description |
---|---|---|
5 | github.com/jrconlin/oauthsimple | |
124 | example.org/foo") |
Type | Line | Description |
---|---|---|
4 | www.google.com/recaptcha/ | |
39 | www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | |
46 | www.google.com/recaptcha/api'; | |
51 | www.google.com/recaptcha/api'; | |
61 | www.google.com/recaptcha/admin/create?'; | |
453 | www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | |
460 | www.google.com/recaptcha/mailhide/d?'; | |
478 | www.google.com/recaptcha/mailhide/apikey | |
556 | www.gnu.org/copyleft/lesser.html GNU Lesser General Public License |
Type | Line | Description |
---|---|---|
5 | tubalmartin.me/ | |
6 | github.com/tubalmartin/YUI-CSS-compressor-PHP-port | |
9 | foohack.com/ | |
16 | developer.yahoo.com/yui/compressor/ | |
17 | www.julienlecomte.net/ | |
45 | Set suggested PHP limits | |
46 | 128MB in bytes | |
47 | 1 min | |
78 | collect all comment blocks... | |
88 | Set correct start_index: Fixes issue #2528130 | |
92 | preserve strings so their content doesn't get accidentally minified | |
95 | Let's divide css code in chunks of 25.000 chars aprox. | |
96 | Reason: PHP's PCRE functions like preg_replace have a "backtrack limit" | |
97 | of 100.000 chars by default (php < 5.3.7) so if we're dealing with really | |
98 | long strings and a (sub)pattern matches a number of chars greater than | |
99 | the backtrack limit number (i.e. /(.*)/s) PCRE functions may fail silently | |
100 | returning NULL and $css would be empty. | |
104 | aprox size, not exact | |
106 | save initial iterations | |
110 | if the number of characters is 25000 or less, do not chunk | |
114 | chunk css code securely | |
116 | save iterations. 500 checks for a closing curly brace } | |
122 | If there are two ending curly braces }} separated or not by spaces, | |
123 | join them in the same chunk (i.e. @media blocks) | |
135 | Minify each chunk | |
138 | Keep the first @charset at-rule found | |
142 | Delete all @charset at-rules | |
146 | Update the first chunk and push the charset to the top of the file. | |
200 | If current settings are higher respect them. | |
203 | memory_limit exception: allow -1 for "no memory limit". | |
218 | strings are safe, now wrestle the comments | |
224 | ! in the first position of the comment means preserve | |
225 | so push to the preserved tokens keeping the ! | |
230 | Preserve new lines for /*! important comments | |
236 | \ in the last position looks like hack for Mac/IE5 | |
237 | shorten that to /*\*/ and the next one to /**/ | |
241 | attn: advancing the loop | |
247 | keep empty comments after child selectors (IE7 hack) | |
248 | e.g. html >/**/ body | |
259 | in all other cases kill the comment | |
260 | ', '', $css, 1); | |
264 | Normalize all whitespace strings to single spaces. Easier to work with that way. | |
267 | Shorten & preserve calculations calc(...) since spaces are important | |
270 | Replace positive sign from numbers preceded by : or a white-space before the leading space is removed | |
271 | +1.2em to 1.2em, +.8px to .8px, +2% to 2% | |
274 | Remove leading zeros from integer and float numbers preceded by : or a white-space | |
275 | 000.6 to .6, -0.8 to -.8, 0050 to 50, -01.05 to -1.05 | |
278 | Remove trailing zeros from float numbers preceded by : or a white-space | |
279 | -6.0100em to -6.01em, .0100 to .01, 1.200px to 1.2px | |
282 | Remove trailing .0 -> -9.0 to -9 | |
285 | Replace 0 length numbers with 0 | |
288 | Remove the spaces before the things that should not have spaces before them. | |
289 | But, be careful not to turn "p :link {...}" into "p:link{...}" | |
290 | Swap out any pseudo-class colons with the token, and then swap back. | |
293 | Remove spaces before the things that should not have spaces before them. | |
296 | Restore spaces for !important | |
299 | bring back the colon | |
302 | retain space for special IE6 cases | |
305 | no space after the end of a preserved comment | |
308 | lowercase some popular @directives | |
311 | lowercase some more common pseudo-elements | |
314 | lowercase some more common functions | |
317 | lower case some common function that can be values | |
318 | NOTE: rgb() isn't useful as we replace with #hex later, as well as and() is already done for us | |
321 | Put the space back in some cases, to support stuff like | |
322 | @media screen and (-webkit-min-device-pixel-ratio:0){ | |
325 | Remove the spaces after the things that should not have spaces after them. | |
328 | remove unnecessary semicolons | |
331 | Fix for issue: #2528146 | |
332 | Restore semicolon if the last property is prefixed with a `*` (lte IE7 hack) | |
333 | to avoid issues on Symbian S60 3.x browsers. | |
336 | Replace 0 length units 0(px,em,%) with 0. | |
339 | Replace 0 0; or 0 0 0; or 0 0 0 0; with 0. | |
342 | Fix for issue: #2528142 | |
343 | Replace text-shadow:0; with text-shadow:0 0 0; | |
346 | Replace background-position:0; with background-position:0 0; | |
347 | same for transform-origin | |
348 | Changing -webkit-mask-position: 0 0 to just a single 0 will result in the second parameter defaulting to 50% (center) | |
351 | Shorten colors from rgb(51,102,153) to #336699, rgb(100%,0%,0%) to #ff0000 (sRGB color space) | |
352 | Shorten colors from hsl(0, 100%, 50%) to #ff0000 (sRGB color space) | |
353 | This makes it more likely that it'll get further compressed in the next step. | |
357 | Shorten colors from #AABBCC to #ABC or short color name. | |
360 | border: none to border:0, outline: none to outline:0 | |
363 | shorter opacity IE filter | |
366 | Find a fraction that is used for Opera's -o-device-pixel-ratio query | |
367 | Add token to add the "\" back in later | |
370 | Remove empty rules. | |
373 | Add "/" back to fix Opera -o-device-pixel-ratio query | |
376 | Some source control tools don't like it when files containing lines longer | |
377 | than, say 8000 characters, are checked in. The linebreak option is used in | |
378 | that case to split long lines after a specific column. | |
391 | Replace multiple semi-colons in a row by a single one | |
392 | See SF bug #1980989 | |
395 | Restore new lines for /*! important comments | |
398 | Lowercase all uppercase properties | |
401 | restore preserved comments and strings | |
406 | Trim the final string (for any leading or trailing white spaces) | |
420 | Leave data urls alone to increase parse performance. | |
426 | Since we need to account for non-base64 data urls, we need to handle | |
427 | ' and ) being part of the data string. Hence switching to indexOf, | |
428 | to determine whether or not we have matching string terminators and | |
429 | handling sb appends directly, instead of using matcher.append* methods. | |
434 | "url(".length() | |
436 | ', " or empty (not quoted) | |
446 | endIndex == 0 doesn't really apply here | |
455 | Enough searching, start moving stuff over to the buffer | |
468 | No end terminator found, re-add the whole match. Should we throw/warn here? | |
498 | Look for hex colors inside { ... } (to avoid IDs) and which don't have a =, or a " in front of them (to avoid filters) | |
502 | See: http://ajaxmin.codeplex.com/wikipage?title=CSS%20Colors | |
524 | Restore, maintain case, otherwise filter will break | |
530 | Compress. | |
533 | Non compressible color, restore but lower case. | |
536 | replace Hex colors to short safe color names | |
556 | Must use addcslashes in PHP to avoid parsing of backslashes | |
559 | maybe the string contains a comment-like substring? | |
560 | one, maybe more? put'em back then | |
567 | minify alpha opacity in filter strings | |
587 | Support for percentage values rgb(100%, 0%, 45%); | |
597 | Values outside the sRGB color space should be clipped (0-255) | |
603 | Fix for issue #2528093 | |
618 | Wrap and clamp, then fraction! | |
691 | blog.margenn.com | |
707 | blog.margenn.com | |
708 | margenn.com/tubal/str_slice/ |
Type | Line | Description |
---|---|---|
15 | api.microsofttranslator.com/V2/Soap.svc'; | |
32 | bugs.php.net/bug.php?id=49853 | |
61 | no longer used, but pass it anyway |
Type | Line | Description |
---|---|---|
39 | throw new Exception('table exists: ' . $tableName); | |
144 | var_dump($this->_parsedSQL); | |
147 | Select statement | |
151 | Update statement | |
155 | Delete statement | |
170 | echo '<br>WHERE:' . $where . '<br>'; | |
188 | echo 'where: *'.$where.'*<br>'; | |
238 | Column | |
254 | IN clause | |
259 | Others | |
273 | Do nothing | |
299 | alias error | |
365 | var_dump($parsedSQL); | |
367 | No sets for update | |
482 | echo 'getRecord: '.$nbr.' '.$recordPosition.'<br>'; | |
492 | $withMetaData = true; | |
518 | Its a blob | |
524 | First blob has been read above | |
531 | Read ref | |
547 | Stop following | |
567 | var_dump($this->_definition); | |
569 | Insert => append | |
572 | Not auto increment | |
582 | Find next primary key value | |
595 | Prepend | |
605 | write reference to metadata | |
623 | Blob | |
636 | Blob | |
643 | Add new if not available | |
648 | Crob data | |
650 | Add end delimiter | |
658 | Write file | |
663 | Fill up with NUL | |
688 | Append | |
695 | Add end delimiter | |
701 | If appending data, write reference | |
709 | Fill up with NUL | |
711 | Fill up with NUL | |
725 | Write end delimiter to the beginning of the next blob |
Type | Line | Description |
---|---|---|
50 | www.3site.eu> (spaceBeforeRegExp) | |
53 | opensource.org/licenses/mit-license.php MIT License | |
54 | code.google.com/p/jsmin-php/ | |
102 | min already run | |
117 | determine next command | |
118 | default | |
122 | Don't delete this space. If we do, the addition/subtraction | |
123 | could be parsed as a post-increment | |
131 | in case of mbstring.func_overload & 2, must check for null b, | |
132 | otherwise mb_strpos will give WARNING | |
165 | make sure we don't compress "a + ++b" to "a+++b", etc. | |
169 | Note: we're at an addition/substraction operator; the inputIndex | |
170 | will certainly be a valid index | |
172 | This is "+ +" or "- -". Don't delete the space. | |
178 | 1 | |
189 | fallthrough intentional | |
190 | 2 | |
192 | string literal | |
193 | in case needed for exception | |
199 | end quote | |
217 | fallthrough intentional | |
218 | 3 | |
222 | keep entire pattern in case we need to report it in the exception | |
247 | end pattern | |
248 | while (true) | |
262 | end case ACTION_DELETE_A_B | |
272 | we obviously aren't dividing | |
277 | weird edge case | |
280 | you can't divide a keyword | |
282 | odd but could happen | |
285 | make sure it's a keyword, not end of an identifier | |
306 | getc(stdin) | |
366 | end of line reached | |
367 | if IE conditional comment | |
388 | end of comment reached | |
391 | preserved by YUI Compressor | |
393 | don't prepend a newline if two comments right after one another | |
398 | IE conditional |
Type | Line | Description |
---|---|---|
8 | do stuff before search will be excuted | |
11 | no request submited | |
14 | results were found | |
17 | no results were found | |
20 | do stuff after search | |
128 | runtime | |
139 | query | |
143 | meta | |
149 | values | |
160 | prepare meta | |
163 | results |
Type | Line | Description |
---|---|---|
113 | TODO: Implement prepareConfig() method. | |
176 | TODO: Implement initConfigByRequest() method. |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'more/action/editproxy/assets/fm_act_editproxy.svg'; |
Type | Line | Description |
---|---|---|
9 | If parent returns true, the child action has been found and the current action can be skipped | |
13 | Child not found | |
292 | /** | |
293 | * Prepares sitemap | |
294 | * | |
295 | * @param Fuman_Util_Sitemap $sitemap | |
296 | * @param string $host | |
297 | * @param Fuman_Navigation $navigation | |
298 | * @param Fuman_Navigation_Item $item | |
299 | */ | |
300 | public function prepareSitemap(Fuman_Util_Sitemap $sitemap, $host, Fuman_Navigation $navigation, Fuman_Navigation_Item $item = null) { | |
301 | ||
302 | return; | |
303 | //@todo christian reimplement | |
304 | ||
305 | $this->_setChildValues(); | |
306 | $rsMeta = new Fuman_Db_RecordSetMeta(); | |
307 | $rsMeta->setLimit(1); | |
308 | $records = Fuman_Registry::getTable($this->getChildTableUniqueName())->getRecordSet($rsMeta)->getTemplateData(); | |
309 | $this->setNavigationItem($item); | |
310 | /** | |
311 | * @var Fuman_Db_Record $record | |
312 | */ | |
313 | foreach ($records as $record) { | |
314 | if (isset($this->_childTableTitleUniqueName) && $record->hasValue($this->getChildTableTitleUniqueName())) { | |
315 | $title = Fuman_Util_Web::stringToUri($record->getValue($this->getChildTableTitleUniqueName())); | |
316 | } | |
317 | else { | |
318 | $title = 'unknown-title'; | |
319 | } | |
320 | $sitemap->addUri( | |
321 | $host . $this->createChildLinkFromItem($item, $title, $record->getPrimaryValue()) | |
322 | ); | |
323 | } | |
324 | } |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'more/action/container/assets/fm_act_assets.svg'; |
Type | Line | Description |
---|---|---|
84 | init weekly | |
326 | prepare days | |
333 | finish the first week, so we have less conditions in the next loops | |
344 | compute all next events until the end |
Type | Line | Description |
---|---|---|
162 | create fields | |
174 | create buttons |
Type | Line | Description |
---|---|---|
117 | google-code-prettify.googlecode.com/svn/loader/run_prettify.js'); | |
118 | google-code-prettify.googlecode.com/svn/loader/prettify.css'); | |
122 | $response->addJsFile(FUMAN_WEB_ASSET_ROOT.'app/more/inputtype/syntaxhighlightedtextarea/assets/syntaxhighlighter/scripts/shCore.js'); | |
123 | $response->addCssFile(FUMAN_WEB_ASSET_ROOT.'app/more/inputtype/syntaxhighlightedtextarea/assets/syntaxhighlighter/styles/shCoreFuman.css'); | |
124 | $response->addJsClass('fuman.app.more.inputtype.Syntaxhighlightedtextarea'); | |
128 | $response->addJsFile(FUMAN_WEB_ASSET_ROOT.'app/more/inputtype/syntaxhighlightedtextarea/assets/syntaxhighlighter/scripts/shBrush'.$language.'.js'); |
Type | Line | Description |
---|---|---|
208 | @todo christian make form-name translatable (now you get the component-name in the mail-template) | |
682 | $this->getConfigHandler()->setElementTemplatePath($path); | |
826 | Load all translations |
Type | Line | Description |
---|---|---|
7 | www.google-analytics.com/analytics.js','ga'); |
Type | Line | Description |
---|---|---|
43 | load javascript class only, when its under 100% |
Type | Line | Description |
---|---|---|
32 | JSON format | |
39 | Still a string | |
98 | @todo stefan (LOW, 14.3.2013): implement optional css-class-name also for bg |
Type | Line | Description |
---|---|---|
17 | s7.addthis.com/js/250/addthis_widget.js#pubid=xa-50101a6b3217d51d"></script> |
Type | Line | Description |
---|---|---|
83 | TODO: Implement prepareConfig() method. | |
108 | TODO: Implement configPostSave() method. |
Type | Line | Description |
---|---|---|
1 | www.srfcdn.ch/meteo/prognosen/media/embed/embed_big_nav.swf"><param value="http://www.srfcdn.ch/meteo/prognosen/media/embed/embed_big_nav.swf" name="movie" /><param name="quality" value="high" /><param name="allowFullScreen" value="true" /></object><br /><a href="http://www.meteo.sf.tv">SF METEO</a> |
Type | Line | Description |
---|---|---|
41 | ordered keys for assoc | |
44 | Header titles | |
55 | check if the key exists in the bodyList, if not, we have not an associative array | |
61 | Actions | |
72 | Write Rows | |
74 | Row | |
87 | Actions | |
107 | Add |
Type | Line | Description |
---|---|---|
101 | Filter items by config | |
119 | Template path set ? |
Type | Line | Description |
---|---|---|
55 | prepare inputTypes | |
71 | Header titles | |
167 | check if the sequenceSelector is restricted to an reference | |
184 | Write Rows | |
187 | Row | |
194 | Content | |
234 | Add |
Type | Line | Description |
---|---|---|
27 | when we save a new set, recreate the default set |
Type | Line | Description |
---|---|---|
62 | generate Add-Action-Icon | |
96 | Check if list is valid |
Type | Line | Description |
---|---|---|
64 | $this->currentSetName = $preference->current; | |
466 | generate Edit-Action-Icon | |
477 | generate Delete-Action-Icon | |
488 | generate Mark icon |
Type | Line | Description |
---|---|---|
87 | Get first filter as init view | |
109 | when we have no filterable inputtype on the table, set filters to an array | |
154 | update the database meta | |
176 | prepare the inputtype select form | |
195 | generate Add-Action-Icon | |
205 | generate Delete-Action-Icon |
Type | Line | Description |
---|---|---|
136 | save filter values | |
157 | build the data layout | |
179 | prepare the js things |
Type | Line | Description |
---|---|---|
14 | Try to force frontend |
Type | Line | Description |
---|---|---|
TODO | 9 | by christian 15-05-2013 still used? |
Type | Line | Description |
---|---|---|
21 | Noting active in navigation => do nothing | |
23 | @todo christian => check with stefan => newsletter | |
24 | return; | |
48 | Remove root | |
55 | Table and record set => get summary | |
72 | Navigation set => use navigation label | |
79 | Table set => use display name |
Type | Line | Description |
---|---|---|
TODO | 9 | by christian 15-05-2013 add submit button |
Type | Line | Description |
---|---|---|
40 | Reset form value | |
47 | Strip chars | |
50 | Extract divisors | |
71 | Strip extras | |
73 | Strip non chars before and after | |
76 | years | |
78 | months | |
80 | days | |
82 | hours | |
84 | minutes | |
86 | seconds | |
187 | Strip chars | |
190 | Extract divisors | |
211 | Strip divisors | |
213 | Strip invalid |
Type | Line | Description |
---|---|---|
35 | Strip chars | |
38 | Extract divisors | |
59 | Strip extras | |
61 | Strip non chars before and after | |
64 | years month days | |
66 | hours | |
68 | minutes | |
70 | seconds |
Type | Line | Description |
---|---|---|
22 | Disable caching for password forms => salt value changes by session | |
117 | Not found in ascii |
Type | Line | Description |
---|---|---|
17 | senden | |
18 | speichern | |
19 | speichern und schliessen | |
20 | speichern |
Type | Line | Description |
---|---|---|
42 | Comperator component will not be used. | |
83 | Not on the same database |
Type | Line | Description |
---|---|---|
46 | Insert data form dump | |
71 | $success = false; | |
156 | Skip comments | |
157 | m',$line) || preg_match('/^ *\/\*/m',$line)){ | |
171 | Check empty |
Type | Line | Description |
---|---|---|
9 | const ICON_PATH = 'core/action/translationkeydiff/assets/fm_act_translationkeyiff.svg'; | |
89 | set the namespaces | |
92 | add fuman namespace | |
95 | add custom namespace | |
99 | adds the app namespaces |
Type | Line | Description |
---|---|---|
37 | Logout that session will be reset | |
39 | Set user again |
Type | Line | Description |
---|---|---|
64 | Lock has been timeouted | |
78 | Fuman_Util_Logger::trace('server: '.$hasLock.' : '.$_SERVER['HTTP_USER_AGENT']); | |
79 | Fuman_Util_Logger::trace('cronSession: '.$cronSessionId,$cronSession); | |
88 | Init new session | |
133 | Fuman_Util_Logger::warn('cronJobs', $cronJobs); | |
134 | Find next cronjob | |
137 | init | |
146 | Fuman_Util_Logger::warn('recentCronJobs', $recentCronJobs); | |
150 | Fuman_Util_Logger::warn('recentCronJobs', $recentCronJobs); | |
159 | Fuman_Util_Logger::warn('cronJob: '.$cronJob); | |
161 | Check access | |
168 | Fuman_Util_Logger::warn('run cronJob: '.$cronJob); | |
182 | Recalculate timeout | |
184 | Fuman_Util_Logger::trace('cronJob minTime: '.date('d.m.Y H:i:s')); | |
196 | Set timeout shorter than max execution value | |
199 | We are not logged in | |
201 | Disable any further calls | |
210 | Fuman_Util_Logger::trace('cronSession',$cronSession); |
Type | Line | Description |
---|---|---|
43 | User must have a lock and has posted the form | |
108 | Nothing to do here |
Type | Line | Description |
---|---|---|
15 | const ICON_PATH = 'core/action/moduleinstaller/assets/fm_act_moduleinstaller.svg'; |
Type | Line | Description |
---|---|---|
45 | $this->_responseData->html = | |
46 | Fuman_Registry::getParser()->parse($editAction); |
Type | Line | Description |
---|---|---|
19 | Prevent init call on app_core_action_add. | |
68 | empty! |
Type | Line | Description |
---|---|---|
5 | www.fugu.ch" class="app_core_action_login_batch_more">{translation:app_core_action_login_more}</a> |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'core/action/translationvalidate/assets/fm_act_translationvalidate.svg'; | |
112 | translation value fields with inline translation | |
118 | $values .= '<span style="clear:none;float:left;padding-right:5px">'.$language.':</span>'; | |
129 | add delete icon | |
173 | $this->_responseData->notFoundCount = $counter; | |
217 | Is the key available in source | |
224 | Valid class ? | |
297 | Load validators | |
311 | Load files | |
339 | Parse files | |
342 | Php | |
347 | Extract @translationKeys | |
367 | Templates | |
415 | Tabs | |
417 | Comments //,/*,*,* | |
420 | Remove new lines |
Type | Line | Description |
---|---|---|
26 | Check tab name | |
31 | Check navigation | |
38 | Validate without custom_ |
Type | Line | Description |
---|---|---|
31 | Fuman needs this translation-key for actions | |
43 | Fuman needs this translation-key for inputtypes | |
49 | Fuman needs this translation-key for widgets | |
56 | Check config | |
63 | Check table | |
77 | Check config | |
93 | Check wizard step titles | |
120 | Set temp response | |
178 | Set temp response |
Type | Line | Description |
---|---|---|
40 | Date | |
45 | Language | |
54 | Bool | |
59 | Tabs | |
63 | table | |
85 | Remove _de, _en, ... |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'core/action/translationsystemtable/assets/fm_act_translationsystemtable.svg'; | |
45 | init languages | |
49 | init translators |
Type | Line | Description |
---|---|---|
4 | validator.w3.org/check?servercheck" method="post" target="validator-w3-org-server"> | |
9 | validator.w3.org/check?servercheck" method="post" target="validator-w3-org-server"> | |
13 | validator.w3.org/nu/" method="post" enctype="multipart/form-data" target="nu-validator-w3-org"> | |
20 | validator.w3.org/nu/" method="get" target="nu-validator-w3-org"> | |
27 | developers.google.com/speed/pagespeed/insights/" method="get" target="google-pagespeed"> | |
31 | www.google.com/webmasters/tools/richsnippets" method="get" target="google-richsnippets"> | |
35 | developers.facebook.com/tools/debug/og/object/" method="get" target="facebook-opengraph"> | |
39 | validator.w3.org/check?snapshotcheck" method="post" target="validator-w3-org-dom"> |
Type | Line | Description |
---|---|---|
89 | $content = mb_convert_encoding($content, 'UTF-8', ($encoding === 'ISO-8859-1'? 'windows-1252' : $encoding) . ', UTF-8'); | |
90 | TRANSLIT', 'UTF-8', $content); | |
93 | Fuman_Util_Logger::trace('tara 2 ' . $encoding, $content); | |
103 | prepare field mapping information | |
104 | allow convert/cast | |
117 | create default mapping based on columnNames | |
133 | sort | |
139 | import | |
303 | TODO: Implement configPostSave() method. | |
314 | TODO: Implement initConfigByRequest() method. |
Type | Line | Description |
---|---|---|
27 | const ICON_PATH = 'core/action/manageseo/assets/fm_act_manageseo.svg'; | |
60 | ')===false){ |
Type | Line | Description |
---|---|---|
55 | Do nothing if not a Fuman_Table_Tree or Fuman_Table_Page | |
67 | Delete http output cache | |
84 | Do nothing if not a Fuman_Table_Tree or Fuman_Table_Page |
Type | Line | Description |
---|---|---|
32 | Setup Vars | |
59 | Restrict search on acl tables if not administrator | |
60 | @todo christian why, adminstrator should also be restricted | |
61 | if (Fuman_Registry::getClient()->getUser()->getActiveRole()->getPrimaryValue() !== Fuman_Auth_Role_Administrator::ADMINISTRATOR_ROLE_NAME) { | |
64 | } | |
73 | Paging | |
162 | break; | |
165 | General Response Data |
Type | Line | Description |
---|---|---|
111 | Import default translations into db | |
139 | $success = false; | |
151 | if(isset($this->_sessionDataContainer->buildSuccess) && ((bool)$this->_sessionDataContainer->buildSuccess)){ | |
158 | } | |
186 | We only create system tables | |
348 | Deep clone | |
368 | Sync config with main template | |
405 | Copy live template |
Type | Line | Description |
---|---|---|
43 | Init step | |
87 | $result .= date('d.m.Y H:i', $GMT + $offset); |
Type | Line | Description |
---|---|---|
TODO | 14 | christian add config for content and translation languages |
Type | Line | Description |
---|---|---|
135 | purl.org/rss/1.0/modules/content/" version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">' . "\n"; | |
146 | echo '<pubDate>Erstellungsdatum("Tue, 8 Jul 2008 2:43:19")</pubDate>'."\n"; |
Type | Line | Description |
---|---|---|
95 | TODO: Implement initConfigByRequest() method. |
Type | Line | Description |
---|---|---|
16 | $this->_text = 'hellow'; | |
21 | www.google.com/tbproxy/spell?lang=' . $request->getParam('lang')); |
Type | Line | Description |
---|---|---|
32 | translate.google.com/translate_t'); |
Type | Line | Description |
---|---|---|
22 | api.microsofttranslator.com' |
Type | Line | Description |
---|---|---|
14 | const ICON_PATH = 'core/action/translationmanage/assets/fm_act_translationmanage.svg'; | |
77 | init session container | |
85 | init language | |
103 | $checkboxTranslateAll = new app_core_form_checkbox('translate_all', $translateAll); | |
107 | init translator & create form | |
173 | body | |
203 | pre compute the values | |
227 | pre compute the values |
Type | Line | Description |
---|---|---|
12 | const ICON_PATH = 'core/action/managenavigation/assets/fm_act_managenavigation.svg'; | |
42 | $navigation = Fuman_Util_Web::jsonDecode('{"children":[{"id":"55","children":[]}]}'); | |
65 | Create items | |
74 | $editIcon->setAttribute('style','display:none'); | |
94 | Create items from record set | |
145 | Add containers/system tables (not in record set) | |
181 | Its not a fuman table | |
183 | Its an item which has been deleted | |
204 | Add default system container | |
216 | Add default fuman_translation table | |
243 | Overlay |
Type | Line | Description |
---|---|---|
15 | const ICON_PATH = 'core/action/contentcheck/assets/fm_act_contentcheck.svg'; | |
69 | ||
70 | Collect tables | |
71 | ||
156 | Clean up special chars (temp for kmb/zpk) | |
260 | Find Uri in field | |
261 | .*|\d{3,6}://~i', $text) || | |
265 | Find Uri or E-Mail in text | |
289 | Check uri | |
312 | i', $uri)) { | |
313 | return ''; | |
330 | Fuman_Util_Logger::trace($request->getResponseStatus().' '.$uri.' => '.$realUri); | |
332 | http://de.wikipedia.org/wiki/HTTP-Statuscode | |
337 | i', $uri)) { | |
338 | $errors[] = 'test: ' . $uri.' ['.$target.']'; | |
340 | Self uri but not with fuman:// | |
363 | instead): ' . $uri, $record, $inputType, $htmlTable); | |
365 | Check target |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'core/action/clearcache/assets/fm_act_clearcache.svg'; |
Type | Line | Description |
---|---|---|
111 | handle sequence selector | |
175 | TODO: Implement configPostSave() method. | |
186 | TODO: Implement initConfigByRequest() method. |
Type | Line | Description |
---|---|---|
24 | Setup Vars | |
TODO | 10 | simon/stefan/christian Filter berücksichtigt noch keine Host-Konfigurationen (Übersetzungen werden z.B. auch von anderen Hosts angezeigt) |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'core/action/systemcheck/assets/fm_act_systemcheck.svg'; | |
108 | Add php info | |
109 | get phpinfo | |
140 | www.php.net/' . $func . '" target="_blank">' . $func . '</a><br/>'; |
Type | Line | Description |
---|---|---|
14 | const ICON_PATH = 'core/action/recalculatefile/assets/fm_act_recalculatefile.svg'; | |
168 | Cache the file because it will deleted first by file inputtype | |
171 | Sanitize file name |
Type | Line | Description |
---|---|---|
14 | const ICON_PATH = 'core/action/translationpublish/assets/fm_act_translationpublish.svg'; | |
19 | array('fuman', 'custom'); | |
66 | set the namespaces | |
69 | add fuman namespace | |
72 | add custom namespace | |
76 | adds the app namespaces | |
85 | get the records | |
97 | $placeholderValue = $this->_table->getPlaceholderValue($row['key']); | |
101 | && $placeholderValue!==$row['value_' . $lang] |
Type | Line | Description |
---|---|---|
12 | const ICON_PATH = 'core/action/livedoc/assets/fm_act_livedoc.svg'; | |
134 | Find components | |
147 | ', $phpFile)) { | |
275 | Remove tabs | |
277 | Remove /* */ | |
279 | Remove **/ | |
281 | Remove ** | |
283 | Remove version | |
285 | Remove empty lines | |
287 | Remove multiple empty lines | |
305 | Strip ignore tags |
Type | Line | Description |
---|---|---|
21 | const ICON_PATH = 'core/action/moduleexport/assets/fm_act_moduleexport.svg'; | |
36 | check if we ignore valid columns | |
87 | create inputType record object |
Type | Line | Description |
---|---|---|
21 | const ICON_PATH = 'core/action/translationimport/assets/fm_act_translationimport.svg'; |
Type | Line | Description |
---|---|---|
8 | const ICON_PATH = 'core/action/searchindexstat/assets/fm_act_searchindexstat.svg'; |
Type | Line | Description |
---|---|---|
89 | app | |
96 | app | |
98 | type | |
156 | Tabs | |
158 | Comments //,/*,*,* | |
161 | Remove new lines |
Type | Line | Description |
---|---|---|
49 | Not all lockIds are present in currentLockIds |
Type | Line | Description |
---|---|---|
22 | Add actions which must be always available | |
30 | We use this object as proxy for journal, thous we dont have to instantiate fuman_journal every time |
Type | Line | Description |
---|---|---|
206 | Add roles | |
228 | $meta->getWhere()->addColumn('action_unique_name', null, 'IS'); | |
238 | echo $tableActionRecord->getValue('action_class_name').'<br>'; | |
246 | echo $roleRecord->getPrimaryValue().'<br>'; |
Type | Line | Description |
---|---|---|
82 | set online/offline (if no input, it's online) | |
100 | save the user input | |
226 | for validation reasons, add search_content to the inputtype list | |
298 | use/fetch the search content | |
321 | check for fallback mechanism | |
326 | if meta_keyword, generate keywords from the content | |
337 | otherwise clean it up | |
338 | strip_tags(preg_replace('/(<br[^>]*>)*\s+/i', ' ', $content)); | |
341 | save the generated input | |
409 | $options['values'] = array_slice(app_core_inputtype_pagestatus::getDefaultStatuses(), 0, 2, true); | |
433 | add the generated keywords as tags | |
532 | clean up messy things | |
TODO | 11 | christian/stefan fix metatag-description -> content is language indifferent (french page gets german meta-description) |
Type | Line | Description |
---|---|---|
55 | remove only the 's (as in mother's) | |
56 | remove grammar symbols | |
57 | remove numerals, including commas and dots that are part of the numeral | |
59 | Stop words web translations | |
60 | http://snowball.tartarus.org/algorithms/ | |
61 | http://share.ez.no/forums/extensions/ez-find/german-stop-words | |
63 | Remove stop words |
Type | Line | Description |
---|---|---|
31 | www.sf.tv/videoplayer/embed/{id}" | |
35 | www.sf.tv/videoplayer/embed/{id}"/> |
Type | Line | Description |
---|---|---|
9 | api.twitter.com/1/statuses/oembed.json?id={id}'; |
Type | Line | Description |
---|---|---|
31 | www.slideshare.net/slideshow/embed_code/{id}" |
Type | Line | Description |
---|---|---|
20 | maps.google.com?' . http_build_query($gmapQueries); |
Type | Line | Description |
---|---|---|
2 | <div><object width="480" height="480"><param name="movie" value="//www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FTechnoLiveSets%2Frichie-hawtin-live-space-ibiza-enter-minus-05-07-2012%2F&embed_uuid=b2bd7b98-b6e4-4a03-b7c1-d5469394bd59&stylecolor=&embed_type=widget_standard"></param><param name="allowFullScreen" value="true"></param><param name="wmode" value="opaque"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FTechnoLiveSets%2Frichie-hawtin-live-space-ibiza-enter-minus-05-07-2012%2F&embed_uuid=b2bd7b98-b6e4-4a03-b7c1-d5469394bd59&stylecolor=&embed_type=widget_standard" type="application/x-shockwave-flash" wmode="opaque" allowscriptaccess="always" allowfullscreen="true" width="480" height="480"></embed></object><div style="clear:both; height:3px;"></div><p style="display:block; font-size:12px; font-family:Helvetica, Arial, sans-serif; margin:0; padding: 3px 4px; color:#999;"><a href="http://www.mixcloud.com/TechnoLiveSets/richie-hawtin-live-space-ibiza-enter-minus-05-07-2012/?utm_source=widget&utm_medium=web&utm_campaign=base_links&utm_term=resource_link" target="_blank" style="color:#02a0c7; font-weight:bold;">Richie Hawtin - Live @ Space Ibiza (Enter Minus) - 05-07-2012</a><span> by </span><a href="http://www.mixcloud.com/TechnoLiveSets/?utm_source=widget&utm_medium=web&utm_campaign=base_links&utm_term=profile_link" target="_blank" style="color:#02a0c7; font-weight:bold;">Technolivesets</a><span> on </span><a href="http://www.mixcloud.com/?utm_source=widget&utm_medium=web&utm_campaign=base_links&utm_term=homepage_link" target="_blank" style="color:#02a0c7; font-weight:bold;"> Mixcloud</a></p><div style="clear:both; height:3px;"></div></div> | |
42 | www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FTechnoLiveSets%2Frichie-hawtin-live-space-ibiza-enter-minus-05-07-2012%2F&embed_uuid=b2bd7b98-b6e4-4a03-b7c1-d5469394bd59&stylecolor=&embed_type=widget_standard" /> | |
47 | www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FTechnoLiveSets%2Frichie-hawtin-live-space-ibiza-enter-minus-05-07-2012%2F&embed_uuid=b2bd7b98-b6e4-4a03-b7c1-d5469394bd59&stylecolor=&embed_type=widget_standard" |
Type | Line | Description |
---|---|---|
35 | static.issuu.com/webembed/viewers/style1/v2/IssuuReader.swf?mode=mini&backgroundColor=%23222222&documentId={id}" /> | |
40 | static.issuu.com/webembed/viewers/style1/v2/IssuuReader.swf" |
Type | Line | Description |
---|---|---|
9 | soundcloud.com/oembed?format=js&url={url}&iframe=true'; | |
19 | w\.soundcloud\.com/player/\?(?:[^(6)]*6)?url=)(.*)(\\\u0026show_artwork\=true)`is', $data, $matches); | |
37 | w.soundcloud.com/player/?url={id}&show_artwork={show_artwork}" |
Type | Line | Description |
---|---|---|
30 | player.vimeo.com/video/{id}?title={title}&byline={inline}&portrait={portrait}" |
Type | Line | Description |
---|---|---|
29 | #fuman_page:' . $record->getPrimaryValue(); |
Type | Line | Description |
---|---|---|
48 | @todo stefan (low) summaryTemplate ? |
Type | Line | Description |
---|---|---|
TODO | 10 | simon rename/rewrite (use inputtype setvalue, check against add acl rights) |
Type | Line | Description |
---|---|---|
30 | Numerical | |
34 | Unique | |
44 | Regex | |
53 | Max / Min Char length | |
78 | xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, 'UTF-8'); | |
81 | create closing xml tags <...> => <.../> | |
83 | convert to xhtml <.../> => <...></...> | |
85 | decode html entities | |
86 | $value = html_entity_decode($value, null, 'UTF-8'); | |
87 | wrap with phtml root | |
92 | Fuman_Util_Logger::trace('html-error: ' . xml_error_string(xml_get_error_code($xmlParser)), $value); | |
93 | $record->addSaveErrorColumnMessage($columnName, Fuman_Registry::getTranslation('app_core_inputtype_textfield_invalid_html')); | |
211 | Numerical filter | |
214 | Regex filter | |
217 | Format | |
220 | SQL statement | |
223 | masterUniqueName | |
233 | Unique filter | |
235 | Show hidden | |
237 | Default Value | |
239 | MinChars filter | |
241 | MaxChars filter | |
319 | Currently not used because attribute lang and spell check not yet implemented in browsers | |
320 | $formComponent->setAttribute('spellcheck', 'true'); |
Type | Line | Description |
---|---|---|
28 | reference record uid handling (used for nested inline forms) | |
87 | Add request | |
88 | Init inputtype |
Type | Line | Description |
---|---|---|
38 | That no validators will be added | |
213 | update caller if we come from referenced table | |
385 | $referencingColumnName = $this->getMainColumn()->getReferencedTable()->hasInputType($this->getMainColumn()->getReferencedColumnName()) | |
386 | ? $this->getMainColumn()->getReferencedTable()->getInputType($this->getMainColumn()->getReferencedColumnName())->getFormName(null) | |
387 | $this->getMainColumn()->getReferencedColumnName(); | |
510 | check for uninitialized column | |
525 | search over inherited tables | |
565 | search over inherited tables | |
641 | return null; | |
652 | Unset this record to be used again ! | |
657 | Prevent recursion | |
668 | Collect | |
725 | return $this->getFormComponent($record, $language, $formModel); | |
812 | if (is_null($uniqueName) || $inputType->getMainColumn()->getReferencedTable()->getUniqueName() == $uniqueName) { |
Type | Line | Description |
---|---|---|
98 | @todo all summaryTemplate find ich irgnedwie hier fehl am platz -> eher overviewTemplate.... | |
99 | $this->_inputType->getConfigValueOrDefault('summaryTemplate',$record->getTable()->getSummaryTemplate()); |
Type | Line | Description |
---|---|---|
60 | That no validators will be added | |
178 | First delete current mapping | |
339 | return null; | |
347 | Collect | |
417 | 'app_core_inputtype_mapping_component_abstract' | |
423 | ||
424 | foreach (self::$_availableLayouts as $layout) { | |
425 | $mappingLayout->addItem($layout, Fuman_Registry::getTranslation($this->_name . '_' . $layout)); | |
426 | } |
Type | Line | Description |
---|---|---|
176 | We will show this an maybe a referenced level |
Type | Line | Description |
---|---|---|
60 | Hidden | |
64 | Read only | |
129 | Strip chars | |
131 | Strip non chars | |
133 | ', $strippedFormat)); | |
134 | Does not include duplicates | |
136 | Strip supported chars | |
138 | Strip extras |
Type | Line | Description |
---|---|---|
233 | Update tree | |
280 | #fuman_page:' . $item->pageId)); | |
388 | Delete http output cache | |
433 | '0',0 => null | |
453 | Define used sql objects | |
462 | Get current positions of references | |
527 | do we have do increment next | |
548 | increment next |
Type | Line | Description |
---|---|---|
35 | do nothing, we only want check the type of the inputtype columns | |
73 | fumanId | |
74 | uniqueName | |
75 | fuman table | |
76 | column-name | |
77 | config | |
78 | record | |
93 | $title .= ' ('.$type.':'.$existingDbType.':'.$mainColumn->getName().':'.$inputType->getTable()->getPrimaryName().')'; | |
106 | $title .= ' ('.$typeString.':'.$existingTypeString.')'; |
Type | Line | Description |
---|---|---|
112 | Root | |
140 | Invalid | |
149 | Drag/Move not allowed | |
160 | Drag/Move not allowed | |
183 | Drag/Move not allowed | |
258 | $title .= ' '.$treeRecord->getValue('tree_path').' '.$treeRecord->getValue('seqno'); | |
285 | Root |
Type | Line | Description |
---|---|---|
77 | if it uses translations for the names, disable the display_name |
Type | Line | Description |
---|---|---|
85 | Not constraint defined or constraint added | |
122 | Activate default | |
174 | Not set | |
178 | Not moved | |
189 | Find previous id for "before" | |
265 | add [class] for dif between row and inlineform | |
374 | search on the relation columns, so it's not imported that we have a bidirectional connection (OneToMany and ManyToOne) |
Type | Line | Description |
---|---|---|
29 | (.*))\1~isU'; | |
30 | )(\#fuman_page\:\d+)(?:/([a-z]{2,5}))?)\1~is'; | |
31 | )(?:(\#fuman_page\:\d+)(?:/([a-z]{2,5}))?|.*))\1~isU'; | |
133 | array_unshift($files, null); | |
253 | list and format container | |
392 | Scramble emails which are in text |
Type | Line | Description |
---|---|---|
26 | create dummy inputType |
Type | Line | Description |
---|---|---|
41 | check derivative configuration -> crop is now cropWith & cropHeight | |
56 | check file source configuration, now it's possible to have more than one source | |
63 | check storage configuration |
Type | Line | Description |
---|---|---|
14 | www.dropbox.com/'; | |
16 | api.dropbox.com/'; | |
17 | api-content.dropbox.com/'; | |
46 | $data->accountInfo = $this->getDropBoxAccountInfo(); | |
50 | Fuman_Util_Logger::trace('dir',$dir); | |
190 | / | |
191 | / DropBox | |
192 | / | |
214 | are we coming from dropbox's auth page? | |
286 | Use current access token | |
302 | Fuman_Util_Logger::trace('request: '.$uri); |
Type | Line | Description |
---|---|---|
77 | for backward compatibility | |
330 | Clean name |
Type | Line | Description |
---|---|---|
60 | creates directly the default derivativeColumns and add spezial columns | |
63 | add the special columns from the derivatives | |
68 | create instances of the source factories | |
80 | create instances of the storage factories | |
87 | create storage factory columns | |
172 | get the storage files, so they are cached on the record, because we change now the column name | |
178 | set main column value for validation, otherwise column validation would fail | |
196 | delete first the derivative files | |
201 | clean up | |
255 | try get cachekey from request | |
261 | ignore files from request when the files are already added (manually) | |
275 | Try to get cached | |
283 | set only null when we have a delete request | |
289 | cropFrame, if no new fies and original_crop is set, save the crop frame config | |
390 | /** | |
391 | * Init by file | |
392 | * | |
393 | * @param string $filePath | |
394 | * @param string $fileName | |
395 | * @param Fuman_Db_Record $record | |
396 | */ | |
397 | public function initByFile($filePath, $fileName, Fuman_Db_Record $record) { | |
398 | $this->_initByFileByLanguage($filePath, $fileName, $record); | |
399 | if ($this->isTranslatable() && $this->getTable()->hasContentTranslationLanguages()) { | |
400 | foreach ($this->getTable()->getContentTranslationLanguages() as $language) { | |
401 | $this->_initByFileByLanguage($filePath, $fileName, $record, $language); | |
402 | } | |
403 | } | |
404 | } | |
405 | ||
406 | /** | |
407 | * Init from file by language | |
408 | * | |
409 | * @param string $filePath | |
410 | * @param string $fileName | |
411 | * @param Fuman_Db_Record $record | |
412 | * @param null|string $language | |
413 | */ | |
414 | protected function _initByFileByLanguage($filePath, $fileName, Fuman_Db_Record $record, $language = null) { | |
415 | $file = new Fuman_File($filePath); | |
416 | $file->setRealName(Fuman_Util_File::sanitizeFileName($fileName)); | |
417 | if ($record->hasPrimaryValue()) { | |
418 | $cacheKey = $record->getKey(); | |
419 | } | |
420 | else { | |
421 | $cacheKey = uniqid(); | |
422 | } | |
423 | $file->cache($cacheKey); | |
424 | $this->setFiles(array($file), $record, $language); | |
425 | } | |
439 | Not saved then first try get the files from source (maybe they are uploaded or cached) | |
441 | chached files are in the container | |
456 | Derivatives | |
494 | && $file->getProperty('deleted') !== true | |
503 | original image/file etc, do nothing more | |
525 | create the default and current crop config | |
624 | create delete file button | |
635 | Label | |
648 | if cropping is enabled in the config, add js class | |
706 | Get first derivative | |
780 | no new file | |
792 | File size | |
801 | Add label validator, but only if file is set. | |
818 | /** | |
819 | * Presaves a file at a temporary position. | |
820 | * | |
821 | * @param Fuman_Db_Record $record | |
822 | * @return void | |
823 | */ | |
824 | public function recordPreSave(Fuman_Db_Record $record) { | |
825 | if ($this->getConfigValueOrDefault('label', false)) { | |
826 | $columnName = $this->getColumnName(null, 'label'); | |
827 | $record->setValue($columnName, $record->getValueOrDefault($columnName, '')); | |
828 | } | |
829 | } | |
879 | remove previous files from storage (only when not already deleted) | |
884 | store original file first, then create derivatives | |
945 | get the source | |
947 | get the storage | |
950 | get max possible upload size | |
956 | filesize | |
959 | filter | |
961 | image_filter | |
963 | image cropping | |
965 | show image in overview | |
968 | get derivatives config | |
TODO | 158 | simon rename to hasNewFiles |
Type | Line | Description |
---|---|---|
60 | Order by text when no sequence selector inputType exists |
Type | Line | Description |
---|---|---|
113 | create summery template config for tab | |
TODO | 13 | christian Tabs verstecken, wenn man im im Editier-Modus eines Records ist |
Type | Line | Description |
---|---|---|
73 | We always recreate the table on save (consistentTranslatedColumnSuffix) | |
74 | if (!in_array($this->_getValueFromRecord($record), $configDb->getTableNames())) { |
Type | Line | Description |
---|---|---|
32 | @deprecated temporary fix can be removed later | |
33 | ', '', $path); | |
99 | @deprecated temporary fix can be removed later | |
100 | ', '', $path); |
Type | Line | Description |
---|---|---|
88 | Hidden | |
92 | Read only | |
108 | Always show "empty" link => validation group | |
109 | $this->getConfigValueOrDefault('required', false); | |
185 | Strip chars | |
187 | Strip non chars | |
189 | ', $strippedFormat)); | |
190 | Does not include duplicates | |
192 | Strip supported chars | |
194 | Strip extras |
Type | Line | Description |
---|---|---|
63 | ', 0, 8, true) === 0) { | |
84 | #fuman_page:' . $item->getUriParams()->id . $language; | |
87 | #fuman_page:' . $item->getKey() . $language; | |
102 | #fuman_page:', 0, 20, true) === 0) { |
Type | Line | Description |
---|---|---|
177 | $formModel->createElement(get_class($this), 'fuman_page', 'app_core_form_checkbox'); | |
227 | @todo fugu optimize |
Type | Line | Description |
---|---|---|
83 | allow init by request when record is new and readOnly false | |
270 | value empty and record does not yet exist | |
275 | try to get value from dynamic table | |
492 | Because multiple users may change db, we have to check against db | |
516 | Save in session | |
591 | Clone table object ,o) | |
607 | Add new table to registry | |
610 | init the table | |
613 | Add to ACL | |
618 | Add to session | |
761 | return null; | |
800 | We will show this an maybe a referenced level |
Type | Line | Description |
---|---|---|
46 | if the translate columns ar empty, get the value from the main column | |
81 | Exclude itself | |
127 | null; | |
128 | null; |
Type | Line | Description |
---|---|---|
47 | value empty and record does not yet exist | |
52 | try to get value from dynamic table |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'dev/action/tableuml/assets/fm_act_tableuml.svg'; | |
42 | break; | |
48 | $this->_responseData->uml = implode(',<br>',$uml); | |
49 | $this->_responseData->uml_url = urlencode(implode(',',$uml)); | |
51 | yuml.me/diagram/class/'); | |
55 | var_dump($headers); | |
58 | "inline; filename="b437aad1.png"" | |
68 | yuml.me/diagram/nofunky/class/' . $value; | |
69 | yuml.me/diagram/nofunky/class/' . str_replace('.png','.svg',$value); |
Type | Line | Description |
---|---|---|
9 | const ICON_PATH = 'dev/action/dbstate/assets/fm_act_dbstate.svg'; |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'dev/action/sitemapkickstarter/assets/fm_act_sitemapkickstarter.svg'; |
Type | Line | Description |
---|---|---|
12 | const ICON_PATH = 'core/action/svgvalidate/assets/fm_act_svgvalidate.svg'; | |
42 | i', $file)) { | |
46 | continue; | |
50 | echo $file; | |
60 | convertsvg2png modifications ... | |
63 | Template parser modifications ... | |
65 | remove xml doc header (not valid for inline) |
Type | Line | Description |
---|---|---|
98 | Fuman_Util_File::deleteDirectory($v); | |
103 | Fuman_Util_File::deleteDirectory($v); |
Type | Line | Description |
---|---|---|
42 | $displayName->getText($record) == $uniqueName->getText($record) |
Type | Line | Description |
---|---|---|
6 | #fuman_page:1"' | |
7 | #fuman_page:1/"' | |
8 | #fuman_page:1/de"' | |
9 | #fuman_page:1/de/"' | |
10 | #fuman_page:1/de/asdfasdf"' | |
11 | google.ch"' | |
12 | google.ch/fuman://#fuman_page:1"' | |
15 | )(?:(\#fuman_page\:\d+)(?:/([a-z]{2,5}))?|.*))\1~isU'); | |
19 | )(\#fuman_page\:\d+)(?:/([a-z]{2,5}))?)\1~is'); | |
23 | )(?:(\#fuman_page\:\d+)(?:/([a-z]{2,5}))?|.*))\1~isU','_decodePageUriF'); | |
27 | )(\#fuman_page\:\d+)(?:/([a-z]{2,5}))?)\1~is','_decodePageUriB'); | |
35 | fronted; |
Type | Line | Description |
---|---|---|
12 | const ICON_PATH = 'dev/action/phtmlvalidate/assets/fm_act_phtmlvalidate.svg'; | |
81 | echo $phtmlFile; | |
90 | xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8'); | |
94 | create closing xml tags <...> => <.../> | |
96 | convert to xhtml <.../> => <...></...> | |
98 | wrap with phtml root | |
108 | Not errors => validate by validator.nu web-service | |
111 | Fix charset | |
113 | ="{...}" => ="x" | |
115 | Fix lang= | |
117 | Fix type= | |
119 | Fix header | |
121 | Prepare data | |
123 | Fix ="x" | |
125 | Fix data-= | |
128 | Add html5 header | |
141 | Fuman_Util_Logger::trace('htmlData',$htmlData); | |
143 | validator.nu/'); | |
164 | Fuman_Util_Logger::trace('htmlData:'.$phtmlFile,$htmlData); | |
169 | Check that src/href ist extended by crc32Version | |
173 | a href | |
176 | javascript | |
179 | only {...} | |
182 | absolute path | |
183 | i', $match[3])) { | |
185 | {config:crc32Version} not set | |
208 | escape {,},[ and ] | |
246 | strip <!doctype html> => no memory error | |
251 | create tags from <{abc} and </{abc} | |
255 | strip {...}, [ and ] | |
258 | strip html entities | |
261 | strip fragment SPACE="" |
Type | Line | Description |
---|---|---|
108 | update column name | |
115 | update inputTypeConfigs | |
140 | update database | |
151 | finally save all changed records; |
Type | Line | Description |
---|---|---|
10 | const ICON_PATH = 'dev/action/tablecleanup/assets/fm_act_tablecleanup.svg'; | |
126 | add all tables to the row | |
150 | add mark all row |
Type | Line | Description |
---|---|---|
12 | const ICON_PATH = 'dev/action/phpvalidate/assets/fm_act_phpvalidate.svg'; | |
40 | $files = array_merge(Fuman_Util_File::findFiles('./app/', array('php')), Fuman_Util_File::findFiles('./library/Fuman/', array('php'))); | |
42 | $files = array('./library/Fuman/Db/Abstract.php'); | |
43 | $files = array('./test.php'); | |
56 | echo $file.'<br>'; | |
152 | echo $variableType; | |
160 | convert xxx[] into xxx|array | |
162 | Type does not match @param type | |
167 | @param does define a valid type which should be defined | |
180 | check if default in @param | |
210 | default value definition | |
218 | Hacky definition (type compatibility) | |
221 | var_dump($notNullTypes); | |
232 | object defintion is obsolete | |
237 | Check mixed | |
244 | var_dump($match); | |
251 | Check return | |
265 | Mixed check | |
273 | $errs[] = 'return not defined'; |