Preface:
After nearly N weeks of restructuring, the first version will be released. This version is absolutely lethal in terms of functionality, currently, it is difficult to find a blog that fully supports the functions supported by this blog.
However, the current version of blog is not complete enough. It only has the most basic functions and complete functions for further development.
Edit description:
To maintain normal demonstration and security: according to the tests we just made the following corrections:
A: fixed the page loading error caused by the "<>" tag on the blog.
B: The configuration file has disabled the error message output for exceptions caused by "'" added during login or registration.
C: Someone has logged on to my sample blog to change the article and delete the file. The Test password has been replaced from 123456. [From here, I found that my blog has missing the password modification function...-_-... Khan. I will add it at night and release the revised version before tomorrow.]
Welcome to continue the damage test.
I. Description of peripheral functions supported by this blog
1: Supported languages: Chinese/English/French/Japanese/Korean/German/Indian/Russian/Italian/+ custom 10 languages
Note:
Why are there 10, not N?
This is because this blog opens the language file to the artist, that is, the template producer is responsible for the translation of the language file, so we need to agree in advance.
How does an artist maintain multiple languages?
It is quite simple. It is html for the artist.
The unique age.html file is valid for front-end and back-end Translation: a line of translation is as follows:
<Div id = "china" eng = "China" cus = ""> Chinese </div>
The default value is "Chinese". Others: the first 3 letters of eng in english, the first 3 letters of cus in cus m, and other languages.
How can I use translation in other html files at will?
Example: In index.html: <a href = "sys/china" key = "china"> [Chinese: It will be replaced sooner or later. It doesn't matter what you write] </a>
If key = "china" is added to any tag, the corresponding built-in text will be translated by multiple languages.
Further details: the artist can develop it in the traditional development mode. Finally, you only need to add key = "language ID" to the translation area to implement the translation function.
How is the language converted?
Add the link <a href = "/lang/china"> to Chinese </a> ,: <a href = "/lang/english"> turn to E </a>
Therefore, to reserve 10 languages is to process 10 agreed links. Other links will be ignored. The following lists the supported 10 languages:
Public enum LanguageKey
{
/// <Summary>
/// Chinese
/// </Summary>
China,
/// <Summary>
/// English
/// </Summary>
English,
/// <Summary>
/// French
/// </Summary>
French,
/// <Summary>
/// German
/// </Summary>
German,
/// <Summary>
/// Korean
/// </Summary>
Korean,
/// <Summary>
/// Japanese
/// </Summary>
Japan,
/// <Summary>
/// Hindi
/// </Summary>
Hindi,
/// <Summary>
/// Russian
/// </Summary>
Russian,
/// <Summary>
/// Italian
/// </Summary>
Italian,
/// <Summary>
/// Custom language
/// </Summary>
Custom
}
2: Support for custom urls: directory-level redirection or custom redirection of any suffix
Note:
By default, directory-level URL rewriting is supported. If you need to customize the suffix, or you can only use the specified suffix to add or enable a configuration file line:
<! -- Enable redirection with a suffix Url -->
<Add key = "UrlAspx" value = ". shtml"/>
How do I use pure directory-level URL redirection? Like: http://www.cyqdata.com/cyq1162/article/detail/26
In IIS6, you need to add the generic ing extension. For website properties, go to main directory, go to configuration, and click ing to add the generic ing extension.
In IIS7, it seems that it is supported by default. You do not need to add ing extensions.
If you have bought a Virtual Token, you can use the extension iis6to support any suffix such as .shtml or. axd.
After setting, the access path only adds a suffix at the end of the Url.
3: multi-database support: supportedCYQ. Data frameworkSupported Databases
Note:
Currently, it supports Access, MSSQL series, Oracle, and other databases. You only need to change the database link of the configuration file instead of code.
<Deleetask>
<! -- Access database name [with relative path] -->
<Add key = "AccessDbNameForWeb" value = "myspace. mdb"/>
</AppSettings>
<ConnectionStrings>
<! -- Access Database Link example -->
<Add name = "Conn" connectionString = "Provider = Microsoft. Jet. OLEDB.4.0; Data Source = {0}" providerName = "System. Data. OleDb"/>
<! -- MSSQL database link example -->
<! -- <Add name = "Conn" connectionString = "server =.; database = myspace; uid = sa; pwd = 123456" providerName = "System. Data. SqlClient"/> -->
<! -- Oracle database link example -->
<! -- <Add name = "Conn" connectionString = "Provider = MSDAORA; Data Source = MySpace; User ID = sa; Password = 123456" providerName = "System. data. oracleClient "/> -->
</ConnectionStrings>
4. Domain Name support: supports the use of second-level domain names for multiplayer blogs
Note:
Websites support pan resolution to access websites such as: http://cyq1162.cyqdata.com equivalent to http://www.cyqdata.com/cyq1162
At the same time support the use of level 2 Use blog such as: http://blog.cyqdata.com/cyq1162
For this support, only one configuration file is required:
<! -- Whether to enable the second-level domain name as the blog domain name. If yes, myname.blog.cyqdata.com -->
<Add key = "Www" value = "blog"/>
5. Sub-directory support: All Sub-directories can be run in [virtual directories ].
Note:
No way, too poor. I only bought a virtual host, and the website is already on the host, but the host allows sub-directories.
At this time, sub-directories can also be used to open a multi-user blog and configure second-level domain names, which saves more money and effort.
For the virtual directory mode, add a configuration file:
<! -- Virtual directory name, which is set when the virtual directory [that is, subdirectory] is enabled. The last "/" is not added and does not affect the website creation. -->
<Add key = "VirtualPath" value = "cyqdata/"/>
6: High Performance
Note:
1: cache Improvement
Many people are very concerned about the overall performance. This blog has a built-in three-level cache:
Level-1 cache table structure: Just a few tables have little memory to cache
Level 2 Cache original artist html: cache original html saves html loading time, greatly improving the speed. At the same time, it uses the method of extracting common parts to cut off the same part of the code for processing, surpassing the performance.
Three-level cache page [configurable]: allows you to cache only required pages or modules for targeted purposes, saving memory.
2: html Compression
If you look at the html code, you will see html without space wrapping, greatly saving the size of the output html bytes.
7: Multi-skin support and production
Note:
Because I am not a professional artist, I can only provide a set of modules first. For users, I can make skin freely. I can make it first and then add it later.
That is, after the html page is created, add Key = "specified ID"
Fill in the corresponding content and find the corresponding ID to add.
The css skin and name provided by the system are completely ignored, and no css name or tag name is required.
The relevant guidance articles will be provided later.
8: supports custom languages
Note:
After making the Css module, you can make your own language, Chinese and English. You can make a mistake. If you just want to explain it a little bit, you don't need to add key = "xxx"
9: Hiding technical languages
Note:
After many websites are created, you do not need to see the language in which they are made. The perfect URL of this blog can be hidden.
No ViewState, no aspx, no ascx, and no other identifier.
Someone may look at the request header. You can set the default Request Header output by IIS: website properties-> Http header-> custom request header-> ASP. net x-Powered-.
The average person may not be able to guess it, and the master will skip it ~~
10: No JS platform, plug-in JS
Note:
This blog is currently running on a platform without js. Therefore, direct mobile access is not a problem and no wap site is required.
For js, this blog will adopt the plug-in js method, which allows richer presentation methods when Javascript is available.
11: This blog usesCYQ. Data layer framework [Powerful plug-ins]As the underlying data framework, it can be easily extended to other databases if necessary.
12: support for multiple users
I almost forgot to say that.
Others: Later I added ......
Ii. incircle functions and demonstration addresses supported by this blog
Note:
Here do not explain in detail, see the specific Demo: http://www.cyqdata.com/
The demo version [the code of the previous week] is not updated to the latest version. The version to be released is completed last night.
This blog does not confuse and encrypt its DLL. You can click it on your own. You are welcome to support originality.
Input filtering will be added later, so don't worry about entering the script to affect the user's browsing.
Iii. Details
[Stick to the top] CYQ. Data lightweight Data layer-path bug feedback, optimization suggestions, and latest framework download
4. Welcome to css experts and js plug-ins
If you have css or js plug-ins, you have developed css or js plug-ins for verification or demonstration on this blog,
You are welcome to provide a copy of the original author. After passing the test, I will sign it in a later version of blog.
Conclusion:
Such a lethal blog is useless. There are not many blogs in the world. You are welcome to download it. You are welcome to use it:
Just put it all at once. A blog of your own has come out.
A multi-user BLOG came out.
A platform that can be operated is available.
Just put it all at once. Wait for me to continue developing other functions. Haha ~~~