From cc61c2d74e151a7fb75303f8740edfe74cdd9eb8 Mon Sep 17 00:00:00 2001
From: wei <>
Date: Thu, 11 May 2006 11:35:35 +0000
Subject: Update api docs and add API search
---
.gitattributes | 14 ++-
buildscripts/index/api_index.php | 120 +++++++++++++++++++++
buildscripts/index/build.php | 65 +++++++++++
buildscripts/index/quickstart_index.php | 109 +++++++++++++++++++
buildscripts/texbuilder/build.php | 116 ++------------------
buildscripts/texbuilder/create_index.php | 90 ----------------
buildscripts/texbuilder/pages.php | 100 +++++++++++++++++
demos/quickstart/protected/application.xml | 7 +-
demos/quickstart/protected/index/ZendSearch.php | 11 +-
demos/quickstart/protected/index/api/_0.cfs | Bin 0 -> 378721 bytes
demos/quickstart/protected/index/api/deletable | Bin 0 -> 4 bytes
demos/quickstart/protected/index/api/segments | Bin 0 -> 27 bytes
demos/quickstart/protected/index/data/_0.cfs | Bin 329302 -> 0 bytes
demos/quickstart/protected/index/data/deletable | Bin 4 -> 0 bytes
demos/quickstart/protected/index/data/segments | Bin 27 -> 0 bytes
demos/quickstart/protected/index/quickstart/_0.cfs | Bin 0 -> 329302 bytes
.../protected/index/quickstart/deletable | Bin 0 -> 4 bytes
.../quickstart/protected/index/quickstart/segments | Bin 0 -> 27 bytes
demos/quickstart/protected/pages/Search.page | 29 ++++-
demos/quickstart/protected/pages/Search.php | 14 ++-
demos/quickstart/themes/PradoSoft/style.css | 18 ++++
framework/I18N/TGlobalizationAutoDetect.php | 20 +++-
framework/I18N/core/CultureInfo.php | 2 +-
framework/I18N/core/MessageSource.php | 2 +-
framework/TComponent.php | 2 +-
framework/Util/TDataFieldAccessor.php | 2 +-
framework/Web/Javascripts/TJSON.php | 1 -
framework/Web/TAssetManager.php | 3 +-
framework/Web/THttpResponse.php | 2 +-
framework/Web/THttpSession.php | 10 +-
framework/Web/UI/WebControls/TBaseValidator.php | 3 +-
framework/Web/UI/WebControls/TMultiView.php | 2 +-
32 files changed, 512 insertions(+), 230 deletions(-)
create mode 100644 buildscripts/index/api_index.php
create mode 100644 buildscripts/index/build.php
create mode 100644 buildscripts/index/quickstart_index.php
delete mode 100644 buildscripts/texbuilder/create_index.php
create mode 100644 buildscripts/texbuilder/pages.php
create mode 100644 demos/quickstart/protected/index/api/_0.cfs
create mode 100644 demos/quickstart/protected/index/api/deletable
create mode 100644 demos/quickstart/protected/index/api/segments
delete mode 100644 demos/quickstart/protected/index/data/_0.cfs
delete mode 100644 demos/quickstart/protected/index/data/deletable
delete mode 100644 demos/quickstart/protected/index/data/segments
create mode 100644 demos/quickstart/protected/index/quickstart/_0.cfs
create mode 100644 demos/quickstart/protected/index/quickstart/deletable
create mode 100644 demos/quickstart/protected/index/quickstart/segments
diff --git a/.gitattributes b/.gitattributes
index 7bf71c30..7e3db62b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -4,6 +4,9 @@
/UPGRADE -text
/build.xml -text
buildscripts/.htaccess -text
+buildscripts/index/api_index.php -text
+buildscripts/index/build.php -text
+buildscripts/index/quickstart_index.php -text
buildscripts/jsbuilder/JavaScript[!!-~]Documentation[!!-~]Tool.html -text
buildscripts/jsbuilder/build.php -text
buildscripts/jsbuilder/jsmin.php -text
@@ -19,7 +22,7 @@ buildscripts/phing/tasks/ZendCodeAnalyzerTask.php -text
buildscripts/phpbuilder/build.php -text
buildscripts/setup.php -text
buildscripts/texbuilder/build.php -text
-buildscripts/texbuilder/create_index.php -text
+buildscripts/texbuilder/pages.php -text
buildscripts/texbuilder/prado3_quick_start.tex -text
demos/composer/index.php -text
demos/composer/index2.php -text
@@ -112,9 +115,12 @@ demos/quickstart/protected/index/Zend/Search/Lucene/Storage/File.php -text
demos/quickstart/protected/index/Zend/Search/Lucene/Storage/File/Filesystem.php -text
demos/quickstart/protected/index/Zend/Search/TODO.txt -text
demos/quickstart/protected/index/ZendSearch.php -text
-demos/quickstart/protected/index/data/_0.cfs -text
-demos/quickstart/protected/index/data/deletable -text
-demos/quickstart/protected/index/data/segments -text
+demos/quickstart/protected/index/api/_0.cfs -text
+demos/quickstart/protected/index/api/deletable -text
+demos/quickstart/protected/index/api/segments -text
+demos/quickstart/protected/index/quickstart/_0.cfs -text
+demos/quickstart/protected/index/quickstart/deletable -text
+demos/quickstart/protected/index/quickstart/segments -text
demos/quickstart/protected/pages/Advanced/Assets.page -text
demos/quickstart/protected/pages/Advanced/Auth.page -text
demos/quickstart/protected/pages/Advanced/Error.page -text
diff --git a/buildscripts/index/api_index.php b/buildscripts/index/api_index.php
new file mode 100644
index 00000000..ac2e37a7
--- /dev/null
+++ b/buildscripts/index/api_index.php
@@ -0,0 +1,120 @@
+_api = $api;
+ $this->_index = new Zend_Search_Lucene($index_file, true);
+
+
+ }
+
+ function create_index()
+ {
+ echo "Building search index...\n";
+ $files = $this->get_file_list($this->_api);
+ $count = 0;
+ foreach($files as $file)
+ {
+ $content = $this->get_details($file, $this->_api);
+
+ $doc = new Zend_Search_Lucene_Document();
+
+ $title = $content['namespace'].'.'.$content['class'];
+
+ echo " Adding ".$title."\n";
+
+ //unsearchable text
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed('link', $content['link']));
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed('title', $title));
+ //$doc->addField(Zend_Search_Lucene_Field::UnIndexed('text', $content['content']));
+
+ //searchable
+ $body = strtolower($this->sanitize($content['content'])).' '.strtolower($title);
+ $doc->addField(Zend_Search_Lucene_Field::Keyword('page', strtolower(str_replace('.',' ',$title))));
+ $doc->addField(Zend_Search_Lucene_Field::Unstored('contents',$body));
+ $this->_index->addDocument($doc);
+ $count++;
+ }
+ $this->_index->commit();
+ echo "\n {$count} files indexed.\n";
+ }
+
+ function sanitize($input)
+ {
+ return htmlentities(strip_tags( $input ));
+ }
+
+
+ function get_file_list($path)
+ {
+
+ $d = dir($path);
+
+ $files = array();
+ while (false !== ($entry = $d->read()))
+ {
+ $filepath = $path.'/'.$entry;
+
+ if(is_dir($filepath) && is_int(strpos($entry, 'System')))
+ {
+ $files = array_merge($files, $this->get_files($filepath));
+ }
+ }
+
+ $d->close();
+ return $files;
+ }
+
+ function get_files($path)
+ {
+ $d = dir($path);
+
+ $files = array();
+ while (false !== ($entry = $d->read()))
+ {
+ $filepath = $path.'/'.$entry;
+ if(is_file($filepath) && $entry[0] !== '_')
+ $files[] = realpath($filepath);
+ }
+ return $files;
+ $d->close();
+ }
+
+ function get_doc_content($file)
+ {
+ $content = file_get_contents($file);
+ $html = preg_replace('/
/','~~~', $content);
+ $html = preg_replace('/[\s\w\W\S]+/m', '', $html);
+ $html = preg_replace('/ |~+|\s{2,}/',' ',$html);
+ $html = preg_replace('/\s{2,}/',' ',$html);
+ $text = strip_tags($html);
+ $text = str_replace(' , ',', ',$text);
+ return $text;
+ }
+
+ function get_details($file, $base)
+ {
+ $result['content'] = $this->get_doc_content($file);
+ $find = array($base, '.html', '-');
+ $replace = array('', '', '.');
+ $path = preg_split('/\/|\\\/', str_replace($find, $replace, $file));
+ $result['namespace'] = $path[1];
+ $result['class'] = $path[2];
+ $result['link'] = self::API_URL.$path[1].'/'.$path[2].'.html';
+ return $result;
+ }
+}
+
+
+?>
\ No newline at end of file
diff --git a/buildscripts/index/build.php b/buildscripts/index/build.php
new file mode 100644
index 00000000..9ec0d659
--- /dev/null
+++ b/buildscripts/index/build.php
@@ -0,0 +1,65 @@
+create_index();
+ }
+ else if(strtolower($argv[1]) == "api")
+ {
+ $api = new api_index($api_target, $api_source);
+ $api->create_index();
+ }
+ else
+ {
+ $q = new Zend_Search_Lucene($quickstart_target);
+ $query = $argv[1];
+ $hits = $q->find(strtolower($query));
+ echo "Found ".count($hits)." for ".$query." in quick start\n";
+ foreach($hits as $hit)
+ echo " ".$hit->title."\n";
+
+ $a = new Zend_Search_Lucene($api_target);
+ $query = $argv[1];
+ $hits = $a->find(strtolower($query));
+ echo "\nFound ".count($hits)." for ".$query." in API\n";
+ foreach($hits as $hit)
+ {
+ echo " ".$hit->link."\n";
+ }
+ }
+}
+else
+{
+ echo "Usage: 'php build.php quickstart' or 'php build.php api'\n";
+}
+
+?>
\ No newline at end of file
diff --git a/buildscripts/index/quickstart_index.php b/buildscripts/index/quickstart_index.php
new file mode 100644
index 00000000..565734ef
--- /dev/null
+++ b/buildscripts/index/quickstart_index.php
@@ -0,0 +1,109 @@
+_index = new Zend_Search_Lucene($index_file, true);
+ $this->_dir = $index_file;
+ $this->_base = $base;
+ $this->_source = $source;
+ }
+
+ public function create_index()
+ {
+ echo "Building search index...\n";
+ $pages = include($this->_source);
+ $count = 0;
+ foreach($pages as $chapter => $sections)
+ {
+ foreach($sections as $section)
+ {
+ echo " Adding $section\n";
+ $page = $this->_base.'/'.$section;
+ $file_content = file_get_contents($page);
+ $this->add($file_content,$section, filemtime($page));
+ $count++;
+ }
+ }
+
+ $this->_index->commit();
+ echo "\n {$count} files indexed.\n";
+ }
+
+ public function add($content, $section, $mtime)
+ {
+ foreach($this->split_headings($content) as $headers)
+ {
+ $doc = new Zend_Search_Lucene_Document();
+ $link = "index.php?page=".preg_replace('/\/|\\\/', '.', $section);
+ $link = str_replace('.page', '', $link).'#'.$headers['section'];
+
+ //unsearchable text
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed('link', $link));
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed('mtime', $mtime));
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed('title', $headers['title']));
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed('text', $headers['content']));
+
+ //searchable text
+ $doc->addField(Zend_Search_Lucene_Field::Keyword('page', strtolower($headers['title'])));
+ $body = strtolower($this->sanitize($headers['content'])).' '.strtolower($headers['title']);
+ $doc->addField(Zend_Search_Lucene_Field::Unstored('contents',$body));
+ $this->_index->addDocument($doc);
+ }
+ }
+
+ function sanitize($input)
+ {
+ return htmlentities(strip_tags( $input ));
+ }
+
+ public function index()
+ {
+ return $this->_index;
+ }
+
+ protected function split_headings($html)
+ {
+ $html = preg_replace('/<\/?com:TContent[^<]*>/', '', $html);
+
+ $html = preg_replace('/([^<]*)<\/b>/', '$1', $html);
+ $html = preg_replace('/([^<]*)<\/i>/', '$1', $html);
+ $html = preg_replace('/([^<]*)<\/tt>/', '$1', $html);
+
+ $html = preg_replace('/]*)>([^<]*)<\/h1>/', '$2', $html);
+ $html = preg_replace('/]*)>([^<]*)<\/h2>/', '$2', $html);
+ $html = preg_replace('/]*)>([^<]*)<\/h3>/', '$2', $html);
+
+
+ $sections = preg_split('/]*>([^<]+)<\/hh>/', $html,-1);
+ $headers = array();
+ preg_match_all('/]*)>([^<]+)<\/hh>/', $html, $headers);
+ $contents = array();
+ for($i = 1, $t = count($sections); $i < $t; $i++)
+ {
+ $content['title'] = trim($this->sanitize($headers[2][$i-1]));
+ $sec = array();
+ preg_match('/"([^"]*)"/', $headers[1][$i-1], $sec);
+ $content['section'] = str_replace('"', '',$sec[0]);
+ $content['content'] = trim($this->sanitize($sections[$i]));
+ $contents[] = $content;
+ }
+
+ return $contents;
+ }
+
+ public function commit()
+ {
+ $this->_index->commit();
+ $count = $this->_index->count();
+ echo "\nSaving search index ({$count}) to {$this->_dir}\n\n";
+ }
+}
+?>
\ No newline at end of file
diff --git a/buildscripts/texbuilder/build.php b/buildscripts/texbuilder/build.php
index f0556e3f..cbea9859 100644
--- a/buildscripts/texbuilder/build.php
+++ b/buildscripts/texbuilder/build.php
@@ -10,102 +10,9 @@ $mainTexFile = dirname(__FILE__).'/prado3_quick_start.tex';
//page root location
$base = realpath(dirname(__FILE__).'/../../demos/quickstart/protected/pages/');
-//search index data directory
-$index_dir = realpath(dirname(__FILE__).'/../../demos/quickstart/protected/index/data/');
-
-
-//list page into chapters
-$pages['Getting Started'] = array(
- 'GettingStarted/Introduction.page',
- 'GettingStarted/AboutPrado.page',
- 'GettingStarted/Installation.page',
- 'GettingStarted/HelloWorld.page',
- 'GettingStarted/Upgrading.page'
- );
-
-$pages['Fundamentals'] = array(
- 'Fundamentals/Architecture.page',
- 'Fundamentals/Components.page',
- 'Fundamentals/Controls.page',
- 'Fundamentals/Pages.page',
- 'Fundamentals/Modules.page',
- 'Fundamentals/Services.page',
- 'Fundamentals/Applications.page',
- 'Fundamentals/Hangman.page');
-
-$pages['Configurations'] = array(
- 'Configurations/Overview.page',
- 'Configurations/Templates1.page',
- 'Configurations/Templates2.page',
- 'Configurations/Templates3.page',
- 'Configurations/AppConfig.page',
- 'Configurations/PageConfig.page');
-
-$pages['Control Reference : Standard Controls'] = array(
- 'Controls/Button.page',
- 'Controls/CheckBox.page',
- 'Controls/ColorPicker.page',
- 'Controls/DatePicker.page',
- 'Controls/Expression.page',
- 'Controls/FileUpload.page',
- 'Controls/Head.page',
- 'Controls/HiddenField.page',
- 'Controls/HtmlArea.page',
- 'Controls/HyperLink.page',
- 'Controls/ImageButton.page',
- 'Controls/ImageMap.page',
- 'Controls/Image.page',
- 'Controls/InlineFrame.page',
- 'Controls/JavascriptLogger.page',
- 'Controls/Label.page',
- 'Controls/LinkButton.page',
- 'Controls/Literal.page',
- 'Controls/MultiView.page',
- 'Controls/Panel.page',
- 'Controls/PlaceHolder.page',
- 'Controls/RadioButton.page',
- 'Controls/SafeHtml.page',
- 'Controls/Statements.page',
- 'Controls/Table.page',
- 'Controls/TextBox.page',
- 'Controls/TextHighlighter.page',
- 'Controls/Wizard.page');
-
-$pages['Control Reference : List Controls'] = array(
- 'Controls/List.page');
-
-$pages['Control Reference : Validation Controls'] = array(
- 'Controls/Validation.page');
-
-$pages['Control Reference : Data Controls'] = array(
- 'Controls/Data.page',
- 'Controls/DataList.page',
- 'Controls/DataGrid.page',
- 'Controls/Repeater.page');
-
-$pages['Write New Controls'] = array(
- 'Controls/NewControl.page');
-
-$pages['Advanced Topics'] = array(
- 'Advanced/Auth.page',
- 'Advanced/Security.page',
- 'Advanced/Assets.page',
- 'Advanced/MasterContent.page',
- 'Advanced/Themes.page',
- 'Advanced/State.page',
- 'Advanced/Logging.page',
- 'Advanced/I18N.page',
- 'Advanced/Error.page',
- 'Advanced/Performance.page');
-
-$pages['Client-side Scripting'] = array(
- 'Advanced/Scripts.page',
- 'Advanced/Scripts1.page',
- 'Advanced/Scripts2.page',
- 'Advanced/Scripts3.page');
-
//-------------- END CONFIG ------------------
+$pages = include('pages.php');
function escape_verbatim($matches)
{
@@ -259,9 +166,9 @@ function parse_html($page,$html)
$html = preg_replace('/<\/li>/', '', $html);
//headings
- $html = preg_replace('/([^<]+)<\/h1>/', '\section{$1}', $html);
- $html = preg_replace('/([^<]+)<\/h2>/', '\subsection{$1}', $html);
- $html = preg_replace('/([^<]+)<\/h3>/', '\subsubsection{$1}', $html);
+ $html = preg_replace('/([^<]+)<\/h1>/', '\section{$1}', $html);
+ $html = preg_replace('/([^<]+)<\/h2>/', '\subsection{$1}', $html);
+ $html = preg_replace('/([^<]+)<\/h3>/', '\subsubsection{$1}', $html);
@@ -318,8 +225,8 @@ $header_count = 0;
//--------------- Indexer -------------------
-require_once('create_index.php');
-$indexer = new quickstart_index($index_dir);
+//require_once('create_index.php');
+//$indexer = new quickstart_index($index_dir);
// ---------------- Create the Tex files ---------
$count = 1;
@@ -339,14 +246,13 @@ foreach($pages as $chapter => $sections)
$current_path = $page;
//add id to , , <3>
- $content = set_header_id(file_get_contents($page),$j++);
- file_put_contents($page, $content);
+ $tmp_content = set_header_id(file_get_contents($page),$j++);
+ file_put_contents($page, $tmp_content);
$content .= get_section_label($section);
$file_content = file_get_contents($page);
- $tex = parse_html($page,$file_content);
- $content .= $tex;
- $indexer->add($file_content,$section, filemtime($page));
+ $tex =
+ $content .= parse_html($page,$file_content);
}
//var_dump($content);
@@ -355,7 +261,7 @@ foreach($pages as $chapter => $sections)
echo "\n";
}
-$indexer->commit();
+//$indexer->commit();
if($argc <= 1 && $count > 1)
{
diff --git a/buildscripts/texbuilder/create_index.php b/buildscripts/texbuilder/create_index.php
deleted file mode 100644
index b451473d..00000000
--- a/buildscripts/texbuilder/create_index.php
+++ /dev/null
@@ -1,90 +0,0 @@
-_index = new Zend_Search_Lucene($index_file, true);
- $this->_dir = $index_file;
- echo "Building search index...\n";
- }
-
- public function add($content, $section, $mtime)
- {
- foreach($this->split_headings($content) as $headers)
- {
- $doc = new Zend_Search_Lucene_Document();
- $link = "index.php?page=".preg_replace('/\/|\\\/', '.', $section);
- $link = str_replace('.page', '', $link).'#'.$headers['section'];
-
- //unsearchable text
- $doc->addField(Zend_Search_Lucene_Field::UnIndexed('link', $link));
- $doc->addField(Zend_Search_Lucene_Field::UnIndexed('mtime', $mtime));
- $doc->addField(Zend_Search_Lucene_Field::UnIndexed('title', $headers['title']));
- $doc->addField(Zend_Search_Lucene_Field::UnIndexed('text', $headers['content']));
-
- //searchable text
- $doc->addField(Zend_Search_Lucene_Field::Keyword('page', strtolower($headers['title'])));
- $body = strtolower($this->sanitize($headers['content'])).' '.strtolower($headers['title']);
- $doc->addField(Zend_Search_Lucene_Field::Unstored('contents',$body));
- $this->_index->addDocument($doc);
- }
- }
-
- function sanitize($input)
- {
- return htmlentities(strip_tags( $input ));
- }
-
- public function index()
- {
- return $this->_index;
- }
-
- protected function split_headings($html)
- {
- $html = preg_replace('/<\/?com:TContent[^<]*>/', '', $html);
-
- $html = preg_replace('/([^<]*)<\/b>/', '$1', $html);
- $html = preg_replace('/([^<]*)<\/i>/', '$1', $html);
- $html = preg_replace('/([^<]*)<\/tt>/', '$1', $html);
-
- $html = preg_replace('/]*)>([^<]*)<\/h1>/', '$2', $html);
- $html = preg_replace('/]*)>([^<]*)<\/h2>/', '$2', $html);
- $html = preg_replace('/]*)>([^<]*)<\/h3>/', '$2', $html);
-
-
- $sections = preg_split('/]*>([^<]+)<\/hh>/', $html,-1);
- $headers = array();
- preg_match_all('/]*)>([^<]+)<\/hh>/', $html, $headers);
- $contents = array();
- for($i = 1, $t = count($sections); $i < $t; $i++)
- {
- $content['title'] = trim($this->sanitize($headers[2][$i-1]));
- $sec = array();
- preg_match('/"([^"]*)"/', $headers[1][$i-1], $sec);
- $content['section'] = str_replace('"', '',$sec[0]);
- $content['content'] = trim($this->sanitize($sections[$i]));
- $contents[] = $content;
- }
-
- return $contents;
- }
-
- public function commit()
- {
- $this->_index->commit();
- $count = $this->_index->count();
- echo "\nSaving search index ({$count}) to {$this->_dir}\n\n";
- }
-}
-?>
\ No newline at end of file
diff --git a/buildscripts/texbuilder/pages.php b/buildscripts/texbuilder/pages.php
new file mode 100644
index 00000000..c55747c6
--- /dev/null
+++ b/buildscripts/texbuilder/pages.php
@@ -0,0 +1,100 @@
+
\ No newline at end of file
diff --git a/demos/quickstart/protected/application.xml b/demos/quickstart/protected/application.xml
index abac1088..fed0ec22 100644
--- a/demos/quickstart/protected/application.xml
+++ b/demos/quickstart/protected/application.xml
@@ -10,9 +10,12 @@
-->
-
+ IndexDataDirectory="Application.index.quickstart" />
+
diff --git a/demos/quickstart/protected/index/ZendSearch.php b/demos/quickstart/protected/index/ZendSearch.php
index 136004de..ec15729c 100644
--- a/demos/quickstart/protected/index/ZendSearch.php
+++ b/demos/quickstart/protected/index/ZendSearch.php
@@ -26,10 +26,13 @@ class ZendSearch extends TModule
protected function importZendNamespace()
{
- $zendBase = !is_null($this->_ZF) ? $this->_ZF.'.*' : 'Application.index.*';
- $path = !is_null($this->_ZF) ? $this->_ZF.'.Zend.*' : 'Application.index.Zend.*';
- Prado::using($zendBase);
- Prado::setPathOfAlias('Zend', Prado::getPathOfNamespace($path));
+ if(is_null(Prado::getPathOfAlias('Zend')))
+ {
+ $zendBase = !is_null($this->_ZF) ? $this->_ZF.'.*' : 'Application.index.*';
+ $path = !is_null($this->_ZF) ? $this->_ZF.'.Zend.*' : 'Application.index.Zend.*';
+ Prado::using($zendBase);
+ Prado::setPathOfAlias('Zend', Prado::getPathOfNamespace($path));
+ }
}
protected function getZendSearch()
diff --git a/demos/quickstart/protected/index/api/_0.cfs b/demos/quickstart/protected/index/api/_0.cfs
new file mode 100644
index 00000000..b5eb219b
Binary files /dev/null and b/demos/quickstart/protected/index/api/_0.cfs differ
diff --git a/demos/quickstart/protected/index/api/deletable b/demos/quickstart/protected/index/api/deletable
new file mode 100644
index 00000000..593f4708
Binary files /dev/null and b/demos/quickstart/protected/index/api/deletable differ
diff --git a/demos/quickstart/protected/index/api/segments b/demos/quickstart/protected/index/api/segments
new file mode 100644
index 00000000..da225127
Binary files /dev/null and b/demos/quickstart/protected/index/api/segments differ
diff --git a/demos/quickstart/protected/index/data/_0.cfs b/demos/quickstart/protected/index/data/_0.cfs
deleted file mode 100644
index f3cb1bfb..00000000
Binary files a/demos/quickstart/protected/index/data/_0.cfs and /dev/null differ
diff --git a/demos/quickstart/protected/index/data/deletable b/demos/quickstart/protected/index/data/deletable
deleted file mode 100644
index 593f4708..00000000
Binary files a/demos/quickstart/protected/index/data/deletable and /dev/null differ
diff --git a/demos/quickstart/protected/index/data/segments b/demos/quickstart/protected/index/data/segments
deleted file mode 100644
index 5509e664..00000000
Binary files a/demos/quickstart/protected/index/data/segments and /dev/null differ
diff --git a/demos/quickstart/protected/index/quickstart/_0.cfs b/demos/quickstart/protected/index/quickstart/_0.cfs
new file mode 100644
index 00000000..f3cb1bfb
Binary files /dev/null and b/demos/quickstart/protected/index/quickstart/_0.cfs differ
diff --git a/demos/quickstart/protected/index/quickstart/deletable b/demos/quickstart/protected/index/quickstart/deletable
new file mode 100644
index 00000000..593f4708
Binary files /dev/null and b/demos/quickstart/protected/index/quickstart/deletable differ
diff --git a/demos/quickstart/protected/index/quickstart/segments b/demos/quickstart/protected/index/quickstart/segments
new file mode 100644
index 00000000..5509e664
Binary files /dev/null and b/demos/quickstart/protected/index/quickstart/segments differ
diff --git a/demos/quickstart/protected/pages/Search.page b/demos/quickstart/protected/pages/Search.page
index d2aee66e..d3391222 100644
--- a/demos/quickstart/protected/pages/Search.page
+++ b/demos/quickstart/protected/pages/Search.page
@@ -3,10 +3,29 @@
-
+
+
+
+
+
+
+
+
+
+
+
@@ -20,9 +39,9 @@
<%# $this->Page->HighlightSearch($this->DataItem->text) %>
-
- Unable to find "<%= htmlentities($this->Page->search->Text) %>".
-
+
+ No results available for "<%= htmlentities($this->Page->search->Text) %>".
+
\ No newline at end of file
diff --git a/demos/quickstart/protected/pages/Search.php b/demos/quickstart/protected/pages/Search.php
index c7bdce89..297d2f50 100644
--- a/demos/quickstart/protected/pages/Search.php
+++ b/demos/quickstart/protected/pages/Search.php
@@ -9,9 +9,17 @@ class Search extends TPage
{
if(!$this->IsPostBack && strlen($text = $this->search->getText()) > 0)
{
- $search = $this->getApplication()->getModule("search");
- $this->results->setDataSource($search->find($text));
- $this->results->dataBind();
+ $quickstart = $this->getApplication()->getModule("quickstart_search");
+ $hits_1 = $quickstart->find($text);
+ $this->quickstart_results->setDataSource($hits_1);
+ $this->quickstart_results->dataBind();
+
+ $api = $this->getApplication()->getModule("api_search");
+ $hits_2 = $api->find($text);
+ $this->api_results->setDataSource($hits_2);
+ $this->api_results->dataBind();
+
+ $this->emptyResult->setVisible(count($hits_1)+count($hits_2) == 0);
}
}
diff --git a/demos/quickstart/themes/PradoSoft/style.css b/demos/quickstart/themes/PradoSoft/style.css
index 38ef5375..3bf73c80 100644
--- a/demos/quickstart/themes/PradoSoft/style.css
+++ b/demos/quickstart/themes/PradoSoft/style.css
@@ -364,4 +364,22 @@ dd
.searchterm
{
font-weight: bold;
+}
+
+.searchAPIItem
+{
+ margin-top: 5px;
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+.searchHeader, .emptyResult
+{
+ margin-top: 30px;
+}
+
+.empty_search_result
+{
+ text-align: center;
+ margin: 30px;
}
\ No newline at end of file
diff --git a/framework/I18N/TGlobalizationAutoDetect.php b/framework/I18N/TGlobalizationAutoDetect.php
index 3d550a62..7393d79a 100644
--- a/framework/I18N/TGlobalizationAutoDetect.php
+++ b/framework/I18N/TGlobalizationAutoDetect.php
@@ -1,15 +1,27 @@
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright © 2005 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @version $Revision: 1.66 $ $Date: ${DATE} ${TIME} $
+ * @package System.I18N
+ */
+/**
+ * Import the HTTPNeogtiator
+ */
Prado::using('System.I18N.core.HTTPNegotiator');
/**
- * ${classname}
- *
- * ${description}
+ * TGlobalizationAutoDetect class will automatically try to resolve the default
+ * culture using the user browser language settings.
*
* @author Wei Zhuo
* @version $Revision: 1.66 $ $Date: ${DATE} ${TIME} $
- * @package ${package}
+ * @package System.I18N
*/
class TGlobalizationAutoDetect extends TGlobalization
{
diff --git a/framework/I18N/core/CultureInfo.php b/framework/I18N/core/CultureInfo.php
index fe2c45e6..299a8b16 100644
--- a/framework/I18N/core/CultureInfo.php
+++ b/framework/I18N/core/CultureInfo.php
@@ -161,7 +161,7 @@ class CultureInfo
* Initializes a new instance of the CultureInfo class based on the
* culture specified by name. E.g. new CultureInfo('en_AU');
* The culture indentifier must be of the form
- * "_(country/region/variant)".
+ * "language_(country/region/variant)".
* @param string a culture name, e.g. "en_AU".
* @return return new CultureInfo.
*/
diff --git a/framework/I18N/core/MessageSource.php b/framework/I18N/core/MessageSource.php
index d69a13d9..6563f8c9 100644
--- a/framework/I18N/core/MessageSource.php
+++ b/framework/I18N/core/MessageSource.php
@@ -121,7 +121,7 @@ abstract class MessageSource implements IMessageSource
* @param string the location of the resource.
* @param string the filename of the custom message source.
* @return MessageSource a new message source of the specified type.
- * @throw InvalidMessageSourceTypeException
+ * @throws InvalidMessageSourceTypeException
*/
static function &factory($type, $source='.', $filename='')
{
diff --git a/framework/TComponent.php b/framework/TComponent.php
index 64854692..5501f137 100644
--- a/framework/TComponent.php
+++ b/framework/TComponent.php
@@ -397,7 +397,7 @@ class TComponent
* Evaluates a list of PHP statements.
* @param string PHP statements
* @return string content echoed or printed by the PHP statements
- * @throw TInvalidOperationException if the statements are invalid
+ * @throws TInvalidOperationException if the statements are invalid
*/
public function evaluateStatements($statements)
{
diff --git a/framework/Util/TDataFieldAccessor.php b/framework/Util/TDataFieldAccessor.php
index 09512a28..6af972e9 100644
--- a/framework/Util/TDataFieldAccessor.php
+++ b/framework/Util/TDataFieldAccessor.php
@@ -46,7 +46,7 @@ class TDataFieldAccessor
* @param mixed data containing the field value, can be an array, TMap, TList or object.
* @param mixed field value
* @return mixed value at the specified field
- * @throw TInvalidDataValueException if field or data is invalid
+ * @throws TInvalidDataValueException if field or data is invalid
*/
public static function getDataFieldValue($data,$field)
{
diff --git a/framework/Web/Javascripts/TJSON.php b/framework/Web/Javascripts/TJSON.php
index e653264b..63f77b40 100644
--- a/framework/Web/Javascripts/TJSON.php
+++ b/framework/Web/Javascripts/TJSON.php
@@ -45,7 +45,6 @@
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
-* @category
* @package System.Web.Javascripts
* @author Michal Migurski
* @author Matt Knapp
diff --git a/framework/Web/TAssetManager.php b/framework/Web/TAssetManager.php
index deae32ff..9a4ad3e5 100644
--- a/framework/Web/TAssetManager.php
+++ b/framework/Web/TAssetManager.php
@@ -148,7 +148,8 @@ class TAssetManager extends TModule
* @param boolean If true, file modification time will be checked even if the application
* is in performance mode.
* @return string an absolute URL to the published directory
- * @throw TInvalidDataValueException if the file path to be published is invalid
+ * @throws TInvalidDataValueException if the file path to be published is
+ * invalid
*/
public function publishFilePath($path,$checkTimestamp=false)
{
diff --git a/framework/Web/THttpResponse.php b/framework/Web/THttpResponse.php
index ce4bf4b1..582a3db3 100644
--- a/framework/Web/THttpResponse.php
+++ b/framework/Web/THttpResponse.php
@@ -129,7 +129,7 @@ class THttpResponse extends TModule implements ITextWriter
}
/**
- * @string content type, default is text/html
+ * @return string content type, default is text/html
*/
public function setContentType($type)
{
diff --git a/framework/Web/THttpSession.php b/framework/Web/THttpSession.php
index fa53022d..13526dd1 100644
--- a/framework/Web/THttpSession.php
+++ b/framework/Web/THttpSession.php
@@ -45,14 +45,16 @@
* request module. It can be accessed via {@link TApplication::getSession()}.
*
* THttpSession may be configured in application configuration file as follows,
+ *
*
+ *
* where {@link getSessionName SessionName}, {@link getSavePath SavePath},
- * {@link getCookieMode CookieMode}, {@link getUseCustomStorage UseCustomStorage},
- * {@link getAutoStart AutoStart}, {@link getGCProbability GCProbability},
- * {@link getUseTransparentSessionID UseTransparentSessionID} and
- * {@link getTimeOut TimeOut} are configurable properties of THttpSession.
+ * {@link getCookieMode CookieMode}, {@link getUseCustomStorage
+ * UseCustomStorage}, {@link getAutoStart AutoStart}, {@link getGCProbability
+ * GCProbability}, {@link getUseTransparentSessionID UseTransparentSessionID}
+ * and {@link getTimeOut TimeOut} are configurable properties of THttpSession.
*
* @author Qiang Xue
* @version $Revision: $ $Date: $
diff --git a/framework/Web/UI/WebControls/TBaseValidator.php b/framework/Web/UI/WebControls/TBaseValidator.php
index ea1a5836..8fcba1c2 100644
--- a/framework/Web/UI/WebControls/TBaseValidator.php
+++ b/framework/Web/UI/WebControls/TBaseValidator.php
@@ -414,7 +414,8 @@ abstract class TBaseValidator extends TLabel implements IValidator
/**
* @return TControl control to be validated. Null if no control is found.
- * @throw TConfigurationException if {@link getControlToValidate ControlToValidate} is empty or does not point to a valid control
+ * @throws TConfigurationException if {@link getControlToValidate
+ * ControlToValidate} is empty or does not point to a valid control
*/
protected function getValidationTarget()
{
diff --git a/framework/Web/UI/WebControls/TMultiView.php b/framework/Web/UI/WebControls/TMultiView.php
index 6dd0d8f1..59b9f53d 100644
--- a/framework/Web/UI/WebControls/TMultiView.php
+++ b/framework/Web/UI/WebControls/TMultiView.php
@@ -369,7 +369,7 @@ class TView extends TControl
/**
* @param boolean
- * @throw TInvalidOperationException whenever this method is invoked.
+ * @throws TInvalidOperationException whenever this method is invoked.
*/
public function setVisible($value)
{
--
cgit v1.2.3